Home How It Works Research Benchmark Security Pricing Partners FAQ About Contact
Sign In Start Free Review

Engine Validation

4,190 Real Contracts.
100% Deterministic.
100% Replayable.

A finding you can't reproduce or explain isn't defensible in a legal workflow. Every production release is benchmarked against real, publicly filed contracts before it ships — not sampled, not synthetic — specifically to prove ours are.

This page is the evidence, not a claim about it.

Benchmark Overview

Reference run 20260802T164957Z

4,190
Real Contracts Benchmarked
189
Deterministic Rules
813
Automated Tests Passing
100%
Replay Success
100%
Verification Success
100%
DOCX Export Success
0
Critical Blockers
GO
Release Verdict

4,131 of 4,190 contracts (98.59%) reached a clean terminal state; the remaining 59 (1.41%) are a non-blocking, secondary parsing cross-check flag, detailed in Known Limitations — not a rule-engine, export, or replay defect.

Research

Built on published work, not ad hoc prompting

Every layer on this page traces back to a peer-reviewed architecture, not a prompt that happened to work. Two papers, one architecture, one benchmark, one product — in that order.

Why Benchmark?

Legal software has a different bar than most software

A finding that can't be reproduced, traced, or explained isn't useful in a legal workflow — it's a liability. TriageBench exists to make four specific properties measurable, not assumed.

Reproducible

The same contract in produces the same findings out, every time, on every run.

Auditable

Every finding cites the rule ID and exact clause text that produced it — nothing is opaque.

Explainable

The AI only explains an already-final finding in plain English — it never decides.

Deterministic

189 explicit rules decide. No statistical weighting, no learned parameters, no randomness.

What Is TriageBench?

The same ten-stage pipeline, run against every contract

TriageBench runs TriageCounsel's real deterministic pipeline in-process — independent of the web application and database, with no dependency on the LLM layer. Hover any stage for detail.

01 · Upload✓ Passed
Raw document bytes are read and the primary HTML-to-text extractor runs — the same extraction path production uses.
02 · Parser / Normalizer✓ Passed
Text is chunked and structured for analysis. A secondary, independent extractor cross-checks this stage in the Audit step below.
03 · Deterministic Rule Engine✓ Passed
All 189 rules are executed against the document. Severity, rule-trigger counts, and per-rule aggregation are recorded.
04 · Evidence Engine✓ Passed
Every finding's clause-level evidence span is validated against the source contract text — no unanchored findings.
05 · Verification✓ Passed
The engine re-runs and every finding is checked to reproduce exactly, matched by rule ID, start index, and exact snippet.
06 · Redline Generation✓ Passed
A fixed, documented synthetic review policy stands in for a human reviewer, exercising the same redline code paths production uses.
07 · Negotiation Package✓ Passed
Cover memo, audit trail, and package assembly are generated from the review decisions above.
08 · DOCX Export✓ Passed
The redlined Word document (native Track Changes + comments) is built and validated as well-formed OOXML.
09 · Replay✓ Passed
The whole-document output of two independent runs is compared byte-for-byte: finding sequence, rule counts, overall risk.
10 · Audit✓ Passed
A second, independent HTML extractor cross-checks the primary parse as a corpus-integrity sanity check.

Real Contract Corpus

4,190 real SEC-filed exhibits — nothing synthetic

2,455

Employment

58.6% of corpus

1,007

Purchases

24.0% of corpus

664

Services

15.8% of corpus

64

Lease

1.5% of corpus

No synthetic contracts
No AI-generated examples
No toy datasets
Public SEC EDGAR filings

Benchmark Methodology

Every contract, the same ten checks, in order

Parse
Primary HTML-to-text extraction.
Normalize
Chunk and structure text for rule matching.
Execute all 189 deterministic rules
Full rule engine pass — same code path as production.
Collect evidence
Validate every finding's clause-level span against source text.
Verify findings
Re-run and confirm every finding reproduces exactly.
Generate negotiation package
Cover memo, audit trail, and package assembly.
Export DOCX
Build and validate the redlined Word document as well-formed OOXML.
Replay complete execution
Second independent run of the full pipeline.
Compare outputs
Byte-for-byte comparison of both runs' complete output.
Pass / Fail
Terminal status recorded per contract, per stage, with severity classification on any failure.

Results

Reference run: full metrics

MetricValue
Contracts scheduled / accounted for4,190 / 4,190
Contracts reaching clean terminal state4,131 (98.59%)
Parser success rate (no P0/P1 defects)100.0%
Verify / replay success rate100.0%
DOCX export success rate100.0%
Negotiation Package success rate100.0%
Critical blockers0
Engine reliability score99 / 100
Parser reliability score100 / 100
Determinism score100 / 100
Evidence-anchoring score100 / 100
DOCX / export reliability score100 / 100
Commercial readiness score97 / 100
Go / No-Go verdictGO

Scores below 100 are stated, not smoothed over. Engine reliability sits at 99 because 59 contracts (1.41%) were flagged by a secondary, independent parsing cross-check — see Known Limitations. Commercial readiness (97) is a composite score, not a marketing number.

TriageBench Live

A separate suite validates the deployed application itself

TriageBench validates the deterministic engine, in-process. TriageBench Live validates the deployed product — exactly as a customer uses it, against the real running server. It never imports an engine or application module; that boundary is enforced automatically by an AST-based test, not just convention.

Real signup
Real login
Real upload
Real browser
Real download
Real report
Real export
No mocked APIs

TriageBench Live's concurrency suite is what actually found a real production defect this release: a database-session lifecycle leak under sustained load. See Engineering Defects Found below for exactly how it was caught, fixed, and re-verified with zero leakage under both sequential and concurrent sustained traffic.

Engineering Defects Found

The benchmark's job is to find real defects — here's what it found

We are not showing this section to claim a spotless system. We're showing it because a benchmark that never catches anything isn't validating anything. These are the real defects TriageBench and TriageBench Live found in this release cycle, and exactly how each was fixed and re-verified.

DOCX export crash on XML-illegal characters

✓ Fixed & verified

Found by: the full 4,190-contract TriageBench run — a legacy page-break artifact (a form-feed character) in one SEC filing's extracted text was illegal under the XML 1.0 character spec and crashed DOCX export.

Fixed by: implementing the exact XML 1.0 Char production, verified character-by-character against lxml's own acceptance behavior, applied everywhere raw contract text enters a generated document. Verified by: 15 new targeted tests plus independent cross-validation against Mammoth, a third-party OOXML parser, then a full corpus re-run.

Database session-lifecycle leak under sustained load

✓ Fixed & verified

Found by: TriageBench Live's concurrency suite — 59 route and exception-handler call sites obtained a database session outside FastAPI's dependency injection, so nothing guaranteed the session closed; under sustained traffic the connection pool exhausted permanently.

Fixed by: converting every call site to FastAPI's own Depends(get_db), plus SQLite WAL mode with an explicit busy timeout. Verified by: a dedicated proof suite exercising sequential, at-capacity, and above-capacity concurrent bursts — zero leakage confirmed under both sequential and concurrent sustained load.

Production deployment packaging defect

✓ Fixed & verified

Found by: a direct audit of the live deployment — the benchmark corpus had been committed to the repository without a bundle-exclusion rule, pushing the deployed function to 795 MB against a 500 MB platform ceiling. Every deployment since had been silently failing to build.

Fixed by: correcting the deployment exclusion rules. Verified by: confirming the resulting build completed, then independently checking the live production domain returns HTTP 200 with working registration and login flows.

Known Limitations

What this benchmark does — and does not — validate

This benchmark validates

Deterministic execution
Replay consistency
Export reliability
Evidence tracing
Rule execution against the full ruleset

This benchmark does not validate

Attorney judgment
Jurisdiction-specific legal advice
Novel legal reasoning outside the rulebook
Matters outside current rule coverage

Every report TriageCounsel generates states this directly — not only this page. A clean benchmark run means the engine did what it was built to do reliably. It does not mean the engine covers every legal question a document might raise.

Benchmark Metadata

Reproducible by design

Run ID20260802T164957Z
Commit hashd47ccae11fea…9b0c9
Corpus manifest hashcb10c8febce1…5e9da306f
Ruleset version7.2.0
Started2026-08-02T16:49:57Z
Finished2026-08-02T17:36:39Z
Wall-clock duration2,801.6s
Production statusMerged & live

Interactive Benchmark Explorer

Inspect results by contract category

Contracts in category2,455
Rules executed per contract189
Mean redline coverage6.94%
Median analysis latency938 ms
Parser / verify / export success100%
Contracts in category1,007
Rules executed per contract189
Mean redline coverage6.77%
Median analysis latency3,247 ms
Parser / verify / export success100%
Contracts in category664
Rules executed per contract189
Mean redline coverage7.65%
Median analysis latency812 ms
Parser / verify / export success100%
Contracts in category64
Rules executed per contract189
Mean redline coverage11.49%
Median analysis latency2,487 ms
Parser / verify / export success100%

Latency figures are median wall-clock engine time per contract from the reference run, not a promised SLA.

Timeline

Ruleset growth, release over release

91
v5.0
117
v6.0
180
v7.0
185
v7.1
189
v7.2 (current)

Bar height is rule count, scaled to v7.2. Every release is re-benchmarked against the full corpus before shipping.

Downloads

Take the evidence with you

Trust should be measurable.

Don't take our word for it. Inspect the benchmark. Read the methodology. Run your own contract.

Start Free Review