GAAPcore · private preview

Let your agents build the app. GAAPcore keeps the books.

And the database refuses anything that would make them wrong.

GAAPcore is a headless US-GAAP accounting core on PostgreSQL. It has no screens. Your app sends it business documents (invoices, bills, receipts, shipments, depreciation runs), and it turns them into journal entries, inventory layers and financial statements. Or it refuses, and tells you why.

I'm Bill Chappell. I built GAAPcore by directing coding agents, and I'm looking for a few developers who build business software the same way and want to try it on something real.

Private preview; open source is the plan.

The database says no

The accounting rules run inside PostgreSQL, as triggers and checks at commit. Every caller goes through them: your console, an import script, an agent that guessed wrong. These are real messages from the schema. The document numbers and amounts are examples.

RowThe app tries toPostgreSQL answers
1Post a journal entry with $1,000.00 of debits and $990.00 of creditsjournal entry JE-0042 must balance (debits 1000.00, credits 990.00, lines 2)
2Date an invoice into September after September was closedinvoice INV-1093 date 2026-09-28 falls in a closed fiscal period
3Post a manual journal line straight to the bank's cash accountaccount 1010 is subledger-backed or bank cash and is restricted (C5)
4Ship stock at its old cost while a write-down of that cost layer commitsgoods issue GI-0311 take costs 5.00 but the FIFO rule gives 4.50 (SG-056)
5Repay an intercompany advance on a date before the advance existedINTERCOMPANY_REPAYMENT_EXCEEDS_BALANCE: the balance Acme Sales owes Acme Manufacturing falls below zero on 2026-10-20 (S-101 item 4, SG-315)
6Capitalize more interest into a building project than the loan actually chargedCAPITALIZED_INTEREST_EXCEEDS_INCURRED: capitalization CI-0003 amount 1200.00 is more than the 950.00 of interest incurred in its window (S-079 item 5, TX-196 D4)

The codes in parentheses point to the written spec or the numbered gap behind each rule.

A console can have bugs and still never leave the books wrong. The worst outcome is a refusal that your screen shows to the user.

From the builder's guide, section 2.

How the pieces fit

Four parts, and only one of them talks to the books. The browser never holds a key. Your server calls GAAPcore as one registered application, called a writer, and every row it creates is stamped with that writer.

The console keeps its own database for people, sessions, approvals and the audit trail, under a different login. Neither side can read the other's data.

Where it stands

129
transaction types, each with a written spec
107
schema migrations, each through an independent review
205
tables in one accounting schema
400
API routes in the OpenAPI definition
106
database test suites

As of 2026-11-10, schema v107. Counted from the repository by npm run refresh.

What it covers

US GAAP, for companies that buy, make, stock and sell things. Ten areas, one spec per transaction type. See every transaction type and the known limits.

AreaTypesFor example
Foundations26chart of accounts, journals, period close, opening balances, multi-currency, intercompany
Sales and receivables21orders, invoices, receipts, credits, returns, dunning, credit losses, rebates
Purchasing and payables18receipts, bills, payments, approvals, discounts, purchase tax, rebate accruals
Inventory18FIFO layers, transfers, cycle counts, units, write-downs, intercompany stock
Fixed assets14depreciation, impairment, disposals, held for sale, capitalized interest
Reporting12trial balance, statements, cash flow, notes, consolidation, translation
Production7component issues, finished goods, WIP, labor and overhead, variances
Banking6bank transactions, transfers, reconciliation, foreign-currency accounts
Leases6lessee leases, modifications, terminations, right-of-use impairment
Tax1sales and use tax by jurisdiction and effective date

See it run

The reference console runs the books of Lantern Hill Coffee Roasters, a made-up roaster with a sister café: purchasing, roasting, wholesale and online sales, banking, equipment, leases, the month-end close and consolidation.

A coding agent built it, working only through GAAPcore's API. The builder's guide is what that build taught us.

Watch the full walkthrough

Ask your agent

Point your coding agent at chappellai.us/llms.txt and ask whether GAAPcore fits your app.

Field notes

The first notes are on their way.

All notes · RSS

Request access

The code is in a private repository for now. If you build with coding agents and have a real app where money or goods move, tell me what you're building and I'll add you as a reader.

I read every request myself, and I reply by email.

Request access

If you'd rather have a console built for you, that's possible too.