# Accruing LLM spend you have incurred but not been billed for > Finance closes on the 30th and the provider invoice lands later. Accruing from last month under-booked a modelled growing service by 28.6%. URL: https://getculpa.com/llm-cost-accrual Last reviewed: 2026-08-05 Rates effective: 2026-07-02 ## Answer LLM cost accrual is booking model spend in the month it was incurred, before the provider invoice arrives. Accruing from last month's total under-books any service still growing. Culpa, a local-first LLM cost, margin, and forecast ledger, prices every call as it happens, so the month's figure exists on the last day of the month rather than a week later. ## Why this happens Accounting wants cost recognised in the period it was incurred, and providers invoice after the period ends. That gap is ordinary and every finance team handles it with an accrual. What makes LLM spend awkward is that the usual accrual basis, last month's actual, assumes the thing is roughly flat, and a growing AI product is the least flat line on the ledger. So the accrual is wrong by roughly the growth rate, every month, in the same direction, and it corrects as a prior-period adjustment that makes the following month look worse than it was. Run that for a few quarters and gross margin is understated during growth and overstated during a slowdown, which is precisely backwards from what anyone reading the numbers needs. The fix isn't a better estimate. It's to stop estimating: if every call was priced when it happened, the month's cost is a sum on the 30th and the invoice becomes a reconciliation rather than a revelation. ## What this usually looks like - You accrue AI spend from last month's invoice because nothing else is available. - Every month opens with a prior-period adjustment for the last one. - Gross margin gets restated after the provider invoice lands. - Nobody can give finance a cost figure until the invoice arrives. - Your accrual has been under by a similar percentage several months running. ## Common mistakes - Accruing from last month's invoice total. Why it hurts: It assumes flat usage, so a growing service is under-accrued by roughly its growth rate every month. Do instead: Accrue from calls actually made in the period, priced when they were made. - Treating the provider invoice as the source of truth for the period. Why it hurts: It arrives after the close and covers a billing window that may not match your month. Do instead: Close on your own priced ledger and reconcile the invoice against it afterwards. - Ignoring a dated price change inside the accrual period. Why it hurts: A rate that rises mid-month makes an average of the month wrong for both halves of it. Do instead: Price each call at the rate in effect on its own date, which a versioned book does by default. - Booking all model spend as one line. Why it hurts: It closes the month without telling anyone which product or customer the cost belongs to. Do instead: Carry the same attribution into the accrual that you use for margin. ## Self-check - Find the last three months' accruals and the invoices that settled them, and size the gaps. - Check whether the gaps run in the same direction, which tells you the cause is bias rather than noise. - Ask whether you could produce a cost figure for this month on its last day. - Check whether your provider's billing period actually matches your accounting month. ## A growing month, accrued from a flat one (illustrative) A modelled service on Claude Haiku 4.5 at real rates of $1.00 and $5.00 per million from the price book effective 2026-07-02. March runs 8,000M input and 900M output tokens. April grows to 11,000M and 1,300M. Finance closes April on the 30th and accrues at March's actual, because that's the only figure it has. Token volumes are modelled. March actual: 8,000M x $1.00/M + 900M x $5.00/M = $8,000 + $4,500 = $12,500 April actual: 11,000M x $1.00/M + 1,300M x $5.00/M = $11,000 + $6,500 = $17,500 April accrued at March's actual: $12,500 under-accrual: $17,500 - $12,500 = $5,000 as a share of April's real cost: $5,000 / $17,500 = 28.6% April closes $5,000 light, which is 28.6% of what it actually cost, and the correction lands in May as somebody else's problem. Nothing here is an estimating failure. The figure existed on the 30th of April, in the call log, unpriced. ## Cost figures Every figure carries its confidence and its source. No figure on this page is provider-reported. - $5,000, or 28.6%, modelled under-accrual from booking a growing month at last month's actual [calculated] Source: March at 8,000M input and 900M output on Claude Haiku 4.5 at real rates of $1.00 and $5.00 per million from the price book effective 2026-07-02 is $8,000 + $4,500 = $12,500. April at 11,000M and 1,300M is $11,000 + $6,500 = $17,500. Accruing April at March's actual leaves $5,000 unbooked, which is 28.6% of $17,500. Token volumes are modelled. ## FAQ Q: How do you accrue LLM costs before the invoice? A: Price the calls you made in the period at the rates in effect on the dates you made them, and sum. That's an accrual built from your own records rather than an estimate from last month, and it's available on the last day of the period rather than a week into the next one. Q: Why does accruing from last month under-book a growing service? A: Because it assumes usage was flat. In the modelled example March cost $12,500 and April cost $17,500, so accruing April at March's actual left it $5,000 light, which is 28.6% of the real figure. The bias runs the same direction every month while growth continues. Q: What happens when a price change lands mid-period? A: Averaging the month gets both halves wrong. Each call has to be priced at the rate in effect on its own date, which is what a price book versioned by effective date does without anyone having to remember. Claude Sonnet 5's introductory pricing ending on 2026-09-01 is the near example. Q: Should the accrual be split by product or customer? A: If your margin reporting is, yes, otherwise the two never reconcile. The attribution is already on the call if you recorded it there, so carrying it into the accrual costs nothing extra and saves the argument about why cost of goods sold doesn't match the product P and L. ## Sources - Anthropic pricing: https://platform.claude.com/docs/en/docs/about-claude/pricing Run the free Cost Leak Scan: https://app.getculpa.com/scan?source=pseo&slug=llm-cost-accrual&cluster=problem Machine-readable index of every guide: https://getculpa.com/api/pages Human-readable index of every guide: https://getculpa.com/guides Site overview: https://app.getculpa.com/llms.txt Privacy: Culpa runs on your infrastructure. Your prompts and responses never leave it. Culpa counts calls to run your plan, and it fails open, so if it ever breaks your app keeps running.