All insights

Compute & Cost

Building a Cost Model Your CFO Will Accept

· 9 minute read

A CFO will accept a model that separates cash from TCO, labels every assumption, and refuses fake Indian deployment averages. This is that template.

Finance concurrence dies in two ways. The first is a vendor slide with a single TCO number and a 3D pie. The second is an honest engineer who refuses to put any rupee on paper, so the PAO invents one. This template sits between them. It is the sheet we put in front of a finance officer who has signed GFR files for twenty years and has no interest in your token graph.

A cost model a CFO will accept does four dull things. It says whether a line is cash this year or a comparison spread. It names the assumption behind every rate. It keeps sensitivity on a second page so a 2× utilisation error is visible. It refuses to cite a typical Indian government AI deployment that nobody can produce. Everything else is formatting.

Prcept AI will fill this template with you on an on-prem or air-gapped agent. We will not fill it with a national average we do not have. If that is a problem, we are the wrong vendor and you should find that out before sanction, not after.

Two ledgers, one workbook

Ledger A is cash. What hits which budget head in which year: hardware, GeM licences, IndiaAI hours, SI milestone payments, AMC, power if it is billed to this scheme, eval annotators, training of officers. This is the sheet that maps to a sanction and to DFPR competence. If a line cannot name a head, it is not yet a line.

Ledger B is comparison TCO. Here you may spread a capital purchase over a labelled horizon, include a residual-value assumption, and hold a cloud option next to an on-prem option. Write in 14-point type: this is not the accounts. This is a comparison. GFR capital-versus-revenue still governs Ledger A. Ledger B does not rewrite it.

Never net them into one strategic TCO that finance cannot unwind. The officer who must defend the file before a PAC should be able to point at cash this year with a finger. Speeches and sanctions are different documents. Mixing them is how year two gets cut.

The rows that belong on page one

People forget the rows that do not look like AI. Put them on page one anyway. Data cleanup and migration. Gold-set construction. Integration to the MIS you already run. Identity and privileged-access work. CERT-In-resident logging storage. Evaluation labour every time the model or the circular changes. Idle GPU — the hours the node is powered and unused. SI hypercare after go-live, not only the go-live milestone. AMC after warranty. Power and cooling, method in the electricity article. Exit and sanitisation.

Then the rows that look like AI: model hosting, tokens if any, reserved versus on-demand hours, storage of embeddings and traces, a second environment for eval. If a vendor quote has a single platform line, explode it before it enters the model. A lump is not a model. It is a hope that nobody will ask.

Order-of-magnitude is allowed when a live quote does not yet exist. Write order-of-magnitude, source: [method] and a range. Do not write a false precision to look professional. ₹2.4 crore ± 40 percent is more honest than ₹2.37 crore dressed as a measurement.

Template rows — copy into your workbook. Grey cells are labels, not law.
RowLedgerInput you must nameCommon lie
GPU / host capex or rentalA cash; B spreadSKU, qty, GeM/IndiaAI/on-prem, date of quoteList price from a US blog, INR guessed
SI design + integrate + hypercareAMilestones, who owns evals after exitStandard 20 percent with no SOW
Data cleanup + gold setAHours × rate, or a contractor quoteZero, because the demo used clean PDFs
AMC / supportAQuoted percent or rupee, years, what is in scopeGFR-mandated 10 percent (it is not)
Power + demand chargesA if billed here; else BSERC stack, watts, PUE, powered hoursNational average ₹/kWh
Idle capacityB, and a utilisation note in APowered hours minus busy hoursIgnored, because utilisation is AI
Eval / re-eval labourACadence when model or circular changesOne-time training
Tokens / IndiaAI hoursAPortal extract or API tariff, with a ceilingPilot-month × 12 with no tail

Sensitivities the CFO will flip in the room

Build three toggles before the meeting. Utilisation at 15, 40 and 70 percent of powered hours. Token or hour volume at 0.5×, 1× and 3× the pilot. Power at your bill's landed stack and at ±30 percent. If the ranking of on-prem versus rented hours flips inside that band, say so on page one. A model that only works at the vendor's favourite utilisation is a brochure.

Add a kill-case: the pilot fails and you stop. What cash is already sunk, what AMC you can avoid, what residual you can claim, what SI milestone you can not pay. The companion article on the cost of a failed pilot is the narrative. This template is the arithmetic.

Do not put a benefits column in the same sheet as cash unless the benefit is a budget line you will actually stop paying — a specific outsourcing invoice, a specific overtime head. Better citizen experience is a purpose. It is not a rupee. CFOs who have been before a PAC know the difference. So do we.

How we fill it, and what we leave blank

We will quote our software, our on-prem run path, and the SI hours we are actually contracted for. We will help you bound power and idle. We will not invent an AMC percentage as GFR. We will not drop in a peer department spent X unless that department has put a citable public figure on paper — and even then we will treat it as one point, not a distribution.

If your CFO wants a single number for a speech, give them the cash this year and the comparison TCO as two sentences. If they want a single number for the sanction, give them Ledger A.

GST and the unromantic cells

Ask accounts how GST sits on software, on SI, on AMC and on cloud hours. The treatment is not always the same, and input credit is not a story every government entity can tell. A TCO that ignores tax will be 'corrected' in the room by someone who has no interest in your model size. Put the tax assumption in a labelled cell.

Put foreign-currency risk in a labelled cell too if any line is quoted in dollars. You will buy in rupees. A week of INR movement is not a reason to reopen architecture, but it is a reason not to lock a DPR to a blog's dollar list.

Objections you will hear — and what to do with them

These are the lines that stall the file. Answer them in the room, then put the answer in the note. A spoken answer without paper will be forgotten by the next officer.

The vendor already gave us a TCO

Explode it into these rows. If they cannot, they gave you a poster. Posters do not get concurrence.

Finance wants one number

Give them cash-this-year as the sanction number and TCO as the comparison number. One number that is both is how arguments start in year two.

We cannot estimate data cleanup

Then put a range and a trigger: if cleanup exceeds [N] hours, the go-live date moves. A blank cell is worse than a wide cell.

This template is too conservative; we will lose the budget

A budget won on a thin model is the budget that is cut when the first invoice exceeds it. Win a smaller honest number.

A twelve-day workbook

  1. Days 1–3: open Ledger A. Name budget heads and DFPR competence for each cash line you already know.
  2. Days 4–6: explode every vendor lump into rows. Mark each cell live-quote, order-of-magnitude, or missing.
  3. Days 7–9: build Ledger B with a labelled horizon. Add the three utilisation and volume toggles.
  4. Days 10–12: write the kill-case. Sit with finance for one hour. Change the sheet in the room. Print the version they initial.

How this shows up in the file

Subject: Cost model for [agent / cluster] — cash and comparison.

Annex A is cash by year and budget head. Annex B is a comparison TCO with assumptions labelled; it is not a charge in the accounts. No peer-deployment average has been used as a fact. Sensitivities on utilisation, volume and power are in Annex C. A failed-pilot kill-case is in Annex D. Recommendation for sanction is the Annex A total for the current year, [amount], under [heads].

This template is an internal aid, not legal, tax or accounting advice. Cash this year is the only sanction number.

This article is informational field guidance for Indian public institutions, not legal, procurement, tax, accounting, tariff or engineering advice. Confirm against the current Gazette, GFR, GeM term, SERC tariff order, IndiaAI portal rule, CAG mandate, DPDP text, departmental finance manual and your counsel before you file it. Figures are methods and order-of-magnitude illustrations, not a dataset of real deployments and not a substitute for a live quote.

Questions this usually raises

Can we use a standard government TCO circular?
There is no single MeitY circular that we will treat as a universal AI TCO schedule. Use GFR for capital versus revenue, your finance manual for heads, and this method for the comparison. If your ministry has a specific IT costing OM, attach it.
Where do IndiaAI subsidised hours go?
Ledger A, at the rate and quantity on your approval, with a note that subsidy is conditional. Do not net a hoped-for 40 percent before the portal says yes.
Do we include officer time?
In Ledger B, if you must, as a sensitivity, never as cash you will recover. In Ledger A, only if you are actually hiring or paying overtime against this scheme.
How many years should TCO run?
Match the warranty plus the first AMC period, or the contract term, and label it. Three years is a common comparison. It is not a legal horizon.
Will Prcept sign the model?
We will sign the rows that are our quote. We will initial the method. Your finance officer initials the sanction number. Do not ask us to sign your tariff or your grant.
Is this accounting advice?
No. It is a concurrence template. Confirm heads and DFPR against your finance manual and counsel.

Sources