2026-08-15 19:01:45 +02:00
|
|
|
|
# AI plan cost, token estimates, and effectiveness
|
|
|
|
|
|
|
|
|
|
|
|
Status: fin-hub design note for `FIN-WP-0007-T00`
|
|
|
|
|
|
Checked against: resource-control `SCOPE.md`, `INTENT.md`,
|
|
|
|
|
|
`docs/TermsOfResourceProcurement.md` §4.1 and §6,
|
|
|
|
|
|
`docs/fin-hub-resource-control-contract-v0.1.md`,
|
|
|
|
|
|
`docs/evidence-basis.md`,
|
|
|
|
|
|
`data/capability/platform-audit-storage.json` (2026-08-15),
|
|
|
|
|
|
and the ratified fin-hub contract
|
|
|
|
|
|
`docs/fin-resource-authority-contract-v0.1.md`.
|
|
|
|
|
|
|
|
|
|
|
|
This note records the authority split. It does not amend contract v0.1.
|
|
|
|
|
|
A proposed addendum is at the end for resource-control to accept or reject.
|
|
|
|
|
|
|
|
|
|
|
|
## Why a second check was required
|
|
|
|
|
|
|
|
|
|
|
|
`FIN-WP-0007` first treated resource-control as the wrong producer for
|
|
|
|
|
|
any AI-token number. That is too coarse.
|
|
|
|
|
|
|
|
|
|
|
|
Resource-control already names intelligence as a Railiance-procured
|
|
|
|
|
|
resource class — “commercial model APIs, reserved weights, inference
|
|
|
|
|
|
hosts” — and records class `I` consumption on a provision as *their*
|
|
|
|
|
|
gap (`owner: resource-control`), with unknown never stored as zero.
|
|
|
|
|
|
They do not yet inventory any AI plan, and they do not parse coding
|
|
|
|
|
|
sessions. Those two facts have to stay separate.
|
|
|
|
|
|
|
|
|
|
|
|
## Four quantities, four writers
|
|
|
|
|
|
|
|
|
|
|
|
| Quantity | Native unit | Authoritative writer | Fin-hub may |
|
|
|
|
|
|
| --- | --- | --- | --- |
|
|
|
|
|
|
| Booked plan / API invoice | currency | fin-hub | Book once as `booked_cost` |
|
|
|
|
|
|
| Recurring plan as commitment | currency / period | fin-hub | Record; not usage |
|
|
|
|
|
|
| Plan entitlement (included tokens or plan label) | token or declared capacity | fin-hub | Commercial fact, same discipline as engagement prices |
|
|
|
|
|
|
| Intelligence *resource* identity | `resource:…` | resource-control | Join when present; never invent |
|
|
|
|
|
|
| Provision-level class `I` usage | token | resource-control, when they meter a named provision | Consume via `FIN-WP-0004` `usage_observation` |
|
|
|
|
|
|
| Session token evidence | token | State Hub (`STATE-WP-0045`) | Join as session-token evidence |
|
|
|
|
|
|
| Technical allocation of a portfolio resource | share of a referenced fact | resource-control | Consume `AllocationEvidence`; do not emit it |
|
|
|
|
|
|
| Work done | task / outcome | State Hub / domain repos | Join key, not a cost driver |
|
|
|
|
|
|
| Reporting allocation of a plan invoice across work | share of a referenced fact | fin-hub | Local reporting derivation (`FIN-WP-0002` family) |
|
|
|
|
|
|
| Implied €/token and work-per-token / work-per-euro | derived | fin-hub | Overlay only; inherit the weakest input basis |
|
|
|
|
|
|
|
|
|
|
|
|
Session telemetry is not platform telemetry. Contract v0.1 says
|
|
|
|
|
|
technical usage is sourced from platform telemetry and written by
|
|
|
|
|
|
resource-control. Agent-session counts from State Hub therefore must
|
|
|
|
|
|
not be stored as resource-control `usage_observation`.
|
|
|
|
|
|
|
|
|
|
|
|
Reporting allocation of an invoice across workplans is not technical
|
|
|
|
|
|
allocation of a portfolio resource. Contract v0.1 keeps allocation
|
|
|
|
|
|
method and driver with resource-control. Fin-hub already has a
|
|
|
|
|
|
reporting-only consumer for that evidence (`FIN-WP-0002-T03`). Work
|
|
|
|
|
|
effectiveness uses a *local* reporting allocation and must not be
|
|
|
|
|
|
posted as `AllocationEvidence`.
|
|
|
|
|
|
|
|
|
|
|
|
## When a `resource_id` exists
|
|
|
|
|
|
|
|
|
|
|
|
If resource-control later inventories a Railiance-procured
|
|
|
|
|
|
intelligence resource (API account, reserved weights, inference
|
|
|
|
|
|
host, or license):
|
|
|
|
|
|
|
|
|
|
|
|
- fin-hub books the invoice and may attach the resource-control
|
|
|
|
|
|
`resource_id` they published;
|
|
|
|
|
|
- resource-control owns usage and technical allocation on that
|
|
|
|
|
|
resource, including class `I` tokens against the provision;
|
|
|
|
|
|
- fin-hub still owns entitlement, burn, runway, and the
|
|
|
|
|
|
work-effectiveness report.
|
|
|
|
|
|
|
|
|
|
|
|
Until that inventory row exists, `resource_id` stays `null`. A
|
|
|
|
|
|
null join is a visible gap, not a license to mint
|
|
|
|
|
|
`resource:anthropic:claude-max`.
|
|
|
|
|
|
|
|
|
|
|
|
## Financial entity
|
|
|
|
|
|
|
|
|
|
|
|
Resource-control requires every expense, estimate, and usage
|
|
|
|
|
|
observation to carry exactly one `financial_entity_id`, or an
|
|
|
|
|
|
explicit null with a named gap. Founder-private cards and uncleared
|
|
|
|
|
|
Auslagen stay outside their terms until booked to an entity *and* a
|
|
|
|
|
|
resource.
|
|
|
|
|
|
|
|
|
|
|
|
Fin-hub may still book those invoices for runway. It must not
|
|
|
|
|
|
silent-default the entity to Railiance or Binky, and it must not
|
|
|
|
|
|
pretend a private plan is a Railiance-procured resource.
|
|
|
|
|
|
|
|
|
|
|
|
## Measurement layers and estimates
|
|
|
|
|
|
|
|
|
|
|
|
Keep these records separate, joined by period, provider/plan, and
|
|
|
|
|
|
optional workplan/repo/`resource_id`:
|
|
|
|
|
|
|
|
|
|
|
|
1. booked plan cost
|
|
|
|
|
|
2. entitlement (or explicit unknown capacity)
|
|
|
|
|
|
3. consumption of class `I`, each row marked with how it was obtained
|
|
|
|
|
|
4. work done
|
|
|
|
|
|
|
|
|
|
|
|
Reuse resource-control’s evidence-basis vocabulary rather than
|
|
|
|
|
|
inventing a dialect: `invoiced`, `measured`, `quoted`, `derived`,
|
|
|
|
|
|
`projected`, `estimated`, `assumed`, `unknown`. Unknown carries no
|
|
|
|
|
|
quantity. Zero means measured and none.
|
|
|
|
|
|
|
|
|
|
|
|
State Hub `measurement_kind` maps as:
|
|
|
|
|
|
|
|
|
|
|
|
| State Hub | Evidence basis used here |
|
|
|
|
|
|
| --- | --- |
|
|
|
|
|
|
| `measured` | `measured` |
|
|
|
|
|
|
| `allocated` | `derived` (from a measured parent; method required) |
|
|
|
|
|
|
| `estimated` | `estimated` |
|
|
|
|
|
|
| `superseded` | excluded from totals |
|
|
|
|
|
|
| no events | `unknown` residual, not a zero observation |
|
|
|
|
|
|
|
|
|
|
|
|
A derived overlay (implied €/token, work per token) is only as strong
|
2026-08-15 19:53:28 +02:00
|
|
|
|
as its weakest input. Coverage is measured / (measured + estimated).
|
|
|
|
|
|
A month whose coverage is below `0.50` is `unfit` for token-series
|
|
|
|
|
|
trend comparison, not interpolated. The effectiveness report publishes
|
|
|
|
|
|
three series — work per measured token, work per measured+estimated
|
|
|
|
|
|
token, and work per euro — and never a blended efficiency number.
|
2026-08-15 19:01:45 +02:00
|
|
|
|
|
|
|
|
|
|
## What fin-hub will not do
|
|
|
|
|
|
|
|
|
|
|
|
- Invent resource identity or provider-resource identity.
|
|
|
|
|
|
- Meter tokens against a portfolio provision.
|
|
|
|
|
|
- Parse Codex, Claude, Cursor, or Grok session files.
|
|
|
|
|
|
- Emit `usage_observation` or `AllocationEvidence` as if it were
|
|
|
|
|
|
resource-control.
|
|
|
|
|
|
- Collapse tokens into euros at capture time.
|
|
|
|
|
|
- Store missing tokens as `0`.
|
|
|
|
|
|
- Treat a plan entitlement as an invoice, or an implied €/token as a
|
|
|
|
|
|
price.
|
|
|
|
|
|
|
|
|
|
|
|
## Proposed contract addendum (not ratified)
|
|
|
|
|
|
|
|
|
|
|
|
Offer to resource-control, without changing v0.1 until they accept:
|
|
|
|
|
|
|
|
|
|
|
|
1. Intelligence resources remain in their portfolio when Railiance
|
|
|
|
|
|
procures them. Class `I` on a provision stays their meter.
|
|
|
|
|
|
2. Agent-session token events stay with State Hub. Fin-hub may join
|
|
|
|
|
|
them for financial reporting; that join is not technical usage.
|
|
|
|
|
|
3. Work-effectiveness allocation of a booked AI-plan fact is a
|
|
|
|
|
|
fin-hub reporting derivation and is not technical allocation.
|
|
|
|
|
|
4. A booked AI-plan fact may carry `resource_id=null` until they
|
|
|
|
|
|
publish one. Fin-hub will not mint a surrogate.
|
|
|
|
|
|
|
|
|
|
|
|
`FIN-WP-0004-T05` (Scaleway `platform:audit-storage` booked-cost
|
|
|
|
|
|
round trip) is unchanged and is class `S`, not class `I`.
|
|
|
|
|
|
|
|
|
|
|
|
Offered to resource-control on 2026-08-15 as State Hub message
|
|
|
|
|
|
`4e75cd00-87f1-46e1-8d17-9169289640a2`. Not assumed until they
|
|
|
|
|
|
accept, reject, or name a conflict.
|
2026-08-15 20:02:27 +02:00
|
|
|
|
|
|
|
|
|
|
Canon demand (T07, does not block T01–T06) is
|
|
|
|
|
|
`docs/demand-capability-consumption-lineage.md`, filed at
|
|
|
|
|
|
`info-tech-canon/demand/CapabilityConsumptionLineage.md`, and sent as
|
|
|
|
|
|
message `8b0fd492-dac1-4fbe-bebb-efd52c601773`.
|