The business caseThe problem this solves
An operator pays every owner in a well by the decimal on its division order, and before a check run that decimal has to agree with three other records: the unit's tract schedule, the lease royalty in force on each tract, and the title opinion as moved by every deed and assignment recorded since. The revenue desk's own check reads COLUMNS — an EXAMINATION status printed on the instrument register, a royalty row on file, a total that sums to one. What decides the answer is often a sentence: an approval the title examiner withdrew, a PENDING deed a note approves, a second recording that corrects a book and page rather than conveying again, a royalty amendment never ratified by every lessor — and the date on that sentence against AS AT. The revenue desk's own status line disagrees with the procedure on 40 of the 64 division order packs in this corpus. Opening one well's division order pack, applying every recorded deed and assignment that has actually passed title at the AS AT date to the title opinion, reading each note to see whether it withdraws or grants an approval, marks a re-recording or sets aside a royalty amendment — and on what date — then recomputing every owner's decimal from participation, share and royalty, rounding it the way the order records, and checking the order line by line and in total.
Audience
The land desk and the revenue desk at an oil and gas operator, working a well's division order before a check run — and the title examiner whose opinion and approvals an exception is raised against. Every number on these pages came from one real run of this code, not from a vendor page.
The inputThe actual division order packs
The corpus is 64 division order packs, 0.24 MB (txt 64). It is generated because it has to be. A real division order is a list of people's names, addresses and tax ids beside the share of a well's revenue each one is paid, and the title examiner's notes about it are written by named people about named people. None of that can be published, and a corpus that could be published would have had the one thing this kit measures — the sentence that decides whether a deed passes — stripped out of it first. So the whole thing is invented, declared, and generated from one seed with the key DERIVED by the same rulebook the kit applies.
The corpus
- The 64 division order packsgenerated from a fixed seed, so no real record, person or institution appears in it.
- Where each came fromdata/SOURCES.md states where every byte came from AND what the generator costs the measurement. Every well, unit, tract, lease, title opinion, instrument, royalty amendment and division order is invented, every owner is an owner code and an owner type, and THERE ARE NO PEOPLE IN THIS CORPUS AT ALL — a note speaks for the title examiner, the land desk, the revenue desk or the owner relations desk. evals/check_labels.py sweeps all 64 packs for an honorific and a capitalised two-word name on every run and reports 0.
Swap this folder for your own material and the kit is pointed at your division order packs. That is the whole change — there is no database to migrate.
================================================================================
DIVISION ORDER RECONCILIATION -- ONE WELL, ONE AS-AT DATE
================================================================================
FILE DOP-0001
WELL W-30003 unit well, first sales 2026-01-01
UNIT U-4100 1280.00 acres
DIVISION ORDER DO-55000 effective 2026-01-01
TITLE OPINION TO-7000 ownership as of 2026-01-12
AS AT 2026-04-30
PACK COMPILED 2026-05-12
DECIMAL PLACES 8
ROUNDING HALF-UP as recorded on the order
PRODUCT oil and gas, one decimal per owner line for both
-- UNIT TRACT SCHEDULE (unit declaration) --------------------------------------
TRACT NET ACRES PARTICIPATION
TR-4100-1 70.00 0.05468750
TR-4100-2 360.00 0.28125000
TR-4100-3 110.00 0.08593750
TR-4100-4 740.00 0.57812500
SCHEDULE TOTAL 1280.00 1.00000000
-- LEASE ROYALTY ROWS (every lease and every amendment on file) ----------------
ROW LEASE TRACT ROYALTY EFFECTIVE SOURCE
RY-4100-01 LS-28082 TR-4100-1 1/4 2017-07-16 lease LS-28082
RY-4100-02 LS-28082 TR-4100-1 9/32 2025-12-05 royalty amendment RA-49
RY-4100-03 LS-23491 TR-4100-2 1/4 2022-04-20 lease LS-23491
RY-4100-04 LS-20207 TR-4100-3 1/4 2022-08-05 lease LS-20207
RY-4100-05 LS-28684 TR-4100-3 3/16 2018-12-24 lease LS-28684
RY-4100-06 LS-24182 TR-4100-4 7/32 2022-09-03 lease LS-24182
-- TITLE OWNERSHIP PER TITLE OPINION TO-7000 -----------------------------------
ROW TRACT OWNER OWNER TYPE INTEREST SHARE LEASE
TI-4100-01 TR-4100-1 O-62015 LLC MINERAL 2/3 LS-28082Abridged — the file continues.
The outcomeWhat a good result looks like
One division order pack in, one row out: which recorded instruments pass title at AS AT, which royalty rows are in force, every owner line's recomputed decimal and flags, every exception and one of six DOR-2026 verdicts. 59 of 64 packs come back with all four graded fields right, against 47 for the best free floor and 0 for the revenue desk's own status line.
And when it cannot
On the scored run 64 of 64 replies parsed, 0 stopped at the ceiling and no call failed. The 5 packs it got wrong are named in the kit README with what it answered, and every one is the instruments reading: a withdrawal dated after AS AT that it followed (DOP-0055), a decoy note it followed (DOP-0015), a late approval it missed — the one order in 64 it let through as RECONCILED while a conveyance was unreflected (DOP-0040) — and two packs where it admitted PENDING deeds no note approves (DOP-0002, DOP-0041). A reply that cannot be parsed is counted WRONG and stays in the denominator; it is never dropped and never re-fired.
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.
- Your title system records withdrawn approvals, re-recordings and unratified amendments as a STATUS, and your instrument register is current at the AS AT date — the free floor that reads the columns, and do not buy a call at all
45 of 64 packs for $0.00, and on the 42 packs the columns decide it gets all 42. Keying errors, missing and stale owners, amendment dates, schedule shortfalls, truncation and unreflected conveyances are all decidable from columns and dates. - Approvals, withdrawals, re-recordings and ratifications arrive as free text — a title examiner note, a land desk note pasted into the pack — the paid call
This is the whole product. On the 22 packs where a sentence decides a reading the paid arm is 20, the columns floor 3 and the best vocabulary floor 17. - You want an approved conveyance the order has not carried NEVER reported as RECONCILED — the paid call, and read the naive vocabulary floor beside it
The paid arm let one through in 64 (DOP-0040, a late approval it missed); the columns floor let 5 through and both vocabulary floors 3. The naive vocabulary floor is the only arm that gets DOP-0040. - You want the revenue desk's own reconciliation audited — either paid or free — both beat it comprehensively
The desk's status line disagrees with DOR-2026 on 40 of 64 packs and gets 0 whole: it returns no reading at all. It is published as an arm so the comparison is against what is running today.
And where nothing here is good enough:
- Notes turn on their DATE against AS AT — approvals and withdrawals recorded after the as-at date — neither alone — compare the note's date in code
On the three date traps the floor that reads no note gets 3 and the paid arm 2: it followed a withdrawal dated five days after AS AT (DOP-0055). A date comparison is free and was not built. - Your units carry working interest assignments, heirship affidavits, unleased or non-participating interests, or separate oil and gas decks — neither, yet
No pack in this corpus does. The unit of work is mineral deeds and overriding royalty assignments on one order per well, and every percentage on this page is against that unit.
At a glanceHow the whole thing runs
Run once, for real, on 2026-09-13. 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? | Replace data/corpus/*.txt with your own division order packs in the same block shape and data/orders.json with your own order register, then run python3 -m evals.run --run-id b000-<yours>-vocab_neg --floor vocab_neg — it needs no key and costs nothing. ⚠︎ WHAT STOPS BEING TRUE THE MOMENT YOU DO. Corpus lens → |
| When is this the wrong choice? | Avoid: Paying per order for arithmetic the station already does for free. That is the case against the best-fitting scenario (“Your title system records withdrawn approvals, re-recordings and unratified amendments as a STATUS, and your instrument register is current at the AS AT date”). 6 scenarios scored in all, each with its own. Eval lens → |
| Where does it stop working? | A conveyance chain that runs across title opinions, or a grantor who conveys in more than one tract. Every instrument here moves a fraction of what its grantor holds in ONE tract, and UNREFLECTED-CONVEYANCE is only ever tested on one instrument at a time. 7 recorded failure modes, each from a run rather than a guess. Corpus lens → |
| What was never verified? | NO SECOND SCORED RUN. One was fired, so the run-to-run spread on this corpus is unknown and no confidence interval is claimed anywhere on this page. 9 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? | 5 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-09-13 — r001-division-order. 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.
Checked before this shipped — A clean checkout with no key configured renders the whole board, all four free floors and every committed run. pip install -r requirements.txt installs nothing — the kit is standard library only. The only thing a key buys is the ASK THE MODEL button and a new scored run.









