River
Y CombinatorBacked by Y Combinator

Writing & MediaFree

Fact Reconciliation for Conflicting Sources

Send the transcripts, documents and records, and get every disputed assertion sorted into what is established, what is contested, and what nobody can resolve.

Start here

River reads every source you hold against every assertion your story rests on, and builds one row per disputed fact: what each source says, which document supports it, and what state the fact is actually in. Four states, not two. Established with documentary support, contested but settled by a document, genuinely contested with no document in existence, and the one everybody skips, agreed by several sources whose accounts all trace back to a single origin.

Every page ranking for this query teaches the two-source rule and then stops. Get a second source, prefer documents to people, weigh the source's interest and proximity, and where you cannot resolve it, attribute. All of that is correct and none of it counts anything. The gap is that two sources are only two sources if they learned it separately, and that question is answerable from the transcripts you already have by asking each account where it came from.

Built for reporters working a story where the accounts do not line up, and for researchers reconciling interview material against a documentary record. Use it before the draft is written rather than during the fact check, because the state a fact is in decides how its sentence gets built. When it is time to check the draft line by line, the fact check pack joins each assertion to its source, and interview transcript workup produces the quote bank with timecodes that this pass reads from.

Three sources agreeing is sometimes one source told three times

Take an invented investigation into the Wexford Transit Authority and when its board learned a fare-collection vendor was overbilling. Six sources: three interviews, two internal documents a source supplied, and eighteen months of council minutes. The draft makes 23 assertions that turn on what somebody said. Three former staff independently put the first briefing in March 2024, which reads as strong corroboration and is the sentence a reporter would write flatly without attribution.

Ask each of them how they know, and the three accounts collapse. One was on the distribution list of an all-staff email. The second was forwarded that email by the first. The third heard it summarized in a hallway by the second. All three are describing the same document, so the independent-source count is one, not three, and the apparent corroboration is overstated threefold. The email is worth having, but it establishes what was circulated, not what the board was told.

Sorted that way, 9 of the 23 assertions have the sources agreeing with a document behind them, and 5 more have sources disagreeing where a document settles it. Another 4 are genuinely contested with no document in existence, 3 agree but trace to one origin, and 2 rest on a single uncorroborated account. So 14 of 23 can be stated as fact and 9 cannot, which is 39 percent of the story needing attribution, a hedge or a cut. Knowing which 9 is the whole point.

How it works

  1. Send the material

    Attach the transcripts, documents and records, then say what you are trying to establish.

  2. Get the fact sheet

    One row per disputed assertion, with each source's version and the documentary support beside it.

  3. Read the origins

    Where every agreeing account actually came from, and what the independent source count really is.

  4. Work it in chat

    Ask what to attribute, what to cut, and which document would settle a specific dispute.

What you get

  • One row per disputed fact, with what each source says and which document bears on it
  • An independence audit: where each account came from, and the real corroboration count
  • Every assertion sorted into established, settled by a document, contested or single-origin
  • The specific sentences that need attribution, and the specific ones that can run flat
  • What document would resolve each open disagreement, and who would hold it
  • Where a source contradicts their own earlier account, quoted against itself with timecodes
  • A plain statement of what cannot be established, which is the part editors ask about first

Common questions

How is this different from the two-source rule?

The rule tells you how many sources you need. This tells you how many you have. Three people describing the same forwarded email are one source wearing three coats, and that only becomes visible when each account is traced back to where the person learned it. The count is what changes, not the standard.

Does it decide which source is telling the truth?

No, and that is deliberate. It sorts each fact by what the record can carry: agreed and documented, disputed but settled by a document, or genuinely open. Where it is open it says so and names what would close it, because an unresolved fact written as resolved is the error that produces corrections.

Why prefer a document over a person who was there?

Because a document is checkable later and a recollection is not. Courts formalize the same instinct: under Rule 1002 an original writing is required to prove its content, and a record of a public office made under a legal duty to report gets its own treatment as evidence.

What do I do with a fact nobody can establish?

Write it as what it is. Either attribute it to the person who says it, describe the disagreement in the piece, or cut it. The failure mode is a flat declarative sentence resting on one uncorroborated account, which is what four of the 23 assertions in the worked example would have been.

Can the absence of a record be a finding?

Yes, and it is often the most durable one you get. Evidence law treats testimony that a diligent search failed to disclose a public record as provable in its own right, under Rule 803. A documented search that came back empty is reportable; an unsearched assumption is not.

Does it work with a mix of interviews and paper?

That is the intended case. Transcripts, internal documents, filings, minutes and exports all get read against the same assertion list, and the register records for each fact which kind of material supports it. A story standing entirely on interviews reads very differently once that column is filled in.

What if the records I need never arrived?

Then the gap is procedural rather than journalistic. FOIA denial appeal tests the exemptions the agency asserted and rebuilds the request clock, which is the route to the document that would settle a dispute this pass has flagged as open.

Fact Reconciliation for Conflicting Sources

Fill in the form and your workspace opens with the work already underway.