:

August 20, 2026

Palantir Built an Ontology for Operations. Accounting Was Born With One.

Erik Yao
Contributor
at
T:0

Key Takeaways

  • A general ledger stores conclusions and discards the connections between them, which is why AI pointed at a flat GL produces fluent guesses rather than answers.
  • Accounting didn't need an ontology invented for it — double-entry bookkeeping has been one since 1494, standard across every ERP, and unlike an operations ontology its links are provable rather than asserted.
  • T:0 keeps the links as data, so every number resolves to a path back to the business event that caused it, and an agent's claims can be checked instead of trusted.

How T:0 turned the general ledger into a connected accounting map, and why that's what makes AI in finance actually trustworthy.

Palantir's marketing team pulled off something rare: they made a data model famous. “Ontology,” a word that used to live in philosophy departments and database textbooks, is now something CEOs say on earnings calls. And if you watch any of their demos, the pitch is always the same. AI doesn't fail because the models are weak. AI fails because it has nothing solid to stand on. So before you let AI anywhere near a decision, you build a digital twin of the organization: the objects that exist, the links between them, the actions that change them. Then you let the AI operate on the model instead of a swamp of disconnected tables.

They're right. We build T:0, an AI-native accounting platform, and we've spent years inside the exact mess that pitch describes. Along the way we arrived at a conclusion that we think matters more than any product announcement in our space:

The domain best suited to this idea isn't logistics, or defense, or manufacturing. It's accounting. And unlike every other domain, accounting doesn't need anyone to invent its ontology. It was born with one, five hundred years ago. Most software just ignores it.

This post is about what happens when you stop ignoring it.

Fig 1. The same economic activity, twice: balanced conclusions on the left, the connected accounting map on the right. One revenue thread is shown; the map covers the entire GL: bills, payroll, cards, transfers, equity.

The problem: your general ledger is a list of conclusions

Open any general ledger and what you'll find is rows. Date, account, debit, credit, memo. Millions of them.

Every one of those rows is a conclusion. The end of a story. Here's one. On March 14th, a customer signs a $4,120 annual subscription and an invoice goes out. The payment lands at the processor on the 18th. On the 21st, the processor batches it into a payout with forty other payments, takes $123.60 in fees, and $3,996.40 arrives in the bank. One business event became seven ledger rows, spread across three weeks and five accounts: receivables, deferred revenue, a clearing account, a fee expense, the bank. The same thing happens to every dollar moving the other direction, from the corporate card sweep to the payroll run funded out of two accounts. Every transaction in a business writes a story like this. The ledger keeps the last sentence of each one.

The rest of the story lives everywhere except the ledger: in the payment processor, the billing system, the bank feed, the data warehouse. That's why the monthly close exists. It's a team of humans reconstructing stories from conclusions. It's also why audits hurt: they're a second team reconstructing the same stories, with higher stakes and less context.

Now point an AI at that ledger and ask it the kind of question a CFO actually cares about: why did deferred revenue move this month?

We've run this exact test. Export a general ledger, hand it to a frontier model, ask that question three times. You get three confident, well-written, mutually incompatible answers. Not because the model is weak, but because the answer isn't in the data. The ledger recorded the conclusions and threw away the connections. Asking AI to explain a flat GL is like asking someone to reconstruct a movie's plot from the closing credits. You'll get something fluent, grammatical, and plausible. You'll get a guess.

The industry's answer: faster bookkeepers

The last two years produced a wave of AI accounting products, and the engineering behind them is real. Agents embedded in the ledger. Reconciliations that took days now done in minutes. Flux narratives drafted automatically. “Close in hours, not weeks.” Ninety-something percent of manual work automated.

Our honest reaction: so what?

Every one of these products accepts the ledger as it is, a flat list of conclusions plus a pile of source systems that don't talk to each other, and puts a very fast agent on top. The agent does the archaeology faster. It matches faster, drafts faster, closes faster. What it doesn't do is change what's knowable. If the data model can't answer “why,” no agent sitting on it can either. It can only guess more fluently. And a fluent guess is precisely the thing a CFO, an auditor, or a board can never accept.

A faster bookkeeper is still a bookkeeper. The ceiling isn't the model. The ceiling is the substrate.

Which brings us back to Palantir, because fixing the substrate is exactly what they got famous for.

What Palantir actually figured out

Strip away the mystique and the ontology idea is simple. Three primitives:

  • Objects. The nouns of the business. An aircraft, a shipment, a purchase order. Not rows in a table; typed entities with properties and lifecycles.
  • Links. How the nouns relate. This shipment fulfills that order. This part belongs to that aircraft.
  • Actions. The governed verbs. The defined, auditable operations that are allowed to change the world.

The insight that made Palantir a hundred-billion-dollar company is what this does for AI. A model reasoning over typed objects and real relationships gives you answers grounded in the world. A model reasoning over raw tables gives you plausible text. The moat was never the model; models are becoming commodities. The moat is the semantic layer the model stands on.

But notice the hard part of their business: every customer's world is different. An aircraft is not a shipment is not a patient. Palantir deploys engineers to model each organization from scratch, because in operations the ontology is bespoke. It's a choice someone has to make, customer by customer, object by object.

Keep that in mind. It's about to matter.

Accounting was born with an ontology

In 1494, Luca Pacioli wrote down the bookkeeping system Venetian merchants were already using, and what he published is, in modern terms, a schema. Every economic event gets recorded as typed entries. Debits and credits must balance. Entries link to the events they settle and chain from transaction to transaction. Double-entry bookkeeping is more than a recording convention. It's an ontology, and it may be the oldest one still in production.

Unlike Palantir's customers, accounting's ontology is also standard. We surveyed the object models of seven major ERPs, QuickBooks through SAP, and the same thirty-odd objects appear in every one: invoice, credit memo, payment, refund, prepayment, bill, payout, payroll run. The vendors didn't copy each other. The objects mirror the actual events of commerce, and commerce looks the same everywhere. The nouns were settled centuries ago.

And one property separates accounting from every domain Palantir has ever modeled:

In accounting, the links are provable.

In an operations ontology, “this shipment relates to that supplier” is a modeling decision: useful, but asserted. In accounting, a refund provably belongs to a payment. A payment provably settles a specific invoice. The whole graph has to satisfy the rule that debits equal credits, everywhere, always. That's a built-in integrity check on the entire structure, invented five hundred years before anyone called it data validation. Other domains construct their ontology and hope it's right. Accounting's comes with a proof system attached. For AI, that difference is everything. On an asserted ontology, you have to trust that the model's grounding is sound. On a proven one, you can check.

All of which makes the state of accounting software strange. The ontology is sitting right there, old and standard and mathematically verifiable, and no system is actually built on it. ERPs store the objects, then flatten the links away at posting time. The journal entry is where the story goes to die.

So we built the system the other way around.

What we built: the connected accounting map

T:0 starts from a single premise: keep the story. Every number in a financial statement should be the end of a path you can walk backward, through every object and every link, all the way to the business event that started it. We call the result the connected accounting map.

One thing to be clear about before the architecture talk starts: this isn't a proposal. The map runs in production today, generating billions of accounting records a year for finance teams at companies like Reddit, GoodRx, Vimeo, and MasterClass. Here's its anatomy, in the three parts you now recognize.

The objects

Every economic event that enters T:0 becomes an object the system actually understands: an invoice, a payment, a refund, a payout, a bill, a payroll run, a bank transaction. The same shape no matter which source system it came from. Not a row with a memo field, but a record that knows what it is, who it involves, and where it sits in its own lifecycle.

This sounds obvious and is brutally hard, because while the ontology is standard, the data isn't. Our favorite example is the word “deposit.” QuickBooks uses it for a batch of customer payments on their way to the bank. NetSuite uses it for money a customer paid before you've even invoiced them. Your bank uses it for any cash that shows up at all. One word, three unrelated events, three different journal entries. T:0 resolves each system's dialect into the shared model: the first becomes a batch of customer payments, the second a prepayment waiting for its invoice, the third a bank transaction waiting to be confirmed. Tedious? Completely. But every link in the map depends on the objects at both ends being the right type. Misread “deposit” and the graph connects a customer's prepayment to someone else's bank line, and every conclusion downstream of that link is quietly wrong. This is also why a map can't be bolted onto existing systems after the fact, and why the agents-on-top crowd hasn't built one: the work has to happen at ingestion, one source system at a time, before any AI shows up.

The links

Every object carries its relationships as data. This payment settles that invoice. This payout sweeps those forty-one payments, minus those forty-one fees. This refund reverses that specific charge, which recognized against that specific contract. And identically on the other side of the ledger: this bill payment clears that vendor bill, this transfer funds that payroll run, this bank transaction confirms the whole thing landed.

Remember the March subscription? In T:0 it isn't seven disconnected rows anymore. It's a path: contract to invoice to payment to payout to bank transaction, with the $123.60 fee hanging exactly where it belongs and every journal entry still attached to the object that produced it. Every money journey in the business works the same way, order to cash, bill to payment, payroll to funding: traversable, in both directions, by humans and by machines.

Fig 2. The same shape on both sides of the ledger, and it repeats for payroll, card sweeps, reimbursements, and internal transfers. Start from any number in a financial statement and walk backward.

And because this is accounting, we hold the links to accounting's standard: a link exists only when it can be proven. When it can't (a payout that doesn't sum, a payment with no matching invoice) the map doesn't guess. It records the gap and raises its hand. That discipline is what separates an AI that says “I don't know, and here's exactly what's missing” from one that hallucinates a match. In this domain, an honest gap is worth infinitely more than a plausible connection.

The actions

Objects and links describe the world. Posting rules change it. Every journal entry in T:0 comes from a rule: when this kind of object shows up in this condition, look at what it's linked to, and book this entry. No judgment calls at posting time, no “usually.” Same events in, same books out, every single time. To be clear, that doesn't mean accounting judgment goes away. It means judgment moves to where it belongs: made once, deliberately, by a human, and encoded as a rule everyone can read, instead of re-exercised invisibly on a thousand transactions a month. How AI changes the judgment itself is a big enough topic that we'll give it its own post.

This is where AI enters, and just as important, where it stops. The boundary is a read/write split. On the read side, T:0's AI has the run of the map: answering questions, drafting reports, investigating anomalies, explaining variances, always grounded in paths it can cite. On the write side, one rule is absolute: the AI designs, it never executes. It can propose a posting rule, suggest how a new vendor's spend should be categorized, draft the workflow that implements a policy. But every proposal becomes real the same way: reviewed, encoded as a rule, and handed to the deterministic engine, which does exactly what the rule says. Nothing more, nothing probabilistic, nothing creative. The AI generates proposals, not numbers. The numbers come from arithmetic.

If you've followed the Palantir story, you'll recognize the shape: semantic layer underneath, governed actions on top, AI operating on a model of the world rather than raw data. The difference is that our world happens to be the one domain where the model's links are mathematical facts.

Fig 3. Objects, links, actions: the same three primitives. Accounting's ontology is standard, and its edges are mathematical facts rather than modeling choices.

What agents can do on a map

This is the part we actually want to talk about, because it's where “AI in accounting” stops meaning faster and starts meaning different. An agent on a list can accelerate yesterday's workflow. An agent on a map can do work the workflow never allowed, and it can do that work unsupervised, because everything it claims can be checked against the graph it walked. That's the whole trade: the map constrains the agent, and the constraint is what makes it safe to hand the agent real responsibility. Four of the five below are how T:0's AI works today. The fifth is where it goes next.

“Why” becomes a query, not an essay. Today's AI flux analysis is narrative guessing: a model looking at two balances and writing a story about the difference. Ask T:0 why deferred revenue moved and it doesn't write a story. It walks the edges. These 214 contracts recognized on schedule, these 12 were modified, these 3 refunds reversed prior recognition. Here they are. Same on the spend side: “why did cloud costs jump 40%?” resolves to the actual vendor bills and card transactions behind the line, not a plausible paragraph about them. The AI isn't correlating. It's tracing chains that exist as data, and every claim arrives with its evidence attached, because the evidence is the path it walked.

Reconciliation stops being matching. Bank reconciliation exists because the ledger and the bank are two strangers describing the same events, and someone has to introduce them. That's why “90% faster bank rec” is the current wave's favorite stat. In T:0, the introduction already happened. A payout, a bill payment, a payroll funding: each is a node that predicts a bank line, down to the amount, the account, and the window. The March payout said $3,996.40 would hit the bank before the bank did. The bank feed doesn't get matched. It gets confirmed against expectations the graph already holds. What's left over isn't a pile of maybes for an agent to triage. It's a short list of genuine exceptions, and the agent investigates each one with the whole story in hand: which link failed, what the graph expected, what actually arrived. Matching faster is a feature. Not needing to match is an architecture.

Audit stops being sampling. Auditors sample transactions for one reason: tracing any single number to its origin is so expensive that checking all of them is unthinkable. Every number in T:0 carries its lineage, so verification becomes a traversal, and traversals are exactly what agents are good at. Any deposit on the bank statement resolves to the payments inside it, and each of those to its invoice and its contract. Instead of a human pulling 60 samples and extrapolating, an agent walks the entire graph continuously, all year, and reports what it finds with the paths attached. The audit stops being an annual excavation and becomes a property the system maintains.

The close stops being an event. Month-end exists because disconnected systems drift apart and must be periodically forced back into agreement. That's all it is: an artifact of disconnection. A ledger whose links are maintained continuously is, in a meaningful sense, always closed, and the close becomes a checkpoint you confirm rather than a project you survive. This one isn't theoretical either. Finance teams on the map have cut close times by 90%, and one took a six-day close to three. The market brags about closing in days instead of weeks. The actual endgame is that “the close” stops being a noun.

The ledger learns to run scenarios. This is the fifth capability, the one still ahead of us, and the one we find most exciting. A connected map records the world that happened, and it can also branch. Ask the AI a what-if and instead of speculating, it forks the real event history, applies the different revenue policy or contract structure or pricing model, and lets the deterministic engine replay the world on the branch. Then it hands you the diff between the two worlds. What do the books look like under the new contract terms, computed on our actual transactions rather than modeled in a spreadsheet? Accounting has always been the discipline of recording the past. A map that can branch turns it into an instrument for rehearsing the future, with the same auditable rigor as the books themselves.

Notice that every one of these is an AI capability, and none of them is a model capability. The models are the same ones everyone else has. What's different is what we gave them to stand on. Put the smartest agent in the world on a flat ledger and it guesses. Put it on the map and it knows.

The hard lessons

Three things we learned building this, for anyone thinking seriously about AI in finance:

  1. The ontology is standard. The data is chaos. We expected the hard problem to be the AI. It wasn't. It was normalization. Seven ERPs, a dozen payment platforms, and every one of them shapes the same five-hundred-year-old objects differently. The unglamorous work of turning “deposit means three things” into one clean object model is the foundation everything else stands on. There is no shortcut, and every skipped edge case comes back as someone's reconciliation break.
  2. In finance, a probabilistic link is worse than no link. The broader AI industry runs happily on 95% confidence: fine for recommendations, fatal for audit. A link that's probably right will eventually be wrong inside someone's revenue number, and one such discovery destroys trust in every other link in the system. The discipline that saved us: links are proven or they're absent, and absences are loudly visible. Trust compounds the same way interest does. A single default wipes out years of it.
  3. AI earns trust by showing its path, not its reasoning. No controller, auditor, or board will ever trust an AI because its explanation sounds rigorous. They trust evidence. The only AI conclusions that survive contact with an audit are ones that resolve to a path through the map: these objects, these links, this rule, this entry. Build the substrate that makes every answer traceable, and trust stops being a leap of faith and becomes an inspection.

Closing thoughts

The industry is racing to put smarter agents on top of the same old ledger. We think the race is backwards. A model gets you fluency. A map gets you truth. In accounting, truth is the entire product.

Palantir proved that organizations will rebuild their data around an ontology to make AI trustworthy, and they had to construct that ontology by hand, customer by customer. Accounting never needed the construction crew. Its ontology has been in plain sight since 1494, standard across every business on earth, proof system included. It has simply been waiting for software to take it seriously.

T:0 is that software. Not a smarter bookkeeper: a ledger where every number still knows its own story, and an AI that can finally read it.

Palantir showed operations what an ontology is worth. We're showing finance.