Mackiev Family Tree Maker Relationship Bug

Last Update: Mon Aug 05 23:35 EDT 2024


I first noticed the severely broken relationship calculator in FTM in 2018. I reported it to a Brandon, in chat, on March 8, 2018,[MRW-SXMFW-797]. I followed up in email. I provided a GEDCOM, the output I saw in screenshots, the output from one or more other programs in screenshots, in short, precisely everything that would make it easy for them to find the bug and fix it with no further intervention by me.

I kept following up, and they just kept saying they didn't know when it would be fixed. Finally, I just gave up, and every time I need relationships, I have to export, and import to a program that does it correctly.

New, August 4, 2024: A year or two ago I anonymized and truncated data in my tree that demonstrates the relationship bug. I meant to provide the GEDCOM to the public, but I see I never did. You now can download it here. In the text below, just substitute: John Doe for Person 1 and John Smith for Person 2 in the discussion below. I urge everyone interested and capable of computing the relationships between Person 1 and Person 2, in any and all genealogy software, to do so. If all the relationships are not reported, I urge you to report it to the software seller. (Spoiler Alert: Only Mackiev's Family Tree Maker software fails in my testing).

In 2010 I had been very impressed by Mackiev when it delivered on a native MacOS version that seemed to work exceedingly well. In 2016 they took both the Mac and Windows versions over from Ancestry.

At that time I even managed to contact the president of the company and offered some suggestions to make the program better. I got a response that they had their hands full at the moment with the data synchronization issues, but hoped to move on some of the ideas eventually. I was concerned that they had a bunch of top notch programmers, but no genealogists on staff or in consultation, which I consider important.

It was later that I discovered the relationship problem in my main tree. I went to calculate the ways I was related to a new friend sharing ancestry with me. FTM found one (convoluted, see below) way. So I exported a GEDCOM, imported to about 3 or 4 other programs, and it found about 8 or 9 ways we were cousin related.

My assessment is that their algorithm breaks down when you descend in multiple ways from the same person. Pedigree collapse. Every tree will suffer from that if you go back far enough, and for those of us where it is pronounced in recent generations by generations staying in the same regions and distant cousins marrying, the FTM relationship algorithm is quite broken. But in trying about 4 or 5 other programs, I demonstrated that FTM is the only one with a broken relationship algorithm.

I always point out this "feature" to anyone I talk to about genealogy programs.

I have licenses for about 4 or 5 programs because they all contain their own shorcomings. For my purposes, there is no single program that is the Swiss-Army knife of genealogy software. The best one, TMG, went out of business years ago and has devotees still running it. But it does not offer the option to do on line data hints, which is required for many of my purposes.

I am aware of one being developed, HRE, and have high hopes for it, but am not sure it will be fully released in my life time, being written by an all volunteer army. And come to think of it, I'm not sure if it will ever offer hints from data, either.

So for my own needs today, I have to run at least 3 genealogy programs to do what I need to get done (and correctly).

I have now proven the bug still exists in the version just released (Mac version, at least). Here are the results and comparison to results from Reunion 12:

= = = = = = Calculated Relationships = = = = = =
       Person 1 to Person 2 Relationships
= = = = =
Calculated by Mackiev FTM2019 (24.1.0.520):
1 Relationship Found:

Person 2 is the [...] of Person 1

1. grand nephew of wife of 3rd great uncle
   New Result: 1. 5th Cousin
   (on August 5, 2024, about 2 years later than above result,
   FTM2019 (24.2.2.560),
   but still buggy, because only one relationship is found,
   but a slight algorithm improvement).

= = = = =
Calculated by Reunion 12
9 Relationships Found:

Person 2 is the [...] of Person 1

1. 5th Cousin
2. 7th Cousin
3. 7C1R
4. 7C1R (different path)
5. 8th Cousin
6. 8th Cousin
7. 8C1R
8. 8C1R (different path)
9. 9th Cousin

= = = = =

New, August 5, 2024: Long ago I had installed Gramps on my Macbook. I just tried it and it still works (Gramps 5.1.2). So I took this anonymized test GEDCOM, Imported it, and calculated the relationships between John Smith and John Doe. The results:

= = = = =

Gramps calculated relationships (it actually finds 11, and it also gives their common ancestors (a nice touch!):

Smith, John is the fifth cousin of Doe, John. Their common ancestors are Anders, William and Sanders, Mary.

Smith, John is the seventh cousin of Doe, John. Their common ancestors are Mattis, John and Anders, Alice.

Smith, John is the seventh cousin once removed (up) of Doe, John. Their common ancestors are: Calhoun, William, Southwick, Ruth, Calhoun, William, Southwick, Ruth.

Smith, John is the eighth cousin of Doe, John. Their common ancestors are: Sandman, Andrew, Olson, June, Calhoun, John, Osman, Sarah, Anders, Mark, Adams, Mary.

Smith, John is the seventh cousin once removed (down) of Doe, John. Their common ancestors are Adams, Mary and Anders, Mark.

Smith, John is the eighth cousin once removed (up) of Doe, John. Their common ancestors are: Somerson, John, Hodgkins, Hannah, Anders, Edward, Oldman, Sarah.

Smith, John is the ninth cousin of Doe, John. Their common ancestors are: Anders, Samuel, Wright, Mary, Anders, Samuel, Wright, Mary.

Smith, John is the ninth cousin once removed (down) of Doe, John. Their common ancestors are: Anders, Samuel, Wright, Mary, Anders, Samuel, Wright, Mary.

Smith, John is the eighth cousin once removed (down) of Doe, John. Their common ancestors are Anders, Samuel and Wright, Mary.

Smith, John is the eighth cousin twice removed (down) of Doe, John. Their common ancestors are Anders, Samuel and Wright, Mary.

Smith, John is the ninth cousin once removed (up) of Doe, John. Their common ancestors are Anders, Samuel and Wright, Mary.

= = = = =

That it finds more is not surprising. (To me, it actually signals the brilliance of their code!) When there are many, there are many alternately complicated paths that can be found. The list is essentially the same as the other codes, all except for Family Tree Maker that can only find one relationship (bug!).
Notes to myself for the future: Imported GEDCOM. People -> Select person you want to be the home person.
Edit -> Set Home Person.
Tools -> Utilities -> Relationship Calculator (in reference to home person).
Select person to compute relationships to.
Bottom window shows all of the relationships between the selected person and the home person.

= = = = =

The reason I decided to try Gramps is that it is free and open source code. So I'm now looking at its Python code used to compute the relationships. Python is not one of my native computer languages, but I can code it with a book in my hands. A quick glance at the algorithm shows that it is a quite clever, and possibly difficult to understand, algorithm. Perhaps the Mackiev programmers should study it. (Hint, in the source code directory I have in hand: gramps-5.2.3/gramps/gen/relationship.py ).

I submit that Mackiev's relationship calculator has been horribly broken since, at least, 2018. If they only had a genealogist on staff they would realize how serious this is.

Another bug/feature that should be noted in Mackiev's Family Tree Maker relationship software: Several years ago they hard coded the Kinship Report Option "Show All Relationships" as permanently off (unselectable). It used to work, I do not know when they stopped it. It did take a little more compute time to find all the relationship paths, but it did work at one time. I suspect that when the code broke, they just found it simpler to disable this feature, because it drew attention to the fact that the relationship code was broken.