Identity resolution benchmark
In a June 2026 test on 1,000,000 records representing 250,000 real people, DarkMath scored an F1 of 93 against 75 for a leading identity graph, finding 89% of true links with 98% precision.
Test design
- Records
- 1,000,000
- True people
- 250,000, with known identities
- Input
- Identical files to both systems
- Comparison
- A leading identity graph provider, anonymized
- Ground truth
- Records with known identity, including realistic variations such as typos, nicknames, moves and missing fields
- Scoring
- Precision, recall and F1 on record links, plus the number of identities returned
Results
| Metric | DarkMath | Incumbent graph |
|---|---|---|
| F1 score | 93 | 75 |
| Recall: share of true links found | 89% | 61% |
| Precision: share of matches that are correct | 98% | 96% |
| Identities returned (truth is 250,000) | 304,495 | 459,791 |
Fewer identities, closer to the truth
Each system sorts a million records into one bucket per person. The closer the count gets to the true 250,000, the fewer people are split across duplicates.
Who finds each correct match
Of every correct connection found by either system, 65% were found by both, 32% only by DarkMath and 2% only by the incumbent.
The lift comes from the semantic layer. On the same records, rules-based matching alone found 55% of real connections; adding the semantic layer found 89%. That is 46% more of the customers you already paid to acquire, connected instead of stranded.
Metric definitions
- Precision
- Of the links a system made, the share that are correct.
- Recall
- Of the true links, the share the system found.
- F1
- The harmonic mean of precision and recall, one quality score out of 100.
- Match rate
- The share of records linked to another record. Useful, but can rise from bad guesses.
- Missed link
- Two records of the same person left apart.
- False merge
- Two different people combined into one identity.
Earlier evaluations
Head-to-head tests run in 2025 on production-scale data, with competitor identities anonymized.
| Measure | DarkMath | Comparison |
|---|---|---|
| F1 score vs provider A | 86.44% | 72.14% |
| Match rate vs provider A | 78.96% | 61.36% |
| F1 score vs provider B | 83.42% | 68.86% |
| Match rate vs provider B | 72.22% | 54.91% |
| Households resolved | 10,838,389 | 6,992,837 |
| Largest household | 37 | 994 |
Limits. Results depend on data quality, field coverage and use case. One benchmark is not a guarantee for your file, which is why we offer the same test on your own records.
Benchmark questions
What is a good F1 score for identity resolution?
There is no universal threshold, because data quality varies so much. The useful comparison is between methods on the same input with known answers. That is how the June 2026 benchmark was run, and how we run tests on client data.
What is the difference between match rate, precision and recall?
Match rate counts how many records were linked. Precision asks how many of those links are correct. Recall asks how many of the true links were found. A system can raise its match rate by guessing, so precision and recall together, summarized as F1, tell you more.
Why does household size matter?
Over-permissive rules build households of hundreds of people. Those mega-clusters inflate reach, distort frequency and corrupt lifetime value. Realistic household sizes are a quick check on whether a graph is merging people it shouldn’t.
Can we see the record-level results?
Yes. Full per-record detail is available under NDA as part of a test on your data.
Run the same test on your data.
Same design, your records, a standard report you keep.