From structure to a record you can rely on
We've written before about why AI spend needs structure early: its own GL accounts, a short set of dimensions, a clean vendor master and written posting rules. The subledger is the part that does the day-to-day work. The harder step is designing records that still hold up a year later, across several entities, when someone outside finance starts asking questions.
The anatomy of a useful record
A subledger line for AI vendor spend should be able to answer a question on its own, without someone opening the invoice or asking the engineer who set up the API key. Beyond the amount and its currency, that means each record carries nine things:
- Entity: the legal entity that bears the cost. Reconciliation and consolidation both run per entity, so it can't be left to inference later.
- Vendor, taken from the vendor master rather than typed in, so it's one name everywhere.
- Service period: the month the usage belongs to, not the invoice date. Usage-billed vendors invoice in arrears, so the two rarely match, and the close depends on the first one.
- Billing model: usage-based, seat-based or prepaid commitment. This drives how the line is analysed and forecast, so it belongs on the record, not in someone's head.
- Dimension tags: cost centre, product or project, and environment (R&D versus production). Every line gets all three. "Unassigned" is a valid value you can report on. A blank is not.
- Usage volume and unit, where the vendor provides it: tokens, API calls, compute hours, seats. Without units, a cost increase can't be split between price and consumption.
- Contract reference: a pointer to the agreement, rate card or order form that governs the charge, so price changes and commitments can be traced.
- Source reference: the invoice, card transaction or usage export the line came from.
- GL account: the account the line posts to, set by the posting rules, not chosen line by line.
Each field exists because a specific question fails without it. Without units you can't explain variance. Without the contract reference you can't check the rate. Without the service period, every month carries the previous month's usage. Without environment, the gross margin conversation falls back to estimates.
The tie-out is the control, not a formality
The subledger holds the detail and the GL account holds the control total. Every period, the sum of the subledger lines for an account should equal that account's balance in the ledger. When the two agree, the detail can be trusted as a full explanation of the number. When they don't, the gap is information: a charge coded straight to the GL without a subledger entry, a line posted to the wrong account, or a vendor that never made it into the vendor master.
The first of those is best removed by design. Set the AI spend GL accounts to accept postings from the subledger only, with no manual journals. That is what makes an expense account a true control account, and it turns the tie-out from a monthly hunt into a guarantee.
Month-end accruals follow the same rule. If you accrue AI spend from usage data, as we recommend in our piece on closing AI spend, the accrual and its reversal go through the subledger as estimate lines, flagged as such. Where your system can't lock the account, carry the accrual as a listed reconciling item until the invoice arrives. What doesn't work is a manual accrual journal that sits outside both, because it breaks the tie-out every month.
In reviewing internal processes with clients, what's clear to us is that a difference needs to be resolved, not noted and carried forward. Left alone for a couple of periods, a small unexplained gap becomes a number nobody can explain, and the whole subledger loses credibility, including the lines that were right. The tie-out is what turns visibility into reliability. A dashboard built on detail that ties to the ledger is one finance can defend. One built on detail that roughly agrees is only a picture.
Keep the tie-out mechanical: one reconciliation per AI spend GL account, per entity, with any reconciling items listed and owned. If it takes more than a few minutes, the process has a design problem worth fixing.
Multiple entities, one vocabulary
Once AI spend runs through more than one legal entity, the subledger has a second job: making a consolidated view possible without manual stitching. That depends almost entirely on shared definitions.
The same vendor needs the same vendor master record, or at least the same mapped identifier, in every entity. Dimension values need to mean the same thing everywhere: "production" in one subsidiary can't mean "customer-facing and internal tooling" in another. Where an entity has a genuinely local cost centre, map it to a group-level value rather than letting it sit outside the scheme.
Shared platform contracts need extra care. If one entity pays for a model provider that three entities use, the allocation should be a documented posting rule that creates tagged lines in each entity, with the matching intercompany recharge, not a spreadsheet adjustment made at consolidation. Then the group view is simply the sum of the entity subledgers, filtered by the same dimensions, and the intercompany balances eliminate cleanly.
Governance that stays light
This is what keeps a subledger useful twelve months in, rather than drifting towards the sprawling list of eighty values nobody trusts. Three habits are enough:
- One owner for the dimension list, usually the controller or a named person on their team. Other people can ask for values. Only the owner adds them.
- New values by request, with a reason: what the value is for, who owns its budget, and which group-level value it rolls up to. That takes a short message, not a form.
- A quarterly drift check: values with no activity, values with suspiciously similar names, and lines sitting in "unassigned" for too long. Merge, retire or reassign, and record what changed so history stays interpretable.
What this looks like in practice
Picture a company with three entities and a dozen AI vendors. When the board asks what AI costs per product line, finance filters the consolidated subledger by product and environment and gives an answer that ties to the ledger, without rebuilding anything. When auditors ask for support behind the AI spend accounts, each line already carries its source, contract and coding, so the trail exists instead of being reconstructed.
You can build this in a spreadsheet with discipline, or use tooling — like VP Spend — designed for it. Either way, the design is what does the work: complete records, a tie-out that always closes, one vocabulary across entities and a named owner keeping it clean.