Truth discovery: resolving conflicting records.
Many messy records go in. One clean record comes out. Here is the field that decides which version is true, in plain language.
Pull the same customer from three systems and you can get three different stories. Truth discovery is the field that takes many records about the same thing, records that overlap, disagree, and have gaps, and works out the value most likely to be correct for each field. We walk it the way the field is built: what it is, why it is hard, how a modern system does it, what it makes possible, and where it is heading. The papers behind each idea are linked, so you can read the source yourself.
The three ideas to carry: record linkage, source reliability, and survivorship.
Deciding which version is true.
Given many sources that each assert values for the same objects, estimate two things together: how reliable each source is, and the true value of each fact.
The core idea is simple and human. A source that is usually right makes its other claims more believable, and a value that trustworthy sources agree on is more likely to be true. The two reinforce each other. Run that idea over a whole dataset and you can rank sources by reliability and pick the highest-confidence value for each fact, all at once. The survey by Li et al. (2016) gives the formal definition and the shared vocabulary.
It helps to draw a clean boundary between two neighbors. Record linkage, also called entity resolution or deduplication, decides which records are even about the same real-world thing: it is the step that says "Acme Inc." and "ACME" are one account. Truth discovery then decides, among the conflicting values those matched records carry, which one to keep. Together they turn a pile of messy, duplicated rows into one clean, trusted record. Industry tools call that result a "golden record." The anchor question for the whole page is plain: which version is true.
Identity question
Do these three rows describe Acme?
Value question
Which recorded address is current?
Resolve identity, then assess conflicting claims about the same field.
Counting votes is not enough.
Records are not equally reliable, they copy each other, and no one hands you the ground truth. The hard part is sorting truth from popular noise.
The popular value can be wrong.
Just taking the value that the most sources report breaks down, because sources are not equally reliable. A value can be common and still be out of date or simply mistaken.
Sources copy each other.
Across business tools, one value gets copied into many systems. Counting those copies as independent votes inflates a wrong answer. Detecting that dependence is a studied difficulty, named in Dong et al. (2009).
Nobody hands you the answer.
In practice no one provides the ground truth, so the reliability of each source has to be inferred without supervision. The method has to bootstrap trust from the data itself.
The records must be matched, and matching is noisy.
The same account or contact appears under many spellings and partial fields. Blocking and matching errors made in the linkage step flow downstream and distort what comes after.
Data goes out of date.
Half-filled contacts, blank fields, and values that were true once and are not anymore. A contact who changed companies last quarter still reads as current until something reconciles it.
Conflicts come in flavors.
Numeric drift, such as two slightly different revenue figures. Categorical disagreement, such as two different account owners. And one source saying nothing at all. Each needs different handling.
From many conflicting records to one trusted record.
Match the records, weigh the sources, discount the copies, keep the strongest field, and carry a confidence. These are the named stages the field works in.
- 01Link
Resolve the underlying entity.
- 02Weigh
Model source reliability.
- 03Discount
Account for dependent claims.
- 04Estimate
Retain uncertainty per value.
- 05Preserve
Keep field provenance.
Five jobs in a row, each doing one thing on the way from messy records to one resolved record.
1Record linkage, the matching step that comes first
Decide which rows are the same entity.
Before any value can be resolved, the system has to decide which records refer to the same real-world thing. This is the literal step that says two cards are one account. The classic probabilistic framing is Fellegi and Sunter (1969): compare record pairs across fields, turn each comparison into a likelihood ratio, and choose link, possible link, or non-link at controlled error rates.
This is where deduping accounts and matching a contact across systems lives. Get it right and the conflicting values line up next to each other, ready to resolve. Get it wrong and a real conflict is hidden or a false one is invented, so linkage quality sets the ceiling for everything after it.
| Source | Observed name | Entity |
|---|---|---|
| CRM | Acme Inc. | Account 1182 |
| Billing | Acme, Incorporated | Account 1182 |
| Import | ACME | Candidate: verify |
2Iterative source-and-value estimation
Reliable sources and true values, settled together.
The seminal, easy-to-explain method is TruthFinder (Yin, Han, Yu, 2007). Start with no assumptions. Score each value by the trustworthiness of the sources that assert it, then re-score each source by how trustworthy its values turned out to be, and repeat until both stop moving. It is mutual reinforcement: a source is trustworthy if its facts are true, and a fact is true if trustworthy sources assert it.
Picture it on a contact's job title disagreed on by three systems. Rather than a flat vote, the value backed by the systems that have been right elsewhere carries more weight, and the systems that keep being right earn more trust for next time.
- Estimate source reliability
Start from a model or initial assumptions.
- Estimate value support
Weigh the claims using the current reliability estimates.
- Update reliability
Assess sources against the current value estimates.
- Iterate
Continue until the method’s stopping condition is met.
3Modeling source dependence
A copied value is not a second opinion.
Because copied values masquerade as independent agreement, methods estimate whether one source likely copied another and discount the copies, so a widely-copied wrong value does not win. This is the contribution of Dong, Berti-Equille and Srivastava (2009).
In a pipeline cleaned from several feeds, a stale address copied into four tools looks like four votes until dependence is modeled. Detect the copying and it counts once, which keeps a popular but wrong value from outvoting the correct one.
| Source | Address claim | Origin |
|---|---|---|
| A | Old address | Original claim |
| B | Old address | Copied from A |
| C | Old address | Copied from A |
| D | New address | Direct client confirmation |
Three appearances of the old value may reflect only one underlying source.
4Probabilistic truth discovery
A confidence on each value, not a bare vote.
Casting the problem as a probabilistic model lets a system jointly infer the true values and each source's quality without supervision, and report a principled confidence on every resolved value rather than a flat tally. Zhao, Rubinstein, Gemmell and Han (2012) give a Bayesian formulation of exactly this.
Real facts are also not independent, and methods that account for correlations between data items and between sources fuse more accurately than treating each fact alone, as shown in Pochampally et al. (2014). The payoff: a resolved field arrives with a confidence, so a shaky one can be flagged for review instead of trusted blindly.
| Field | Evidence status |
|---|---|
| Company name | Consistent across verified records |
| Address | Recent client confirmation |
| Phone | Two unresolved conflicting values |
Do not turn an uncertain field into a silently accepted fact.
5Survivorship into one record
Keep the strongest field from each, and remember where it came from.
The finishing step assembles the surviving values into a single canonical record and carries forward where each field came from, so the result is traceable. This is the industry "golden record" framing, used here as the human-facing name for the output of the steps above.
One matched account might contribute its current phone from the import, its full address from billing, and its right owner from the CRM. The merged record keeps the strongest of each, with a note on the source, so a low-confidence field can be checked against the system it came from rather than trusted on faith.
| Field | Chosen source | Reason |
|---|---|---|
| Phone | Verified import | Most recent confirmation |
| Address | Billing | Current invoice address |
| Owner | CRM | Authoritative assignment |
One clean record is raw material for everything built on top.
At the field level: a deduplicated view of each account and contact, a confidence on each field, traceability back to the source, and a reliability signal on the systems themselves.
For anyone working a pipeline, the bridge is at the outcome level. Resolve the conflicts, dedupe the accounts, and fill the gaps, and a clean record is something the whole team can act on instead of second-guessing. The hard cases in the section above are exactly the ones that decide whether a duplicated, half-filled pipeline becomes a record you can trust.
One deduplicated view.
A single clean record for each account and contact, so a reader stops guessing which row is real and which is a leftover duplicate.
A confidence on each field.
Resolved values arrive with a confidence, not just a value, so low-confidence facts can be flagged for review instead of trusted blindly.
Traceability you can check.
Each surviving value can point back to the source it came from, so a disputed field is verifiable rather than a mystery.
A reliability signal on sources.
Ranking the sources by how often they were right is useful in itself, for knowing which system or feed to trust next time.
Everything here describes the field, not our plumbing. This page makes no claim about how any particular product reconciles records.
The direction the field is heading.
We describe the direction, not a roadmap of our own.
Fresher records outweigh stale ones.
Streaming and time-aware truth discovery, where values carry recency so a fresher source can outweigh a stale one, and the resolved record updates as new records arrive.
More than one answer can be right.
Multi-truth settings, where several values are legitimately correct, such as a company with several valid phone numbers, which classic single-truth methods handle poorly.
Matching and resolving as one problem.
Tighter coupling of "are these the same" and "which value is true," treating them as one joint problem rather than two stages with error leaking between them.
Language models help normalize messy text.
Using models to normalize and compare messy text fields, paired with the source-reliability math so confidence stays grounded. Evaluation here is still maturing.
The papers behind this page.
- Li, Gao, Meng, Li, Su, Zhao, Fan, Han (2016). A Survey on Truth Discovery. ACM SIGKDD Explorations 17(2): 1-16.
- Fellegi, Sunter (1969). A Theory for Record Linkage. Journal of the American Statistical Association 64(328): 1183-1210.
- Yin, Han, Yu (2007). Truth Discovery with Multiple Conflicting Information Providers on the Web (TruthFinder). ACM SIGKDD 2007.
- Dong, Berti-Equille, Srivastava (2009). Integrating Conflicting Data: The Role of Source Dependence. PVLDB 2(1): 550-561.
- Zhao, Rubinstein, Gemmell, Han (2012). A Bayesian Approach to Discovering Truth from Conflicting Sources for Data Integration. PVLDB 5(6): 550-561.
- Pochampally, Das Sarma, Dong, Meliou, Srivastava (2014). Fusing Data with Correlations. ACM SIGMOD 2014.
Keep reading.
Sibling explainers in the Research section.
Talk. Done.
Conflicting records become one clean record you can act on. See it on a real call.
No app required. Just your phone number.