AI governance & assurance · AS 2401 / AS 1215 fieldwork evidence

Prove the population before you argue about the sample.

Journal-entry fraud testing keeps failing inspection for two documentary reasons: teams cannot prove the population they tested was complete, and cannot show why an entry meeting their own criteria was tested or skipped. This bench does both in code. It rolls the opening trial balance forward through every entry and must land on the closing TB to the cent, scores 100% of the population against six fraud criteria, and refuses to finalise while any flagged entry lacks a test mark or a named, reasoned exception. The model only phrases narratives from fields on the record.

Public dataset: State of Oklahoma General Ledger (CC-BY) 7,664 real GL lines, FY2026 Q4 · posting dates, users and sources synthesised (the state does not publish them) · 40 labelled synthetic suspicious entries injected · runs in your browser.

opening TB
395 accounts
rolled forward through
· entries
difference vs closing TB
·

·

·

Six criteria, applied by code to every entry

population counts · no sampling at this stage

    The quarter, day by day

    1 Apr to 30 Jun 2026 · postings per day

    Weekend and holiday texture is synthesised on the real rows and manufactured on the 40 injections, and the page says so. The criteria run the same either way. Thresholds ($10,000 roundness, $250,000 limit, rarity floors) are illustrative engagement judgements.

    Flagged entries · the selection log an inspector asks for

    ·
    EntryPostedAgency · accountAmountSource · userCriteria metDisposition

    Finalisation gate

    a named human, and zero undocumented skips

    ·

    Try it early. The refusal is the control: the bench will not produce a finished workpaper while any flagged entry has neither a test mark nor an exception reason, and it writes the refusal to the ledger.

    Run ledger · agent id + human id on every record·
    Each record hashes its contents plus the previous hash (FNV-1a). Replay recomputes the roll-forward and rescores all entries; the run hash must reproduce exactly, so the workpaper replays byte-identical at inspection.

    DETERMINISTIC code proves completeness · scores 100% of entries · decides what is flagged · gates finalisation │ trust boundary │ the model only PHRASES the narrative from fields on the record, checked before display, abstaining otherwise

    completeness proven to the cent → 6 criteria × 7,704 entries → forced dispositions → hash-chained, replayable run · willytai.com