River
Y CombinatorBacked by Y Combinator

LegalFree

Redline Comparison and Response Log

River reads every round you have, so a clause the newest comparison marks as changed can show up as language nobody has touched since round two.

Start here

River reads the returned file against every round you still have, the way a filing reads differently against last year's. Each clause becomes a row of positions, one per round, so holding a position and conceding one are both visible as events with a round number attached. The change log names the clause. Where the newest round differs from the last, the row says whether that language is new or whether it is earlier wording coming back. That is the distinction a two-round comparison cannot draw.

It also stops reporting a change count nobody can act on. A substitution is one negotiating act stored as two elements, a deleted run and an inserted one. A relocated clause is one act as well, because ECMA-376 gives a move its own revision type rather than recording it as a deletion plus an insertion. Both get collapsed back into acts. Renumbering and restyling are separated out from edits that change what the contract obliges anyone to do.

It reports what it can establish about attribution rather than printing a name as a fact. Names can be stripped, comparisons overwrite them, and internal reviewers on your own side land in the same file as the other party. Each row carries the round it came from and whether the author on it survived the trip. So a position history you take into a call rests on what the file shows rather than on an inference. It is the standard a term sheet explainer is held to when the document is the only evidence.

The number of changes in a redline is wrong in both directions

Take a constructed round-4 file with 42 revision elements in it. Nine are substitutions, so 18 of those elements are nine acts. Four are relocations, another eight elements for four acts. Nine are property-only revisions, the renumbering and restyling that Word tracks as their own revision types. What is left is 29 negotiating acts, of which 16 change what the contract says. The headline 42 double-counts 13 times and weighs a renumbered paragraph the same as a gutted indemnity.

The same number is short at the other end. Word's revision count covers the main text story only. A Word file is not one text stream, and the object model enumerates 17 story types, so 16 sit outside that count. Footers carry document control, footnotes carry carve-outs, text frames carry notice blocks. This is documented scoping rather than a defect, and the remedy sits in the same paragraph, but a reader quoting the number on screen is quoting the main body alone.

Attribution is the part worth reading closely. The standard's own prose calls a revision's author optional information. Its normative schema, in the same download, marks that attribute required and only the date optional, so a valid file always shows you a name. Whether the name means anything is a separate question. A comparison you run yourself labels every difference with one reviewer, defaulting to the string Comparison. Separately, the setting that strips personal information is mandatory in effect and undefined in extent by the standard defining it.

How it works

  1. Hand over the rounds

    The returned document with its tracked changes, plus every earlier round of the contract you still have.

  2. Revisions become acts

    Each revision resolves to a clause number, then pairs collapse so one substitution counts once rather than twice.

  3. Positions line up

    Every clause becomes a sequence across the rounds, which is what makes a reverted concession visible as one.

  4. Triage with reasoning

    Each change arrives sorted and argued, for you to adopt, downgrade or reject as the matter actually requires.

What you get

  • A change log as a Sheet, one row per clause, naming the round each change entered
  • Every clause's position in each round you supply, so holding reads as an event too
  • Substitutions and relocations each counted as a single act, with formatting-only revisions kept separate
  • A proposed triage per change, with the reasoning written out for you to adopt or overrule
  • A per-row note on whether the author survived, so no name is presented as established
  • The stories it actually read, so a log that could not reach a footer says so

Common questions

Do I need every round, or will the last two do?

Two rounds gets you a comparison, which is worth having and is not what this is for. The position history needs each round you can supply, because a clause only reads as reverted once round four can be set against round two. Hand over what the matter folder has. It reports the rounds it worked from rather than spanning two and presenting it as four.

Is Word's change count wrong?

No, it is scoped, and the scope is documented next to the count. It covers the main text story, and the remedy for reaching the others sits in the same paragraph. The problem is only that the number gets read as a total. It over-counts paired revisions and misses whole regions, which is the shape of a matcher with a documented blind spot rather than a broken one.

Why not just run Compare myself?

It is a valid text comparison and often the right first move. What it costs you is attribution: the output carries one reviewer name across every difference, which defaults to the revised document's author or to the literal string Comparison. On a fourth round with internal reviewers on both sides, that is the signal you most wanted to keep.

What if the redline has no author names or dates?

Then the log says so on the affected rows instead of guessing. A schema-valid file always carries an author string, so absence is rarely the failure you get. A placeholder or a scrubbed value is, and the standard that requires the attribute leaves the extent of a personal information scrub undefined, so what survives varies by application.

Does it decide which changes are acceptable?

No. Whether a cap is acceptable depends on the client, the deal size and the matter, and none of that is knowable from two files. Where a firm keeps positions it has already settled, the triage is measured against those. Otherwise it is a proposal with its reasoning exposed, and yours to overrule. What a cap is worth is a separate question answered from the order form.

What if the comparison comes back empty?

Empty and failed are reported as different things, because they lead somewhere different. A genuine no-differences result on a round you expected changes in is worth knowing, and usually means the file you compared against was not the round you thought. That is a two documents that disagree problem. A comparison that could not run says so instead of returning a clean bill.

Redline Comparison and Response Log

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