Home › Use Cases › Compare a transfer statement against the firm's asset-eligibility policy
Use caseUC0417
🧪 Use-case kit · runnable

Compare a transfer statement against the firm's asset-eligibility policy

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 transfer request arrives and the delivering firm sends a statement listing the positions in the account. Before the receiving firm accepts it, somebody has to say, position by position, whether it can come across as it stands. That means joining every symbol to the firm's own security master, its platform eligibility record and the registration the receiving account is opened under, and then READING the sentence beside the record that says what the platform actually offers and whether the security was free to move on the day. Today that is a person with three screens open, sixty statements deep, and the positions that go wrong are the ones where the columns all agree and the sentence does not. The join — every position against a security master, a platform eligibility extract and a table of four platform codes and four registration codes — and the READING under it.

Audience

The transfer operations clerk the statement lands on, and the supervisor who signs the queue off. The decision is not what to own — this check has no view about that and cannot express one — it is which positions can move as they stand and which go back to somebody before the transfer is accepted. Every number on these pages came from one real run of this code, not from a vendor page.

The inputThe actual incoming account transfer statements

The corpus is 62 incoming account transfer statements, 0.18 MB (json 3 · jsonl 1 · md 1 · txt 62). Because the job needs a document that can be WRONG in eight different ways at once, where four of them are settled by a lookup and four are not, and where the two that decide the money are sentences with no column anywhere on the page. No real transfer statement could be published, and a corpus of real ones would be somebody's portfolio. So it is generated, said to be generated on every surface, and generated from a seed so that anyone can rebuild it byte-identically and check the key was derived rather than typed.

The corpus

  • The 62 incoming account transfer statementsgenerated from a fixed seed, so no real record, person or institution appears in it.
  • Where each came fromNowhere — all 62 statements, data/securities.json and the whole answer key are generated in-process by the file that sits beside them. EVERY SYMBOL IS INVENTED and is ZZ plus three letters, a shape chosen because it is visibly synthetic and collides with no real ticker; every security name, issuer, firm, share class, price, quantity, date and eligibility note is invented too. AEP-2026 is invented and is not the ACATS rules, an NSCC or DTCC procedure, a FINRA or SEC rule, any real firm's transfer-of-assets policy or any prospectus. Nothing in this corpus is investment advice or a view about any security.

Swap this folder for your own material and the kit is pointed at your incoming account transfer statements. That is the whole change — there is no database to migrate.

One incoming account transfer statement, as the model receives itTX-0001.txt · 1 of 62
ACCOUNT TRANSFER STATEMENT - ASSET ELIGIBILITY CHECK BEFORE ACCEPTANCE

STATEMENT HEADER
  Statement          TX-0001
  Transfer request   TA-51000
  Statement date     2026-01-12
  Delivering firm    Harrowgate Securities
  Receiving firm     Wrenmoor Wealth Partners
  Registration       joint-taxable
  Prepared by        M. Hallberg, transfer operations

ELIGIBILITY POLICY
  Policy                  AEP-2026
  Master revision         AEP-2026 security master revision 9
  Master published        2025-12-03
  Whole-unit basis        only whole units transfer in kind; a fractional residual does not
  Platform codes          full-custody, brokerage, fund-platform, alternatives
  Registration codes      any, taxable-only, retirement-only, custodial-only

SECURITY MASTER
   Symbol   Security name                              Asset class              Issuer
   ZZEVV    Hollisworth Meridian Trust                 corporate-bond           Hollisworth Investment Company
   ZZLEX    Norbeckham Beacon Portfolio                us-listed-etf            Norbeckham Associates
   ZZPNT    Abtonwell Core Fund                        non-traded-reit          Abtonwell Asset Management

PLATFORM ELIGIBILITY EXTRACT
   Symbol   Platform         Registrations     Status       Reviewed
   ZZEVV    brokerage        any               Open         2025-11-19
   ZZLEX    brokerage        any               Open         2025-10-21
   ZZPNT    alternatives     any               Open         2025-12-18

POSITIONS ON THIS STATEMENT
   #  Symbol   Class  Quantity       Unit price     Market value     Eligibility note
   1  ZZPNT    n/a    12.000         $4.00          $48.00           Master record re-confirmed at the last platform review and carried forward unchanged

Abridged — the file continues.

The outcomeWhat a good result looks like

Every position carries a verdict, the disposition it maps to, the clause of the policy behind it, the market value that does not come across to the cent, and one row of the statement copied verbatim as evidence; the statement carries ALL-IN-KIND or EXCEPTIONS, the exception list and the total.

And when it cannot

⚠︎ THE STATEMENT-LEVEL NUMBER IS 37 OF 62 AND THE HEADLINE IS THAT FREE CODE BEATS THIS. statement_all_correct requires every position right on all seven graded fields AND the outcome, the exception set and the total. The hand-written keyword floor scores 62 of 62 for $0.00 and the paid call 37. What sinks the call is not the reading — it gets 28 of the 29 positions a note decides — it is the 26 in-kind positions it calls exceptions for nothing and the 34 rows it quotes where the answer contract says null.

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.

  • Every fact the verdict turns on is in a column — the pure-column floor, evals/baseline.py --floor rules
    It is free, deterministic, offline, and it is right on 248 of the 248 positions this corpus settles by column. Nothing a model adds can improve a lookup.
  • The eligibility notes are TEMPLATED — a fixed set of sentence shapes, as they are in this generated corpus — the keyword floor, evals/baseline.py --floor phrase
    It scores 277 of 277 positions and 62 of 62 statements here, which is everything, for $0.00. If your notes come out of a system that writes them from templates, write the patterns and keep the money.
  • The notes are written by people, in their own words, and a pattern list cannot keep up — the paid call, with the pure-code station behind it
    It is the only arm that reads a sentence at all: 28 of the 29 positions a note decides, against a de-memorised keyword floor's 14, and the paired test says that margin is real (p = 0.000122).

And where nothing here is good enough:

  • You want one number for a board — neither — publish the pair
    The aggregate is dominated by the 84 pct of positions that simply transfer in kind. Answer TRANSFERS-IN-KIND to everything and score 84.1 pct of position verdicts having read nothing.

At a glanceHow the whole thing runs

90%position verdict pct
2,582 msp50, end to end
$2.19per 1,000 incoming account transfer statements · GPT-5.6 Luna

Run once, for real, on 2026-09-11. 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 statements into data/corpus/ in the same panel layout and the whole free half runs on them immediately — the parser, all four floors, the engine, the station and the board, at $0.00 and with no key. The key is the boundary. Corpus lens →
When is this the wrong choice?Avoid: Do not call a model for two dict lookups, two set memberships and one modulo. That is the case against the best-fitting scenario (“Every fact the verdict turns on is in a column”). 4 scenarios scored in all, each with its own. Eval lens →
Where does it stop working?A statement whose positions are not the printed column layout src/rules.py parses — the parser reads columns and a different layout yields zero positions rather than a wrong answer. 6 recorded failure modes, each from a run rather than a guess. Corpus lens →
What was never verified?Whether any of this generalises to eligibility notes a person wrote. Every note in this corpus comes from one of about twenty templates with generated dates and names in it, which is the single reason a keyword floor can score 100 pct here. 5 items this kit says it could not check. Eval lens →
Can I run this on a model I control?The shipped adapter is one provider, one key, configured in .env; the Prompt lens states what swapping it costs. The published figures come from 1 model on the fast tier, reasoning disabled (THE PUBLISHED RUN). Prompt lens →
And if it fits — what do I stand up?4 artifacts with a stated home and a stated egress, and 4 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-11 — r001-asset-eligibility. 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 — A clean checkout with no key configured renders the whole board, replays the committed scored run, computes three of the four free floors live on every statement and scores every cell — measured, on this machine, at $0.00 and with no network call made. The "Check with the model" control is disabled and the page says why beside it.

A living map of modern AI — kept current every morning