Home › Use Cases › Decide whether a suspended payment can be released
Use caseUC0212
🧪 Use-case kit · runnable

Decide whether a suspended payment can be released

A small, forkable project that does one job end to end. Run once for real, and every figure on these pages captured from that run.

The business caseThe problem this solves

A payment sits in a revenue suspense register because of one or more HOLD REASONS — no tax certification on file, an address nobody has verified, a share two people are arguing over, a legal notice somebody served, a balance under the payout minimum, a payee who has died. Then an evidence file arrives: a release packet, an imaging bundle, an email thread, a clerk's worksheet. Somebody reads that file and the register side by side and decides whether the money can go out. The question is never IS THERE PAPER IN THE FILE. It is three narrower ones, and only the first is a reading problem: does this document actually clear the reason it was sent for, is it about the right person, and has EVERY live reason been answered. The clerk's manual reconciliation of one evidence file against one suspense register entry — the identity test, the clearing test, the two-document test for a deceased payee, the balance comparison and the release rule — before a person confirms the determination.

Audience

The suspense clerk who confirms the determination, and the owner-relations or revenue-accounting lead who answers for a payment released over a live hold — or for an ageing balance that should have been paid months ago. Every number on these pages came from one real run of this code, not from a vendor page.

The inputThe actual held items, each with its evidence file

The corpus is 60 held items, each with its evidence file, 0.03 MB (clerk_worksheet 15 · email_thread 15 · release_packet 15 · scan_bundle 15). A defect mix a suspense desk would recognise and no public dataset can provide, because five things in it LOOK like clearances and are not: a stipulation of interest signed by one of the two parties the register records as disputing; letters testamentary with no tax certification for the successor, who is a new payee with a new payee's obligations; a death certificate offered on its own as the answer to a deceased-payee hold, which is evidence OF the hold; a carrier forwarding notice offered as an address confirmation, which is the carrier saying where it forwarded the mail; and a file note NAMING a document it does not attach. Thirty-four items are planted because the clean case teaches nothing about the arithmetic, and twenty-six are clean because a corpus that is all traps measures a different job from the one the clerk has.

The corpus

  • The 60 held items, each with its evidence filegenerated from a fixed seed, so no real record, person or institution appears in it.
  • Where each came fromwritten for this kit rather than collected — the corpus is generated in the kit's own repository, so there is no third-party data in it.

Swap this folder for your own material and the kit is pointed at your held items, each with its evidence file. That is the whole change — there is no database to migrate.

One held items, each with its evidence file, as the model receives itSR-0001.txt · 1 of 60
CARDROCK MINERALS LLC -- REVENUE SUSPENSE
Release evidence packet
==================================================================
  Item                SR-0001
  Owner reference     OWN-10007
  Property            Sable Flats Unit 3
  Packet received     2026-07-25
  Documents enclosed  2
==================================================================

  ENCLOSURE 1 -- Substitute Form W-9 -- Payee Taxpayer Certification
      Payee name:                      Junie Gaddis
      Taxpayer identification number:  ***-**-6557
      Signature:                       /s/ Junie Gaddis
      Date signed:                     2026-06-06

  ENCLOSURE 2 -- Internal File Note
      Entered by:                      D. Nevins
      Note:                            Division order file pulled and returned; nothing added.

Forwarded to revenue suspense for a release determination.

The outcomeWhat a good result looks like

A release determination a person confirms instead of a file a person reconciles: RELEASE, HOLD or NEEDS-REVIEW; the live hold reasons this evidence cleared; the ones it did not, worst first; every document in the file with the fields the rulebook tests; one status per live reason; and one sentence naming what cleared or what still blocks.

And when it cannot

A FALSE RELEASE. Money out of the door over a live legal notice, into a dead payee's account, or to one side of an ownership dispute the operator has no standing to settle — recovered, if at all, by asking a payee to send it back. On this corpus the RAW model ships 0 of those in 40 opportunities, the rechecked arm 0, and the FREE RULES FLOOR ships 14 (35.0%), carrying $33,935.85 of accrued balance it would have paid out. Every one of the floor's errors is in that direction and not one is a payee left waiting.

Where it fitsWhat did work

Every line below is a measured result from this kit's own runs, with the figure that supports it. The headline above is not softened by any of them.

  • A suspense population whose evidence already arrives as structured data — a document-management system that records, per document, whether it is signed, when, by whom and about which owner reference — the free rules floor, or no model at all
    The release rule, the precedence and the balance comparison are ALREADY FREE: the floor scores 14 of 14 on two live reasons, only one clears, 13 of 14 on minimum-balance items, 0 false holds and 20 of 20 releasable items, all with no model in it, because it never applies the rulebook — src/rulebook.py does. If a system upstream already tells you a form is signed and whose name is on it, the reading is done and the arithmetic is a script.
  • Evidence files that arrive as prose and bundles — release packets, imaging bundles, email threads, clerk worksheets — where whether a document clears anything depends on an element on its face — the model, rechecked
    This is the only thing the money buys here and it is worth naming exactly: 14 false releases against 0, carrying $33,935.85 of accrued balance; 0 of 5 against 5 of 5 on identity_mismatch; 0 of 3 against 3 of 3 on asserted_clear; 2 of 7 against 7 of 7 on partial_document. Reading a signature block, comparing a name against a register and noticing that a note NAMES a document it does not attach are the three things a regex cannot do. The recheck keeps the reading and re-derives everything else, so the model's own arithmetic never reaches the determination.

And where nothing here is good enough:

  • A desk that wants the paid arm's verdict shipped straight through, without the pure-code recheck behind it — neither — put the recheck back
    RAW is 59 of 60 and RECHECKED is 60 of 60 for no second call and no measurable latency, and the difference is one item the model refused to pay for a requirement nobody wrote down. The recheck is the control, not a tidy-up: it discards the model's disposition rather than correcting it, so what ships is the rulebook applied to a reading.

At a glanceHow the whole thing runs

98%item all correct pct
22,821 msp50, end to end
$14.06per 1,000 held items, each with its evidence file · Google Gemini 3 Flash

Run once, for real, on 2026-08-31. Every figure on these pages was captured from that run — nothing is written from intent.

14 steps, grouped by the question that sends you to them rather than by build order. Each tile carries the one figure that step is about, and opens the page behind it.

Should you use this?What you bring, where it stops, and when not to use it

Before you commit an afternoon to this, these are the answers that decide it. Each one is rendered from the record it lives in — and links the page that holds it in full.

What do I have to bring?Drop your own evidence files as .txt into data/corpus/ and add one register row per item to data/suspense.json — the payee, the owner reference, the property, the accrued balance in cents, which hold reasons are live, the disputing parties, the successor and the notice reference. ⚠︎ A REAL EVIDENCE FILE IS TAX IDENTIFICATION DATA, A PROBATE RECORD AND A LIVE LEGAL CLAIM, AND IT REACHES YOUR CONFIGURED PROVIDER VERBATIM. Corpus lens →
When is this the wrong choice?Avoid: Paying per item for a decision a fixed-order set of comparisons already makes correctly for $0.00. That is the case against the best-fitting scenario (“A suspense population whose evidence already arrives as structured data — a document-management system that records, per document, whether it is signed, when, by whom and about which owner reference”). 3 scenarios scored in all, each with its own. Eval lens →
Where does it stop working?A REAL EVIDENCE FILE. The corpus is four consistent generated formats from small phrase pools, at a mean of 581 bytes and 1.5 documents an item. 5 recorded failure modes, each from a run rather than a guess. Corpus lens →
What was never verified?WHETHER ANY OF THIS SURVIVES A SECOND RUN. One scored run, one model, one pass, with provider-side reasoning left at the tier's default and re-rolled per call. 7 items this kit says it could not check. Eval lens →
Can I run this on a model I control?Yes — any OpenAI-compatible endpoint, including one on your own hardware. The shipped adapter takes its host from BASE_URL and its model from MODEL, so nothing in src/ changes. The published figures come from 1 model on the fast tier, one provider, one key. Prompt lens →
And if it fits — what do I stand up?7 artifacts with a stated home and a stated egress, and 3 decisions each with what you provision past its ceiling — plus what was not measured. That is the next page, not this one. step 14 — Run it in your environment →

Not asked of this kit — 2 questions: clone (a fresh clone of this kit runs with nothing fetched); judge (nothing here is graded by a model).

Last verified 2026-08-31 — r001-suspense-release. Every figure on these pages was captured from that run.

Run itHow this reaches your data

Every result on this page was produced by pure code over checked-in files, with no API key — which is why you can read the numbers before anyone spends anything.

Run this on your own data

  • The pipeline, its eval harness and the runs behind every numberdeployed inside your environment, on your own model endpoints, against your own documents.
  • The corpus above is the shape, not the limitit is a folder swap, and there is no database to migrate.

Talk to us →

Checked before this shipped — Measured on a copy of the kit with no .env and no API key, on this machine: python3 -m tools.build_corpus rebuilt the 60 evidence files, the 60-entry register and the key in 0.04 s, and data/corpus/, data/suspense.json, data/gold.jsonl and data/corpus-stats.json all came back byte-identical to the committed ones; python3 -m evals.check_labels re-graded that key with independent arithmetic in 0.03 s and reported KEY CLEAN over 60 items, 10 cases and 6 of 6 hold reasons live, cleared and blocking somewhere; python3 -m evals.run --floor rules scored the free floor at 46 of 60 in 0.08 s with no network, reproducing every published floor figure to the digit (only the per-call timestamps differ from the committed result file); and python3 -m src.app served the board, answering 200 on /, /api/items, /api/item, /api/recorded, /api/corpus and POST /api/rules, with POST /api/work returning 200 and the note that no API_KEY is configured. The corpus, the register, the rulebook, the key and both recorded results ship in the repo, so the whole product renders before anyone decides to spend.

A living map of modern AI — kept current every morning