See it work › Portfolio › Rate validation
Use case 1 · car and home insurance

Did we charge every customer the right price? The Brain checks all of them.

An insurance company has a price list (the rate tables) and a rule book that says how to add the prices up. It also has a record of what every customer was actually charged. The Brain does the math again for every customer, the way the rule book says, and points at every bill that is wrong: which step went wrong, why, and what to do about it. It never changes a price itself.

Test 400 bills, 82 with a hidden mistakeFound all 82, no false alarmsReason named 80 of 82Language model llama3.2:3b on a laptop (any model fits)Screens real, from the live app
What this job does

Check the math on every bill, before a customer or an inspector does.

Think of a restaurant with a menu and a cashier. Sometimes the cashier uses last year's menu, skips a discount, or types the wrong table number. The bill is wrong, and nobody notices for months. Insurance companies have the same problem with thousands of bills. The menu (the rate tables) and the recipe (the rule book) are already in the building. Someone just has to redo every bill and compare.

In goes

The price tables, the rule book, the list of what was charged, and the computer's own scratch work for each bill

Out comes

For every bill: "correct", or "wrong at step 2, because a discount was skipped, worth $117.72, send to a person"

Who uses it: the people who set prices and the people who check the company's work. How much it may do alone: at first it only reports. Later it may open a ticket. It never changes a price.

The Brain overview screen in the HomeGrwn app, listing the rate validation job with its item, fact and decision counts.
The Brain screen in the app. One row per job. For this job: 411 folders, 4,941 facts, 1,128 signed decisions. (The demo account is named after a counseling practice; the job inside it is the insurance one.)
The picture

Eight stops, in a line. Papers go in on the left; answers come out at the bottom.

The same parts do the other job too (writing test rules for software). What makes this one about prices is a set of settings, like a recipe card, not different machinery.

Papers come in through the Guard, are read by the Senses, filed in Memory, checked by Judgment, written into the Ledger, explained by the Voice, and shown to people. What people decide comes back to teach the Brain.1 · Papers come inthe price tablesthe rule bookthe list of billsthe computer's scratch workdropped in, or fetched2 · The Guardthe front doorstamps every filerefuses the same file twiceguesses what each file isa person says yes3 · The Sensesreads each fileturns it into factschecks every factat six checkpointsbad facts → held back4 · Memorya filing cabinet with a date on every sheetOriginalsthe files, lockednever editedon diskFactseach priceeach customer detaileach bill4,941 of themFoldersone per billone per tabledated versions411 foldersVectorsa map of therule book'ssentencesnames hiddenfacts true on the bill's date5 · Judgment: redo the math, then explain the differenceadd the bill up again the way the rule book says · compare with what was chargedfind the first step where the numbers differ · name the reason using ruleshow much money is at stake · what to do nextthe language model is asked only when the rules cannot tell6 · The Ledgera notebook written in pennothing can be erasedevery line is signed1,128 lines this test7 · The Voiceexplains a finding in wordsmay only say what thenotebook saysa filter deletes anything else8 · Peoplesee the list of wrong billsfix them, or say "fine"check the held factsapprove new ruleswhat people decide comes back and teaches the Brain for next time
01The front door only stamps the file and guesses what it is. It decides nothing.
02Reading is done by recipe cards. The same card reads any price table that has a title row, some key columns, dates and a price.
03Memory never erases. A new price gets a new sheet with a new date. The old sheet stays, with the date it stopped being true.
04Judgment is math first. Redoing the bill is arithmetic. Naming the reason is a rule. The language model is only a backup.
05The notebook is the real product. Every number a person sees points to a signed line, and that line points to a cell in a file the company handed over.
Why HomeGrwn?

Because it grows models from your own data, on computers you own, with any language model you choose.

HomeGrwn is the product the Brain runs inside. Its job is to turn a company's own records into models that belong to that company: rules with versions today, trained helpers per question once there are enough labels. The language model that writes the words is your choice. The tests on this page used a small open model on a laptop; a bigger model with your own API key plugs into the same slot, because the writer never decides anything. Here is where each part of the rate validation job actually ran.

Three places: the company's own building with its computer, files and language model; the HomeGrwn app with the Brain and its memory; and the company's tools such as Jira, Confluence and Box. Files and answers flow between them over encrypted links, and the whole app can also be installed inside the building.Your buildinga computer you own: a laptop, an office server or a Mac StudioThe HomeGrwn connectora small program you download from the app andapprove once in your browser; it installs Ollama itselfno terminal, no engineerThe language model · your choicein this test: llama3.2:3b, 2 GB, running on your computeror any model you pick, big or small, with your own keyYour files and your warehouseprice tables and rule book from Box and Confluence;bills and scratch work pulled from your warehousethe app never holds your warehouse passwordHomeGrwn · the appon our server, or installed inside your building (same software)The Brainfront door · readers and checkpoints · filing cabinetjudgment · notebook · writer with filterMemory: facts and folders in Postgres, originals sealed on disk,map pins in pgvector, the vault for hidden namesa job is settings with versions, not codeThe screensSources: files, guesses,held factsA bill or a wish on any dateThe notebook, with a"check the seals" buttonThe scored practice testThe built-in agentsguess what each file isread it by recipe cardrun the questionsrun the practice testfetch from your toolsyou only say yes or noYour tools and peoplewhat you already useJira · Confluence · Boxthe app fetches wish lists, specs,sheets and old wishes with yourown keys; unchanged items arerefused as twinsPeoplesay yes to the file guessesfix held factsread findings and draftsapprove new rule versionsdecide how much it may do alone:report only → suggest → actwhat they decide teaches itencryptedfiles upquestionsEverything above was switched on from the app by its agents. The only manual step in the whole flow is a person clicking "yes".
01Models made from your data, for you. The rules, the memory and, in time, the trained helpers are built from your own records and belong to you. The files are read on a computer in your building, and the whole app can run there too.
02Any language model. The writer slot takes a small open model on your own computer or a big one with your own key. It never decides, and the filter checks its words either way, so you can swap it without changing the answers. On a laptop, this job ran with a 2 GB model at no cost per question.
03No engineers needed. Download the connector, approve it in your browser, drop files or connect Jira, click yes. The built-in agents do the rest.
04Settings, not code. A job is a template of rows with versions. The same software checked prices and wrote test rules; a hospital or a bank job is another template.
05Proof built in. A notebook that cannot be erased, a filing cabinet you can ask about any date, and a practice test with a score. You can show an auditor.
06It learns from your people. What your reviewers change and what your tickets say comes back as lessons, and a new rule version goes live only if it is better.
The data

Five files, exactly as the company keeps them.

Nobody cleaned anything up first. The test files were made by a generator we wrote so we would know the answers. They look like real company files, but they are not a real company's files.

FileWhat it isSizeWho keeps it in a real company
PA_Rate_Tables_v2024.1.xlsxCar insurance price list, 5 sheets12 KBActuarial, in Box or SharePoint
HO_Rate_Tables_v2024.1.xlsxHome insurance price list, 3 sheets7 KBActuarial
PA_HO_Rating_Manual_v18.mdThe rule book, in sentences1 KBProduct team, in Confluence
PL_POLICY_TERM_extract_2024.csv400 bills: customer details, price paid, notes26 KBThe data warehouse team
PC_rating_worksheets_2024.jsonlThe computer's scratch work per bill40 KBThe policy system (Guidewire PolicyCenter)

A peek inside

Price table (car, "Comp Base")   Area   Car type   From         Until        Price
                                  101    8          2023-07-01   2024-01-01   0.0192
                                  101    8          2024-01-01   (still good) 0.0203

List of bills
bill,            kind,     date,        area, car, deductible, driver, home policy?, ..., paid
PA-2024-118000,  car,      2024-08-04,  115,  10,  500,        A,      yes,          ..., 190.57
HO-2024-220011,  home,     2024-04-26,  ...,  roof age 22, wind 2%, house 250000,   ..., 682.19, note: "Retention credit -15%"

Scratch work
{"bill": "PA-2024-118000", "step 1": 0.0236, "step 2": 0.02006, "step 3": 0.02006, "step 4": 0.019057}
What happened to each file

From a file on the shelf to facts in folders, one file at a time.

Every file took the same trip: the front door stamped it and guessed what it was; a person said yes; a recipe card cut it into pieces; each piece became facts; each fact passed six checkpoints; the facts were filed in folders. Here is that trip for each of the five.

PA_Rate_Tables_v2024.1.xlsx

The price list for car insurance: five sheets (Comp Base, Coll Base, Deductible Factor, Driver Factor, Multi Policy). Each row: this area, this kind of car, this price, good from this date until that date. A title row sits above the real header.

1 · Front door's guessprice table (rate_cell) · recipe rate_table_xlsx · version 2024.1 read from the name · sureness 13
2 · Recipe carda grid with keys: Territory and Symbol are the key, Effective is “good from”, Expires is “good until”, Rate is the value
3 · Pieces234 rows
4 · Facts234 price facts
5 · Filed in5 folders, one per sheet
6 · Checkpointskey complete · no two prices for the same key on overlapping dates

HO_Rate_Tables_v2024.1.xlsx

The price list for home insurance: Cov A Base by protection class and construction; Roof Age Factor as a from-to range; Wind Deductible Factor keyed by words (1%, 2%, 5%).

1 · Front door's guessprice table (rate_cell) · recipe rate_table_xlsx · version 2024.1 · sureness 11
2 · Recipe cardsame grid recipe; Roof Age From and Roof Age To become one range key
3 · Pieces38 rows
4 · Facts38 price facts
5 · Filed in3 folders, one per sheet
6 · Checkpointssame two checks

PA_HO_Rating_Manual_v18.md

The rule book, in sentences: which table to read, which factors to multiply in which order, round once at the end, minimum premiums.

1 · Front door's guessrule book (rule) · recipe rating_manual · version 18 · sureness 3
2 · Recipe cardparagraphs, with the heading path kept
3 · Pieces5 paragraphs
4 · Facts14 rule facts, one per sentence
5 · Filed in3 folders, one per manual section
6 · Checkpointsnone fail; the math steps were written from these sentences and approved as rule version 4

PL_POLICY_TERM_extract_2024.csv

The list of bills from the data warehouse: one row per customer. Car and home share one wide layout, so half the columns are empty on every row. Includes what was paid and any manager note.

1 · Front door's guesscustomer details (policy_attr) · recipe warehouse_terms · version 2024 · sureness 15
2 · Recipe cardone folder per row; each non-empty column becomes a fact on that folder
3 · Pieces400 rows
4 · Facts2,815 customer-detail facts + 400 price-paid facts (empty cells make no fact)
5 · Filed in400 folders, one per bill
6 · Checkpointsvalues checked against each fact type (number, text, date)

PC_rating_worksheets_2024.jsonl

The computer’s scratch work: the number it had after each step of the math, one record per bill.

1 · Front door's guessscratch work (system_step) · recipe pc_worksheet · version 2024 · sureness 3
2 · Recipe cardone record per bill, joined to the same folder by the bill number
3 · Pieces400 records
4 · Facts1,440 step facts
5 · Filed inthe same 400 folders
6 · Checkpointsnumbers only

Totals: 1,077 pieces, 4,941 facts, 411 folders (400 bills, 8 price tables, 3 manual sections), 0 facts held back, 6.6 seconds.

How the built-in agents read

Two agents did the reading. A person only clicked yes.

HomeGrwn ships these agents; nobody wrote anything for this company. They work from the recipe cards in the job's settings.

The front-door agent (the manifest)

It looks at three things: the file ending (.xlsx, .csv, .md, .jsonl), words in the file name ("Rate_Tables", "Manual", "worksheets"), and the first row (the header). Each recipe card lists the hints it expects. The agent scores every card against the file and proposes the best one, with the score shown so a person can judge. It also reads the version out of the name (v2024.1 → 2024.1) and checks whether an earlier version of the same file is already on the shelf.

The reader agent (the recipe cards)

Three readers, no insurance knowledge. The grid reader finds the real header under a title row, decides which columns are the key, which are dates and which is the value, by their names ("Rate" or "Factor" wins as the value; "Effective" and "Expires" become the dates; a "From / To" pair becomes a range). The row reader makes one folder per row and one fact per filled cell. The paragraph reader keeps the heading path and makes one fact per sentence.

The six checkpoints

CheckpointWhat it asksIf it fails
ingestDid the piece come from a sealed original with a location?The fact is held back with the reason, and a person sees it on the Sources screen. They can correct the value or let it go; either way it is written down.
validateIs the value the right kind (number, text, date)? Is the key complete?
standardizeDates as dates, "Y" as yes, numbers as numbers.
resolveDoes the name match something we already know (a table, a system)?
testJob-specific checks: no two prices for the same key on overlapping dates.
publishIs this fact new, or the same as one already filed?
The Sources screen: three drops with their files, the front-door agent's guess, the reader recipe and the score; the quarantine panel is empty.
The Sources screen, live. Bottom: the first drop of five files, each with the agent's guess, the header it saw, and the recipe it picked (score 3 to 15). Middle and top: two later drops used in the versions section below. Quarantine: nothing held back.
Where it is kept

The originals on a shelf. The facts in a database. The notebook next to them.

ShelfWhat is on itThis jobWhere exactly
Original filesThe file exactly as it arrived, sealed with a fingerprint (a hash)5 (+2 later)disk, one folder per company and per drop, write-once
PiecesOne row or one paragraph, with a note of where in the file it came from1,077Postgres table chunks
FactsOne true thing, with its type, value, sureness, dates, and the piece it came from4,941Postgres table facts
Folders and versionsOne per bill and per price table; a version closes when the facts change411Postgres tables items, item_versions
Held factsA fact that failed a checkpoint, waiting for a person0Postgres table quarantine
The notebookEvery decision, signed, with the rule version and the facts it read1,128Postgres table decisions, append-only
VectorsMap pins for the rule book's sentences, names hiddenas neededPostgres with pgvector, table chunk_vectors
The vaultThe real values behind hidden names, locked with a keyas neededPostgres table vault, encrypted
SettingsRecipe cards, math steps, reason rules, limits, with versions48 rows · 4 rule setsPostgres tables job_config, rule_versions
A bill's page: its version timeline, eleven facts each with type, value, sureness, when known, status and source, and six signed decisions.
One bill's folder, live (HO-2024-220159). Eleven facts: seven customer details and the price paid from the bill list (source: Sheet1 › row 401), three scratch-work steps from the worksheet file (record 400). Every fact says when it became known and where it came from. Below: the six decisions about this bill, which found a typing mistake worth $1,316.98.
Versions and twins

Nothing is overwritten, and the same thing is never filed twice.

Three real drops on the live app show the three cases a company hits: new files, the same content sent again in a fresh file, and the very same file sent twice.

Drop 1 · five new filesOct 21. 5 files → 1,077 pieces → 4,941 facts → 411 folders.read
Drop 2 · same prices, new fileOct 22. The car price table was regenerated, so its bytes differ but every cell is the same. The front door let it in (new fingerprint). The reader cut 234 pieces and published 0 facts: all 234 already existed. The 5 table folders were checked and left as they were.read · 0 new
Drop 3 · the very same fileOct 22. The identical bytes again. Refused at the front door: "duplicate · same bytes as ev_332b7ae185". Nothing to read.refused

How a fact knows it is a twin

Each fact gets a fingerprint made from its folder, its type, its name, its slot and its value and start date. The slot is the thing a price is about (the key and the start date). Two facts with the same fingerprint are one fact, however many files repeat it. A price with the same key but a new start date is a new fact that replaces the old one: the old one gets an end date, and both stay.

Four kinds of version, all visible in the app

WhatHow a change worksIn this job
A fileEach file is sealed with a fingerprint; a newer file with the same name is marked as superseding the older one5 originals, plus the two drops above
A factNever edited. A new value is a new fact that replaces the old; the old keeps its end date4,941 facts, 0 replaced yet
A folderWhen a folder's set of facts changes, version N closes and N+1 opens, with the drop that caused it411 folders, all at version 1
The rulesA rule set is a numbered, dated, hashed file; a person approves it; every decision names the version it usedv1 next-action rules · v2 reason rules · v3 starter math (proposed, never approved) · v4 the math from manual 18 (approved, in force from 2023-01-01)
A settingChanging one row closes its version and opens the next; the row remembers whether it came from the template or was changed48 live rows in 13 sections
The job screen: template version, counts, the four rule sets with status, author, notes and hash, and the replay box.
The job screen, live. The four rule sets with their status, who wrote them, their notes and their fingerprint. Version 3 (the starter math) was never approved; version 4 (the real math) is what every decision used.
Memory: by folder, by date

Not a copy of the files. A filing cabinet where every sheet has a date and a source.

Each bill has a folder. Every fact about that bill, from any file, goes in that folder. A price table has a folder too; its prices are sheets with "good from" and "good until" dates. When the Brain asks a question, it always asks "as of which date?", and Memory answers with what was true then.

One price has two sheets: 0.0192 good from July 2023 to January 2024, and 0.0203 from January 2024 on. A bill dated September 2024 should use 0.0203.The price for area 101, car type 8 · two sheets, one slotsheet A · price 0.0192good 2023-07-01 → 2024-01-01sheet B · price 0.0203 · replaces Agood 2024-01-01 → todaynew price listbill PA-2024-118028, dated 2024-09-26should use sheet B → 0.0203the computer used 0.0254 =the old list → reason: old price list

One folder per bill. The bill, the customer details and the scratch work all go in the same folder, because they share the bill number. Reading a file never makes a second folder.

Every sheet has a date. So "what did we know about this bill on 26 September 2024?" is a simple question. The bill's page in the app has an "as of" date box for exactly this.

Every sheet says where it came from. A fact points to the piece of the file it was read from, like "Comp Base sheet, row 57". A finding is a chain of pointers back to the company's own file.

Nothing is erased. A new price is a new sheet. The old sheet gets an end date. Corrections, rule changes and setting changes all work the same way.

Vectors and the vault

A map where similar sentences sit close together. It helps find things. It never decides a price.

A vector is a long list of numbers that works like a pin on a map. Two sentences that mean nearly the same thing get pins that are close to each other. The Brain makes one pin per piece of text, after hiding any names, and keeps the pins in the database next to the facts.

What gets a pin here. The sentences of the rule book and the notes in the price lists. Prices themselves do not get pins. A price has a key (area, car type), and keys are looked up, not searched.

What the pins are for. When the Brain says "the roof-age discount was skipped", the Voice can find the rule book sentence about roof age and quote it. When someone writes a new math step, the app can find the paragraph it should match.

What the pins are not for. None of the math or the reasons uses a pin. In the test below, the pins were used for zero decisions. That is on purpose.

The vault. Before a sentence gets a pin, emails, phone numbers, ids and names are swapped for code words. The same value always gets the same code word, so the pieces still match up. The real values are locked in the vault with a key, and every peek is written in the audit log.

One sentence, three forms

the original (sealed on the shelf)
  "Contact J. Alvarez, jalvarez@acme-mutual.example, about price list 2024.1."

with names hidden (what gets a pin, what any language model sees)
  "Contact [[name:7c1e0b9a2d44]], [[email:3f9b8a1c0d2e]], about price list 2024.1."

the pin (a list of numbers; 768 of them with a real embedding model)
  [0.0213, -0.0871, 0.1140, ...]
The six questions

Each question has its own helper. Most helpers are rules, not AI.

We did not build one big AI that "does insurance". We built one small helper per question. A helper is either a rule (if this, then that) or a language model with a strict job. Every answer is signed with the name of the helper that gave it.

QuestionWhat it answersWhich helperIn the test
R1 · What should the bill be?The price, redone step by step from the price list and the rule bookThe math steps, as rows (rule set v4)all 400 bills redone
R2 · Does it match?Yes, or no with the differenceA limit: must match to the cent82 flagged, 0 false alarms
R3 · Where did it go wrong?The first step whose number differs from the scratch workComparing two listsevery flagged bill got a step
R4 · Why?old price list · skipped discount · typing mistake · manager override · roundingSix rules that look at clues (rule set v2). The language model is asked only if the rules say "not sure".80 of 82 right. The model was asked 0 times.
R6 · How much is at stake?The total across the whole bookAdding upcomputed for each bill
R7 · What now?let it go · send to a person · open a ticketSix rules (rule set v1)send to a person 51 · let it go 26
Did we create or train a model? No. Every question here was answered by rules we wrote (rows with versions) and by lookups in Memory. The language model was downloaded as it is and only given instructions; it was not trained, and in the final run it was not even asked. Training comes later, once people's decisions have flowed back as labels: then a small model per question is trained on those labels, tested on data it never saw, and used only if it beats the rules.
Why rules first? We also tried giving the same 82 wrong bills, with all the same clues, to two small language models alone and asked "why?". One got 8 right. The other got 41. The rules got 80. A small model is bad at comparing two numbers and applying a definition, and that is exactly what rules are good at.
llama3.2:3b alone
8 / 82
qwen2.5:3b alone
41 / 82
the rules
80 / 82
The notebook (ledger)

Every answer is a line written in pen, with a seal.

A line says: which bill, which question, the answer, how sure, which rule fired, which version of the rules, which facts were read, and who was allowed to act on it. The database refuses to change or delete a line. Each line's seal includes the seal of the line before it, so a "check the seals" button can prove nothing was touched.

The decisions screen: a table of signed decisions with item, question, answer, sureness, reasons and rule version.
The notebook, live. 1,128 lines for this job: 400 R1, 400 R2, and 82 each of R3, R4, R6, R7 (only wrong bills get the last four). Seals verified intact.
The test

A quiz with 400 bills. We secretly made 82 of them wrong and kept the answers to ourselves.

Think of a spelling quiz. The teacher writes the words, keeps the answer sheet, and the student only gets the quiz. We did the same thing. A program we wrote made 400 pretend bills and, on purpose, put a mistake in 82 of them. It also wrote a secret answer sheet: which 82 bills are wrong, and why. The Brain was given only the bills, never the answer sheet. When it finished, we compared its notebook with the answer sheet to score it.

Hidden mistakeBillsWhat it looks like
skipped discount27one step in the scratch work repeats the number before it
typing mistake23the computer used the price from the row next door
manager override15the math is right, but a note says "15% off"
rounding11off by one cent
old price list6step 1 used last year's price
no mistake318must not be flagged
  1. Front door. 5 files in, 0 twins, 0 unreadable, 0 unknown. A person said yes to the guesses.
  2. Reading. 1,077 pieces, 4,941 facts, 411 folders, 0 held back. 6.6 seconds.
  3. Judgment. All 400 bills redone on their own dates, six questions each. 3.8 seconds.
  4. Score. Compared with the answer sheet. The notebook's seals were checked: 1,128 lines, all intact.
82 / 82
wrong bills found
0
correct bills wrongly flagged
80 / 82
reasons named right
10.5 s
start to finish, on a laptop
The proof screen: the headline score, stages with counts and seconds, detection and reason accuracy, and the confusion table.
The proof screen, live. The same test run on the live app (24 seconds there): the stages, the score against the answer sheet, and the reason-by-reason table.
The answers

What the Brain wrote in its notebook, one example for each kind of mistake.

Copied from the notebook. Each line is signed, says which rule it used, and points to the facts it read.

Home bill HO-2024-220021 · a skipped discount

roof is 4 years old, so a 15% roof discount applies · the scratch work shows 4.36, 4.36, 4.36 (the number never changed) · charged $784.80

should be$667.08 · steps: 4.36 → 3.706 → 3.706 → 667.08
match?no · charged $784.80 · $117.72 too much (17.65%)
wherestep 2 (roof discount): the Brain got 3.706, the computer kept 4.36
whyskipped discount · rule "the scratch work repeats a number where a discount should have been applied"
what nowsend to a person

Car bill PA-2024-118028 · the old price list

dated 26 September 2024 · area 120, car type 14 · the scratch work starts with 0.0254 · charged $235.87

should be$217.30 · steps: 0.0234 → 0.01989 → 0.022874 → 0.02173 → 217.30
match?no · $18.57 too much (8.55%)
wherestep 1 (the base price): the Brain read 0.0234, the computer used 0.0254
whyold price list · rule: 0.0254 is exactly what the previous price list said for this area and car type
what nowsend to a person

Home bill HO-2024-220044 · a typing mistake

match?no · $632.80 too little (21.45%)
wherestep 1: the Brain read 4.237, the computer used 3.328
whytyping mistake · rule: 3.328 is the price for a different row of the same table, so someone keyed the wrong row
what nowsend to a person

Two that are fine to let go

HO-…220011charged $682.19, should be $802.58, 15% less · every step matches · the note says "Retention credit -15%" → manager override → let it go
HO-…220023charged $873.89, should be $873.88 · one cent → rounding → let it go

What a person sees: the list of 82 bills with the reason, the amount and what to do. Click one and you see every fact and every decision for that bill on that date (the folder screenshot above). No number on the screen was typed by a language model.

What it got wrong

Two tries to get here. Two bills the clues cannot settle.

TryWhat changedFoundReason right
1match to the cent; fixed bugs in our test generator81 / 8233 / 81 (the model was asked 49 times and got 1 right)
2two new "why" rules: skipped discount, wrong row82 / 8280 / 82 (the model was not needed)
The two misses. Two bills had a typing mistake where the wrong row happened to have a factor of exactly 1.0. In the scratch work that looks identical to a skipped discount, so the "skipped discount" rule fired. From the clues alone, nobody can tell these two apart. The right move is to send both guesses to a person, which the Brain already does. We did not bend the rule to match the answer sheet.

Bugs we fixed along the way. Prices in the same table were overwriting each other (fixed by giving each price its own slot). The reader picked the wrong column as the price. A version number came out as "v2025.1" instead of "2025.1". Our test generator planted mistakes that changed nothing. One-cent differences were not flagged. The notebook's seals failed because a date was stored as a whole number once and a decimal the next time.

Not proven yet. A real company's files. The math steps were written from our practice rule book; a real company's expert would replace and approve them before the Brain leaves "report only" mode. Nobody has sent decisions back yet, so the Brain has not learned a new rule from people.

See the second job: feature refinement →

Words used here

A short glossary.

drop
a batch of files handed to the front door at one time
fingerprint (hash)
a short code computed from a file's or a fact's content; the same content always gives the same code
recipe card
a settings row that tells a reader how to cut a kind of file into facts
piece (chunk)
one row or one paragraph cut from a file, with its location
fact
one true thing read from a piece, with its type, value, dates and source
folder (item)
everything known about one bill or one table; it has numbered, dated versions
slot
what a price is about: its key and start date; two facts in the same slot are the same thing at different times
checkpoint (gate)
one of six checks a fact must pass before it is filed
held back (quarantine)
a fact that failed a checkpoint and waits for a person
notebook (ledger)
the append-only, sealed list of every decision
helper (model)
whatever answers one question with a version and a signature: a rule set, or a language model behind a filter
vector (pin)
a list of numbers that places a piece of text so similar text sits nearby
vault
the locked store of real values behind the hidden names
Brain Models

Same parts. Any job.

The architecture, drawn step by step, and the other job built on it.

How the Brain is built →Feature refinement →