A key hash is not a person
Every gateway in this category records essentially the same skeleton — a
timestamp, a model, input and output tokens, a computed cost, a latency, a
status — and then differs on the one field that matters for attribution: who
made the call. LiteLLM has the deepest native model, rolling spend up through a
key hash, a user, a team and an organisation at once, with budgets enforceable
at each level. Kong labels its metrics with a Consumer, and since AI Gateway 2.0
can key on an authenticated organisational principal instead, additively and off
by default. Portkey resolves identity from arbitrary metadata strings, though
making that tagging mandatory is an enterprise-tier feature. Cloudflare has no
identity concept at all: attribution exists if, and only if, the caller
remembered to send a cf-aig-metadata header.
All of those are real identities of something. None of them is a person in your
HR system, and none of them knows what a department is. The join from one to the
other is left to you, and it is not really a join — it is a reconciliation, and
reconciliations decay.
Three things break them. Keys rotate, and the new key has no memory of the old
one’s owner. People move between teams, and the spreadsheet that mapped team to
cost centre was accurate on the day it was written. People leave, and their key
either keeps serving traffic under a name nobody recognises or is revoked along
with the history that explained six months of the invoice.
Then there is the second problem, which is the one that actually takes the
engineering. Chat, IDE and gateway traffic each arrive through a different admin
API with a different idea of identity and a different window. Cursor’s Admin API
returns individual email addresses with no way to group them by team or
department at all, and gives 90 days where its Analytics surface gives 30.
GitHub’s usage metrics run on a 100-day window, and the older Copilot metrics
endpoints closed on 2 April 2026, taking their year-on-year comparisons with
them. Anthropic’s Enterprise Analytics API holds nothing dated before 1 January
2026. Azure API Management’s token-metric policy
caps you at five custom dimensions, which is a constraint on your attribution
schema whether or not anyone noticed when it was configured.
Ledger’s position is that the union is only honest if it is bounded explicitly.
Every figure carries the tightest upstream window among the sources that fed it.
A twelve-month cost-centre chart built partly on a 30-day API is labelled as
such on its face, rather than fading out into a flat line that looks like a
quiet quarter. This costs us the good-looking dashboard, and it is the whole
point.
Against that, Ledger holds the organisation as a dated graph rather than a
current one. Every row is resolved against the org chart as it stood at the
request timestamp, so a reorganisation in March does not rewrite January, and a
leaver’s spend stays in the quarter and the team that incurred it. Rotated keys
carry lineage forward: the replacement inherits the subject of the key it
replaced, and the inheritance is recorded as a dated fact rather than applied
silently.
Everything above is inspectable. Any figure Ledger shows can be asked why: which
source supplied it, which graph edge resolved it, which mapping was in force on
that date, and what window bounds it. An agent calling through MCP gets the same
derivation the dashboard does, which is the only way a number survives being
quoted twice.
The number nobody publishes
Open any spend dashboard in this category and it will be confidently populated.
It will show a total, a breakdown by model, a trend line and a top-ten list.
What none of the dashboards we reviewed shows is the share of that spend it
could not place against a human.
The causes are not exotic. A shared service account collapses many people into
one identity. A CI pipeline runs on a key that belongs to nobody. An agent calls
under its own credentials. A request arrives at Cloudflare without the metadata
header, and the gateway is perfectly happy to serve it. A key hash resolves to
an employee who left in April. Cursor’s spendCents field includes the
subscription amount, so naive overage arithmetic on top of it is wrong. GitHub
counts only those users whose IDE telemetry actually reached GitHub, which makes
it a sample rather than a census, and nothing in the response says so.
Individually, each of these is a known footnote. Together, and left alone, they
are the mechanism by which attribution decays into decoration. The dashboard
stays populated. The trend line stays smooth. The numbers quietly stop meaning
what the finance deck says they mean, and because nothing reports the decay,
there is no moment at which anybody notices.
Ledger treats the unattributed share as a first-class figure. It appears beside
the total, in the same view and the same API response, broken down by cause,
with the specific change that would reduce each one: this key needs an owner,
this pipeline needs its own cost centre, this integration needs to start sending
a metadata header, this chain needs initiator propagation turned on at the hop
where it is currently lost.
The first month is usually uncomfortable. We are not going to put a figure on
how uncomfortable, because the honest range across organisations is wide and
anybody quoting you a single number for it is selling a benchmark they invented.
What we will say is that the figure falls quickly once it is visible, for the
obvious reason that nobody can fix an error nobody has named.
There is one thing Ledger will not do with it, and it is the obvious thing. It
will not divide unattributed spend across headcount to make the total add up.
Apportionment is not attribution. A number produced that way is
indistinguishable from a measured one by the time it reaches a slide, and it is
the easiest way for a well-run FinOps practice to end up defending a figure it
cannot source.
One prompt, four hundred calls
Someone types one sentence. The agent plans, calls a model, calls six MCP tools,
each of which calls a model, retries two of them, summarises, calls again. Four
hundred requests across three providers in ninety seconds, from one keystroke by
one person.
What your gateway sees is four hundred rows on one key. What your metering sees
depends on the shape of your contract, and the shapes are unkind here. Kong
meters per model and per service, so a single prompt that fans out across many
internal calls is counted as many billable things. Langfuse’s unit is traces
plus observations plus scores, which means a deep agent burns units far faster
than the request count suggests. The economics of agent work run ahead of the
intuition everybody built on chat completions.
What nobody in the category does is put that spend back on the person. Kong and
TrueFoundry meter MCP tool calls as first-class requests; Anthropic reports tool
acceptance and rejection counts; Langfuse models tool calls as spans inside a
trace. All useful, and none of them reconstructs the chain back to an initiator
and bills it there.
Ledger does that reconstruction from the trace tree you already emit. Where your
stack can propagate an initiator claim through the hop, the attribution is
exact, and Ledger says so. Where it cannot — a provider that drops unknown
headers, an MCP server that starts a fresh context, a queue in the middle — the
reconstruction is inference from span parentage, timing and key identity, and
Ledger marks that hop inferred rather than promoting it to a fact. Some chains
break entirely, and those land in the unattributed pile with the break point
named, which is generally enough to tell your platform team exactly where the
header needs to go.
Human-initiated and agent-initiated are two separate fields, not one actor field
with two possible values. This sounds like a modelling nicety and it is not. Two
teams with identical monthly spend, one at 90% typed and one at 90%
agent-initiated, are running different operations with different failure modes,
different review burdens and different answers to the question of what happens
if you double the budget. Collapsing both into requests-by-user throws away the
only distinction that would have told you.
The same reconstruction answers a question your security review will ask before
finance does: which tools a chain touched, in what order, on whose behalf. That
is the shape of the traffic, not its content — Ledger has no more idea what the
prompt said than your invoice does.
Works-council mode, and why a German deployment is a different product
In Germany, §87(1) Nr. 6 BetrVG gives the works council co-determination over
technical devices that are capable of monitoring performance or conduct.
Capability is the test; intent is not required, and a stated policy of not
looking does not help. A council can seek an interim injunction, and measures
introduced without involving them are invalid rather than merely contested.
Our own standing under that test is worse than anything else in this suite, and
it is better read here than discovered in a council session. Ledger attributes
cost to a named individual. That is monitoring of performance and conduct by
construction, whatever the reporting mode sitting above it, which makes this the
most clear-cut §87(1) Nr. 6 case in our whole catalogue — more clear-cut than
the products that describe themselves as monitoring. There is an argument that
Ledger counts the people whose agents generate spend rather than counting seats.
That is a good argument about licensing. It is not a co-determination argument,
it will not survive a council reading, and we do not make it. Austria is the
binding constraint rather than Germany: under §96(1) Nr. 3 ArbVG consent cannot
be substituted by a conciliation board, an arbitration panel or a court, so a
council that refuses ends the Austrian deployment and no amount of contract
drafting reopens it.
The line is sharper than most vendors admit. The Hamburg labour court’s January
2024 ChatGPT decision held that the deployment as configured was not
co-determined, because that configuration was not suitable for collecting
performance or conduct data. Company-account telemetry sits on the
other side of that reasoning by construction. Your gateway is already the
technical device; Ledger joining its rows to an org chart is the part your
council will want to read carefully, and they are right to.
France offers the other lesson. The Nanterre court, in an interim order, found
that a company had deployed AI tooling in a pilot phase before CSE consultation
had concluded, suspended the implementation until it had, and awarded damages to
the CSE. The failure there was sequencing, not technology, and sequencing is the
part a vendor can actually help with.
What makes this worth building is that the controls are table stakes one product
category over and effectively absent in this one. Microsoft’s Copilot dashboard
hides results below a configurable minimum group size, defaulting to ten and
lowerable to five, with advanced analysis refusing to report under five at all.
GitHub’s legacy team endpoint enforced a genuine five-seat floor, although that
protection has since narrowed: the floor now excludes small teams from the
team-level report while their members remain individually visible in the
per-user usage report. Worklytics runs a pseudonymisation proxy between source
systems and its platform as a matter of architecture. Of the gateways we checked
— LiteLLM, Kong, Portkey, Cloudflare — none ships any of it; they default to raw
per-user rows.
Ledger’s works-council mode is a deployment setting, chosen at install and
recorded in the works agreement, not a toggle available to whoever is logged in.
In that mode the system is aggregate-first: a configurable k-anonymity floor
below which no cut is returned, suppression that also refuses queries whose
answer could be reconstructed by subtracting two permitted aggregates, and
pseudonymisation applied at ingest rather than at display. Re-identification
exists, because occasionally it must, and it is a named two-person break-glass
action that is logged, timestamped and reportable to the council as a list.
German works agreements for AI tooling typically carry an Auswertungsverbot — an
explicit ban on using the data for performance or conduct evaluation, with any
exception requiring case-by-case council consent. Most products can only promise
to honour such a clause. Ledger’s refusal to build a ranking is what makes the
clause enforceable in architecture rather than in good faith: there is no
endpoint to call, so there is nothing to misuse and nothing to audit for misuse.
Three dates belong on the same calendar as the council sessions, and one of
them has moved since most vendor material in this category was written. Ledger
is not an Article 5 problem: the Article 5(1)(f) prohibition covers systems
designed to determine a person’s emotional state in the workplace, and cost
attribution infers spend, not feeling. Article 5 sits
in the top penalty tier — EUR 35,000,000 or 7% of worldwide annual turnover,
whichever is higher, so above roughly half a billion of turnover the percentage
limb binds and the EUR 35 million figure understates what is at stake. We are
not going to borrow the weight of a tier that does not reach us. Where Ledger
does sit, once its outputs feed personnel decisions, is Annex III point 4,
employment and worker management, as a high-risk system. Those obligations fell
due on 2 August 2026 and were deferred to 2 December 2027 for standalone systems
and 2 August 2028 for systems embedded in products, by Regulation (EU) 2026/1744,
adopted on 8 July 2026. Nothing else moved: the Article 5 prohibitions have
applied since 2 February 2025 with penalties enforceable from 2 August 2025, and
the Article 50 content-marking duty applied from 2 August 2026, with a
four-month transition for systems already placed on the market. A deferral is not
a reprieve. It is sixteen further months in which your auditor expects the work
to have been done, and one provision has an immediate consequence for sequencing
whatever the deadline does: Article 26(7) requires worker representatives to be
informed before the system goes into service, alongside the national processes
above rather than in place of any of them.
One further date belongs on the calendar even if your staff are not platform
workers. Directive (EU) 2024/2831 applies from 2 December 2026 and bars
automated monitoring systems from processing a worker’s emotional or
psychological state, their private conversations, and data collected while they
are not working or offering to work. Almost no member state has it in national
force yet, which makes it a planning horizon rather than a live duty, and we
would rather say that than sell you a deadline. Ledger records the timestamp on
a cost record because cost records have timestamps. It does not derive a
working-hours profile from them, and it is not the component of this suite that
would.
What you can and cannot measure about a person who directs agents
The measurement problem here is not that the data is missing. It is that the
obvious metrics have been tested and do not hold up. Faros AI, across more than
10,000 developers, found pull requests merged up 98% while team-level DORA
metrics showed no improvement at all. Its 2026 report, covering 22,000
developers and 4,000 teams, found median pull request review time up 441% under
high AI adoption. DX found a 65% average rise in AI tool usage producing just
under 8% more median throughput.
Read together, those say something quite specific: output volume rose, flow did
not, and a large part of the cost landed on review. Somebody who directs agents
produces more artefacts and more reading for everyone around them. Measured on
volume they look extraordinary; measured on delivered outcome they look
unchanged; measured on the load they create for colleagues they do not appear at
all. All three of those readings come from the same person in the same month.
The raw counting is unreliable before any of that. Cursor’s totalLinesAdded
mixes manual edits, tab completions and agent output in one field, and misses
code copied out of a suggestion rather than accepted through the IDE flow.
GitHub’s counts depend on IDE telemetry reaching GitHub. These are serviceable
numbers for capacity planning and poor numbers for judging a person, and the
second use is the one they get put to.
What Ledger reports instead is supervisory load: directed calls, review passes,
and chains rejected and re-run, as counts, at team level by default. It is a
workload measure, in the same family as meeting hours or on-call pages. It tells
you whether a team’s week has shifted from producing to checking, which is the
change the review-time figures are describing, and which no seat-count dashboard
can see.
What Ledger will not do is rank people on it. The precedent in this market is
not encouraging: Anthropic’s native dashboard ships a user-level leaderboard of
who accepted the most lines of code in a month — documented on its Enterprise
Analytics page as of September 2026 — which is a performance artefact by
construction. Microsoft’s Copilot Readiness Report states that it “isn’t
intended to be used to evaluate employee performance” — and then offers CSV
export, which makes the protection a policy rather than a control. Our version
is a control: the ranking endpoint does not exist, in any tier, under any
licence.
Cadence Signal, elsewhere in this suite, consumes Ledger’s metadata as one of
its inputs. It is a separate product with its own consent model and its own
works agreement, and buying Ledger neither switches it on nor makes Ledger’s
data visible to anyone Ledger’s own permissions would not already allow.
The honest caveat, last. Supervisory load is still a count, and counts get gamed
the moment they enter a performance conversation. We report it at team level by
default for that reason, and the reason is prudence rather than principle. If
you push it into individual reviews it will degrade, exactly as every other
proxy metric has, and no architecture we ship can stop you.
Deletion, meant literally
Per-subject deletion is close to absent in this category. Langfuse documents it
properly — filter the traces table by userId, or call DELETE on the public
traces endpoint, with propagation across storage layers in roughly fifteen
minutes — and is very nearly alone. LiteLLM offers a time-based purge,
configurable and documented, which deletes by age rather than by person.
Cloudflare offers a storage cap that drops the oldest logs first, which is a
capacity behaviour, not a retention policy. Databricks hands the problem to
Unity Catalog, which is the best answer available if you already run Databricks
and no answer at all if you do not. Most of the rest we reviewed offer nothing.
The difficulty is that an erasure request does not arrive scoped to a system. It
names a person. Somebody then has to work out that the person appears as a key
hash in the gateway, an email address in the IDE vendor’s API, a directory
principal in the chat platform’s admin surface and a row in the BI extract taken
last Thursday, then deal with each one separately, and then prove they did.
One call to Ledger removes that person from everything Ledger holds and issues
the deletion each joined source supports. That is the easy half. The half that
matters is the manifest it returns: what was deleted, from where, at what time,
and — set out just as plainly — what could not be reached and why. An upstream
vendor whose retention we cannot address from outside. An admin API with no
per-subject delete at all. An export your own team has already taken. Each is
named, with its reason, in a document.
That document is the deliverable. A deletion you cannot evidence is a deletion
you cannot defend, and “we sent the request” is not an answer to a supervisory
authority asking what became of the data. The manifest is written to be handed
over unedited.
Erasure moves historical totals, and this is where most systems quietly cheat. A
figure that appeared in a board pack in April cannot stay the same after the
person behind part of it has been erased. Ledger recomputes the affected periods
and marks them restated, with the date of the restatement, rather than changing
a number in place and hoping nobody had written it down. The spend itself does
not vanish, because it was really incurred and really invoiced: it moves into
the unattributed pile, which is the honest place for cost that no longer
resolves to anybody.
A last point on retention, because it reads like a contradiction with the limit
above and is not. Ledger cannot see further back than a source allows at the
moment it first ingests. Once a row has been ingested, Ledger holds its own copy
under your retention policy, and that matters more than it sounds: Langfuse
Cloud deletes anything older than the new limit at the next nightly cleanup when
a plan is downgraded, and Helicone’s retention tops out at three months below
the enterprise tier. Your history should not depend on somebody else’s billing
tier, and with Ledger in place it does not.
What the largest deployments oblige us to
The top tier is not a bigger licence. The dated org graph, the unattributed
number, the chain reconstruction and the erasure manifest are the same in every
deployment, and none of them improves because a contract is larger. What changes
is the list of things we are obliged to, in writing, in the words below. That
composition is the whole of the difference, and where an obligation belongs to
the suite or to the company rather than to this product, it says so here. A
shared promise sold three times is a shared promise sold twice too often, and a
reviewer who catches one is entitled to stop reading the rest.
The obligation that is genuinely Ledger’s own is accuracy with money behind it.
A contractual variance threshold, measured not against our own dashboard but
against the provider invoices you have already paid; a credit ladder printed in
the contract before you sign it rather than assessed afterwards by us; credits
accrued from our own reconciliation without you filing a claim; and a disputed
determination decided by a named independent examiner instead of by our support
desk. That last clause is the one worth reading twice, because a warranty whose
trigger the vendor adjudicates is a warranty the vendor has written itself a
licence to refuse.
Ledger is also the one product in this suite that sits in the path of a
financial decision, which changes what an availability commitment has to mean. A
survey tool that is unreachable for three hours has inconvenienced somebody. An
attribution layer that is unreachable during close week has stopped a process
with a date on it. So the top tier carries contractual RTO and RPO with a warm
standby and rehearsals documented and handed over, alongside service credits of
25% of the monthly fee for each hour of unplanned unavailability, accrued
automatically, not your sole and exclusive remedy, and not capped at six months
of fees — all three of which are departures from what the industry writes. The
rate and the absence of a cap are published here; what counts as unplanned and
where the hour starts are defined in the contract — a credit whose trigger only
we could read would be the old trick in new clothes. Now the part we would
rather say than have said to us: a credit is measured against
what you pay us, never against what the outage cost you. The Uptime Institute
found 57% of respondents pricing their last major outage above USD 100,000 and
one in five above a million. Against numbers like those a service credit is
evidence that we take the clock seriously, and not a remedy. Read it as the
first thing and not the second.
Named engineers in the Americas, in EMEA and in APAC, known to you by name;
fifteen minutes to a first substantive response on a business-stopping incident,
every day of the year; escalation to a named incident manager at sixty minutes;
and a quarterly review at which you may refuse any of them. One duty rota covers
the whole of Cadence. This is a platform property allocated across Pulse, Signal
and Ledger, not a round-the-clock line charged whole against each of the three,
and if it ever appears at full price on more than one of our quotations you have
found a billing error rather than a deliverable.
Co-determination clearance we carry as a delivery rather than describe as
support: the technical annex mapping every configurable setting in the product
to a clause a council can actually enforce, the data-flow dossier in the
council’s own language, named engineers who attend the sessions rather than a
representative of the company, the council’s own §80(3) expert funded to a
contractual cap, Article 26(7) notification before go-live, and for Italy either
the prepared RSU/RSA agreement text or the filing with the Ispettorato Nazionale
del Lavoro. What it saves you is measurable, because the failure mode has a
published price: a negotiation that collapses goes to an Einigungsstelle whose
cost the employer carries entirely under §76a(1) with no statutory ceiling,
which runs to roughly EUR 36,000 to 47,000 an episode before counting the
deployment standing idle, and in France skipping CSE consultation is a criminal
matter at EUR 37,500 for the legal person with personal liability for the
officer who signed. And the necessary correction to how this is usually sold:
you employ one set of works councils. They do not convene a second time because
you bought a second product from us. This is a property of the portfolio, priced
once across everything of ours you run and negotiated as a single group works
agreement. If it appears as a line against two of our products, you have been
charged twice for one negotiation, and you should say so.
Regulatory operations with dates attached rather than intentions: a complex-tier
DPIA in each jurisdiction of deployment, readiness for Annex III point 4 by 2
December 2027 wherever Ledger’s output reaches a personnel decision, and
automatic logs retained for not less than six months under Article 26(6). The
penalty behind the deployer duties is EUR 15,000,000 or 3% of
worldwide annual turnover, whichever is higher, which for a ten-billion group is
EUR 300 million. Be exact about what that figure is, and we will be: statutory
exposure, not an observed outcome. As at March 2026 no enforcement action had
been published under the AI Act’s prohibitions, the tier that has been
enforceable longest — so anyone selling you this as a demonstrated risk is
selling you a forecast with a regulation’s letterhead on it. Behind all of that
sits an ISO 42001 AI management system, built and independently audited, on the
straightforward argument that a product measuring how an organisation uses AI
cannot credibly lack one itself — and that certification is a property of the
company, held once, not a line against this product. Organisations already
holding ISO 27001
reach it up to 40% faster, which is the only reason the timeline is four to six
months rather than a year.
An annual independent attestation that the build you are running contains no
ranking endpoint and no per-individual productivity score, together with an
undertaking not to introduce either by update without your written consent. That
pairing is deliberate and the omission from it is deliberate too. We are not
going to dress a promise never to build something as a warranty and put a
reserve behind it: a vendor warranting that it will never ship a feature it has
never built, does not intend to build and says would be unlawful is selling you
its own intentions at a price. The attestation is the part that costs real money
and the only part you can check, so it is the part that is in the contract.
Deployment inside your perimeter, including with the cable pulled out: a
separate release train, updates shipped offline under a signed integrity
manifest you can verify independently of us, telemetry that never leaves your
network in any form, and diagnosis performed against offline dumps because
there is no other way to do it. Spend attribution data is commercially sensitive
in a way that is easy to underrate — it shows which parts of your organisation
are building what, at what rate, and the shape of that answer is worth
something to a competitor. The nearest published price for the posture itself is
Google’s air-gapped Distributed Cloud at USD 300,000 a month, on a system that
can run on as few as four racks. Where you run more than one Cadence product
inside that perimeter, this is one enclave and one release train, and we
allocate it across Pulse, Signal and Ledger so that the three allocations sum to
one line rather than to three.
The price fixed for the term: no annual uplift, no CPI index, no true-up against
headcount, no supplement for an additional jurisdiction or an additional
deployment, no AI surcharge, and — the one specific to this product — no
increase when the model spend Ledger attributes goes up. Symmetrically, no
clause preventing the figure from falling when your perimeter shrinks. The norm
we are declining is 3% to 10% a year, which is what the published renewal terms
in this category actually say, and the largest vendor in the market moved the
other way: Microsoft raised E5 from $57.00 to $60.00 with effect from 1 July
2026 and withdrew the EA volume discount levels B to D in November 2025, so a
hundred thousand seats no longer earn an automatic discount from anybody.
Three things are deliberately absent from that list, and their absence is what a
procurement reviewer should check first. Keeping the connectors working against
provider SKUs that move every quarter is not an obligation we bill for: it is
the product, and a vendor charging separately for the engineering that keeps its
own software working is charging you for its regression suite. The dated org
graph is the same. So is reporting the unattributed share — that is what Ledger
is, not what the top tier adds, and if any of the three ever appears as a line
on a quotation from us, strike it. And none of the rest is worth buying unless
you clear the thresholds stated further up: around a hundred thousand people
whose agents generate spend, three or more model providers under contract, five
or more legal entities reporting spend separately, and annual model spend in
tens of millions rather than single-digit millions. Below those, the ordinary
self-hosted deployment does the same measurement and this tier is weight you are
carrying for nothing. We would rather say so on the first call than after a
procurement cycle.
How it is priced, and why
The unit is one attribution perimeter, counted in the people whose agents
generate model spend. Not requests, not tokens, not traces, not tool calls, not
seats on Ledger itself, and above all not a percentage of the spend being
attributed. The reasoning is almost embarrassingly direct: a product bought
because per-call and per-seat meters distort the real cost of AI cannot be sold
on a meter that reproduces the distortion. If your agent fleet triples in
October, the thing measuring it must not become a second unpredictable invoice
arriving in the same month as the first.
That is a commitment with a cost attached, and the published rates next door
show what is being given up. Portkey bills $49 a month for a hundred thousand
logs and $9 for every further hundred thousand. Langfuse charges $8 per hundred
thousand units, falling to $6 above fifty million. TrueFoundry starts at $25 per
user per month and states in its own FAQ that MCP tool calls count toward usage
exactly like LLM requests. Each of those is a defensible design, and the
arithmetic on them is genuinely modest — at two hundred million agent calls a
year, per-call revenue at Langfuse’s own top-tier rate comes to about twelve
thousand dollars, which is twelve thousand and not twelve million. The meter is
not where the money is in this category. What the meter does is move the number
on your invoice every time your engineers change how they work, and that is the
property this product exists to remove.
What this page does not do is print a figure, and the reason is not coyness. An
individual, a thirty-person firm and a global group running this across a dozen
legal entities pay amounts two orders of magnitude apart. A single number on a
web page is a lie at one end of that distribution and an insult at the other, so
we publish the unit, the list of what is never metered, and the threshold at
which the obligation tier starts to make sense, and leave the figure to a
conversation where your actual perimeter is on the table.
Now the unfavourable number, which we would rather state ourselves than have
produced across a table. Measured against the model spend Ledger merely counts,
a top-tier contract sits past the five-per-cent line — the line at which a
software purchase becomes a board conversation. We know it. The question that
follows is a fair one and it usually arrives as AWS: they charge between 3% and
10% to manage cloud spend and put a round-the-clock operations team inside that
number, so why should a measuring layer cost what somebody else’s operations
cost? The answer is that the denominator has been borrowed. AWS takes a
percentage of spend it also operates. Ledger does not operate your model spend,
never enters the request path and claims no share of what it observes; it
establishes who caused it. The right denominator is the budget of the function
that would otherwise do this reconciliation by hand, and the IT budget that
funds that function. Against those, the same contract is a fraction of a
per cent — a line in a CIO’s budget rather than an item on a board agenda.
A second concession is owed in the same breath, because it runs against us. At
the spend levels where this product makes any sense, charging one per cent of
what we attribute would earn us roughly six times less than a fixed price does.
So a fixed price is higher than a percentage on the day you sign and lower than
one within about two years if this market holds its trajectory — enterprise
spend on generative AI ran to USD 37 billion in 2025 against USD 11.5 billion in
2024, and that estimate excludes chips, inference and model serving, so the true
figure is higher still. We carry the risk that your AI budget triples while our
number does not move. That is a real concession. It is also entirely in the
future, while the money is due now, and you are entitled to say so out loud.
The third is the one that could sink the business case, so it belongs on the
page rather than in a meeting. The payback argument runs: some share of your
spend is unattributed, unattributed spend is unoptimised, and making it visible
lets you cut part of it. Our working assumption has been around a tenth
unattributed. There is no published data behind that number — none. We looked.
The FinOps Foundation, which is the industry body for exactly this question,
publishes only illustrative formulas rather than measured outcomes from
deployments, and states plainly that generally accepted frameworks for cost
allocation across multi-agent workloads do not yet exist. If your unattributed
share is nearer two per cent than ten, this product does not pay for itself in
the first year, and no argument we can make changes that arithmetic.
Which is why the offer is a six-week pilot on one business unit, measured before
anything is signed. We instrument one unit, run the attribution against invoices
you have already paid, and report the unattributed share and its causes. If the
figure comes back below the threshold where the case works, we will tell you
that, and the right outcome is that you do not buy this. We would rather find
that out in six weeks at our expense than in year two at yours.
The last comparison a procurement reviewer reaches is to the category next door,
and it is unflattering. Vendr puts the median Portkey deal at $8,988 a year.
TrueFoundry’s own calculator, at seven users and a million requests, produces
$3,720. The highest figure computable from any published grid in agent
observability is Langfuse Cloud Enterprise at a hundred million units a month —
$8,801 monthly, $105,612 a year, by the vendor’s own arithmetic. A top-tier
Ledger contract is more than an order of magnitude above that ceiling. The gap
is real and we are not going to talk it away. What we will say is that the
comparison is wrong by subject rather than by amount: those products observe
calls. They do not stand behind the accuracy of attribution to a named human
with money on the line, and they do not carry works-council clearance in five
jurisdictions. If what you need is call observability, buy one of them; several
are excellent and all of them are cheaper. If you find yourself needing both, a
reasonable reading is that you should keep the observability tool and add this,
not replace one with the other.
The counter-example that cuts both ways is Splunk. Vendr’s median Splunk deal is
$94,200 a year; the Department of Veterans Affairs pays roughly $18.4 million a
year for the same product under a two-year enterprise licence agreement. That is
a factor of nearly two hundred for identical software, produced entirely by the
composition of obligations wrapped around it. It proves that obligations can
move a price that far. It does not prove they should move this one, and we are
not going to pretend otherwise. Then the distinction we will draw against
ourselves, because a reviewer will draw it anyway: that is a US federal award
and we could not have won it. Hlebourg is a UAE company. The UAE is not a Trade
Agreements Act designated country, and the WTO GPA threshold is $174,000, which
a contract of that size clears many times over. A UAE entity also cannot hold a
US facility clearance under any circumstances — 32 CFR 117.9(c)(2) and (c)(3)
require organisation under US law and location in the United States, and those
two criteria are reached before anybody asks about foreign ownership or control.
Federal work of that shape is closed to us until there is a US entity and a
documented country of origin, and neither exists yet. The VA contract proves
what the category costs. It says nothing about what we are paid, and we will not
let it be read as though it did.
What does establish the demand is not ours to claim either, which is why it is
the better evidence. The FinOps Foundation’s 2026 survey, across 1,192
practitioners representing more than $83 billion of annual cloud spend, finds
98% of practices now managing AI spend, against 63% a year earlier and 31% two
years before that. The same body describes the unsolved problem in this
product’s own words: identifying the consumer of the model output, and the lack
of generally accepted frameworks for cost allocation across multi-agent
workloads, with providers shipping SKUs many of which have no native ability to
tag. That is the gap Ledger is built into, written down by somebody with nothing
to sell you. What a single provider contract now reaches is public too: Vendr
records a median Anthropic purchase at $138,462 a year against a top of
$500,000, and OpenAI at $108,000 against a top of $801,000. One provider, one
buyer, one year. The invoice that nobody can split by department is no longer a
rounding error on anybody’s ledger, including yours.