We present TreeFrog, a massively parallel halo merger tree builder that is capable comparing different halo catalogues and producing halo merger trees. The code is written in c++11, use the MPI and OpenMP APIs for parallelisation, and includes python tools to read/manipulate the data products produced. The code correlates binding energy sorted particle ID lists between halo catalogues, determining optimal descendant/progenitor matches using multiple snapshots, a merit function that maximises the number of shared particles using pseudo-radial moments, and a scheme for correcting halo merger tree pathologies. Focusing on VELOCIraptor catalogues for this work, we demonstrate how searching multiple snapshots spanning a dynamical time significantly reduces the number of stranded halos, those lacking a descendant or a progenitor, critically correcting poorly resolved halos. We present a new merit function that improves the distinction between primary and secondary progenitors, reducing tree pathologies. We find FOF accretion rates and merger rates show similar mass ratio dependence. The model merger rates from Poole et al, (2017) agree with the measured net growth of halos through mergers.