Books
How Ledger, Spend management, Treasury and Tax keep a Startup’s books current every hour, and how they cover the work of accounting software.
A Startup’s books are four Systems over one ledger: Ledger, Spend management, Treasury and Tax. Every money Verb posts its own Entries as it runs, so the books are current every hour.
Posted by the Verb
Accounting software imports what happened and asks a bookkeeper to code it. Here the Verb that moves money declares the Entries it writes, so nothing waits to be coded. A call in the try Mode returns the Entries it would post and stores nothing.
| Verb | Debit | Credit |
|---|---|---|
Bill.approve | expense.operating | liability.payable |
Bill.pay | liability.payable | cash.rail |
Mandate.spend | expense.spend | cash.cards |
Period.recognize | liability.deferred-revenue | revenue.recognized |
Company.submit | liability.sales-tax | cash.rail |
Entry.settle | liability.due-to-sibling | cash.rail |
Each Entry names its Startup and, for an intercompany line, the sibling on the other side. Every Statement and Metric reads the same Entries, so the profit and loss and every Dashboard agree to the cent.
Ledger against accounting software
Ledger does the work a small business buys accounting software for, run by the Finance Lead Agent instead of a bookkeeper.
| Work | Verbs | How it runs |
|---|---|---|
| Chart of accounts | Entry.account | Each Startup Template ships a default chart; every Entry names one account, such as revenue.recognized. |
| Pull bank feeds | Transaction.list | Every rail and linked bank Transaction arrives within the day. |
| Categorize | Transaction.categorize | A Policy codes the known; the Agent codes the rest and opens a review Task below its confidence threshold. |
| Reconcile | Transaction.reconcile | Each Transaction matches the Entries it settles, or opens a Task. |
| Manual journals | Entry.post | Waits for an Approval from a second Role; never dated in a locked Period. |
| Recognize revenue | Period.recognize | Daily, by the revenue-recognition Policy: Subscriptions by elapsed days, Orders on delivery. |
| Receivables | Invoice.bill, Invoice.collect | Billing ages open Invoices at 30, 60 and 90 days and runs collections. |
| Report | Statement.list | Profit and loss, balance sheet and cash flow per Startup, Company or Portfolio. |
| Budget against actuals | Budget.create | One Budget per account and Period, read beside actual Entries. |
| Close and lock | Period.close, Period.lock | The month closes once every Transaction reconciles, then locks. |
| Settle intercompany | Entry.settle | One net transfer per pair of Companies each month. |
| Accountant access | Permission.create | A scoped, expiring Permission on the books. |
| Cost per Action | Cost.list | Every Action posts its Cost, so margin reads per Verb, Offer and Customer. |
The last two rows go past the category. Cost per Action exists because every Action posts its Cost; intercompany settlement exists because one Company holds many Startups.
Spend management against spend platforms
Money goes out three ways: a Bill from an outside Organization, a Card payment, and the receipt that proves it. A Worker spends only under a Mandate and its Limit.
| Work | Verbs | How it runs |
|---|---|---|
| Capture Bills | Bill.create | Bills arrive by email or upload and are coded on arrival. |
| Approve within a Mandate | Bill.approve | Above the Mandate’s Limit, an Approval goes to the Founder. |
| Pay on the due date | Bill.pay | Pays an approved Bill from the Stripe balance or a linked bank. |
| Cards for Workers | Card.issue, Mandate.spend | One Card per Worker and Mandate, issued on Stripe, its controls compiled from the Mandate. |
| Match receipts | Transaction.attach | Receipts sent to a Mailbox match their card Transaction; a missing one opens a Task after 7 days. |
| Budget per account | Budget.create | The same Budgets Ledger reads. |
| Keep vendor records | Organization.create | Each payee is an Organization in the one database. |
Every money Limit reads Startup.spendState before it allows a call, and the latest Forecast sets it. free leaves Limits as set, and tight halves discretionary Limits and the Demand Budget. hold stops one-way spend and opens a Decision.
Treasury against business banking
A Startup’s cash sits in four places: the Stripe payments balance, the card balance, financial accounts for operating and reserve cash, and the Company’s bank. Revenue in the payments balance buys nothing until it moves to the card balance. The Treasurer Agent moves cash on rules, such as two weeks of card spend in cards and the rest in reserve.
| Work | Verbs | How it runs |
|---|---|---|
| See every balance and Transaction | Transaction.list, Transaction.get | Payments, card, reserve and bank balances side by side, each computed from Entries. |
| Move money between accounts | Financial accounts | A move between two places the same owner holds, within the Treasurer’s Limit. |
| Pay out to the bank | Payment rails | Available cash pays out on the connected account’s schedule, daily by default. |
| Forecast runway | Forecast.create | Weekly and after every large money Decision, from Subscriptions, open Invoices, Bills and committed spend. |
The default-alive check writes the Forecast, and the Forecast sets the spend state. Runway is a number that acts, not a report someone reads.
Tax against sales tax software
Each Startup sells as its own seller of record on its own Stripe account, so it collects and remits its own tax. A digital sale to a consumer in the EU or UK is taxable from the first sale. A US state taxes once sales there cross its threshold.
| Work | Verbs | How it runs |
|---|---|---|
| Calculate tax at checkout | Order.place | Stripe Tax computes Order.tax for the buyer’s location and the Offer’s tax category before payment. |
| Register at a threshold | Company.register | Sales total across every Startup the Company holds; a crossing registers the Company and starts collection. |
| Returns | Company.submit | Each return covers locked Periods only, and is paid from the Company’s cash. |
| Information returns | Company.submit | Year-end returns for every Supplier and Partner the Company paid. |
| Exemption certificates | Customer.exempt | A verified certificate zeroes tax on that Customer’s Orders where it applies. |
A registration and an exemption certificate are both Credentials. The tax filing Workflow creates each return as a Task with a due date. A Human signs any return that carries a sworn declaration.
The month
The monthly close runs on the second business day. The Finance Lead Agent reconciles every Transaction, recognizes the last revenue, closes the Period, and locks it. A correction to a locked Period posts to the next open one, so a sent Statement never changes.
Four Controls test the books from these records and keep their Evidence.
| Control | What it makes true |
|---|---|
| Segregation of duties | The seat that creates a payee or a Bill never approves its payment. |
| Reconciliation completeness | A Period locks only when every Transaction in it reconciles. |
| Manual Entry review | An Entry no Verb caused lands only after a second Role approves it. |
| Period sign-off | The Finance Lead signs each locked Period before its Statements leave the Startup. |
Next
- How money moves: one sale on the rail and in the ledger.
- Revenue recognition: which dollars count as revenue, and when.
- Books: the Process that runs the close and tax filing.