Agent value
Keep a running total of what each agent is worth, in dollars and time saved, with measured and estimated figures kept apart.
In short
Hyperstruck can keep a ledger of what each of your agents is worth: dollars earned and time saved, one entry for each outcome. Figures a person or a system of record vouched for are reported as measured, the platform's own guesses as estimated, and the two are never added together.
What you get
With value tracking on, an agent has a ledger. Each time it produces an outcome worth something, such as a load booked, a contract reviewed or a ticket resolved, an entry goes on the ledger. You can then read the total for the agent's whole life or for the last 7, 30, 90 or 365 days, see it split by category, see which learnings earned the most, and sort your agents by what they earned to find the ones that pay for themselves and the ones that do not.
All amounts are in US dollars. Tracking is off for every agent until you turn it on. While it is off, new entries are refused and the entries already on the ledger stay readable.
Measured and estimated
Every entry is one of two kinds, and every total reports them apart.
| Kind | What it is | Where it comes from |
|---|---|---|
| Measured | A figure someone vouched for | Anything you or your agent record, unless it is marked otherwise |
| Estimated | A guess | The platform's own estimate after a successful run, and any entry you mark estimated |
A measured total rests on figures someone stated. An estimated total shows which agents are probably helping before anyone has written down an outcome.
Say what counts as value
Value is defined per agent, in its value profile. The profile holds four things:
- A description in plain words of what counts as value for this agent. Other agents read it before deciding whether to record anything.
- A rate card: named outcomes with a price agreed up front, such as "ticket resolved, $12 and 20 minutes". Recording a rate-card outcome is the preferred route, because nobody has to invent a figure.
- An hourly rate that turns minutes into dollars where an entry has minutes but no price. It defaults to $100 an hour.
- Whether the platform may estimate (on by default), and how many minutes it credits for each learning a run applied (10 by default).
Changing the rate card or the hourly rate never alters an entry already on the ledger. Each entry keeps the price it was recorded at.
The profile also produces a short set of plain-language instructions, called guidance, written for an agent: whether to record value, which rate-card outcomes exist and what each is worth, and which request to send. An agent reads it before it records anything.
Record an outcome
An entry states its figure one of three ways.
| You know | Send | Dollars come from |
|---|---|---|
| Which rate-card outcome happened | unit_key, and quantity if it is more than one | The rate card |
| A dollar figure that a person, a document or a system of record stated | amount_usd and a baseline | What was stated |
| Only the time it saved | time_saved_minutes | The agent's hourly rate |
A baseline says what the outcome would have cost without the agent, in words a reviewer can check, such as "Outside counsel quote: $50k, 3 business days". It is required with a dollar figure so that every figure on the ledger can be traced to something.
Never guess a dollar figure. If there is no rate-card outcome and nobody stated a number, record the time saved, or record nothing and let the platform's estimate stand.
Every entry also carries an idempotency_key that names the outcome, such as placement:req-8812. Send the same request again after a timeout and you get the original entry back rather than a second one.
Credit the learnings that helped
When an outcome comes from a run that was offered learnings and claims, pass that run's run_id and the entry credits everything the run was offered. Credit is shared equally between everything an entry credits, and the agent's summary lists the five learnings that earned the most measured value. An outcome can land long after the run closed, so a run's offers are kept for about a year, provided value tracking is on for the agent a day or so after the run closes.
What the platform records for you
After a successful run that applied at least one learning, the platform writes an estimated entry for it: the minutes per applied learning from the profile, times the number of learnings applied, at the hourly rate. It is recorded once per run and labeled "Platform estimate". Your agents should not record that routine saving themselves.
Fix a mistake
The ledger is append-only: there is no way to edit or delete an entry. If an outcome falls through, reverse the entry with a reason. A reversal adds a negating entry dated with the original, so the original stays visible and any period total nets the two out together. The reference has the rules.
Where your agents do it
Agents record and read value in three places:
- At the end of a run, in the
valuefield ofreinforce, or in thevalueargument of the MCP server'scomplete_run. The value is credited to that run's learnings automatically. - When an outcome lands later, with the MCP tool
record_valueor the Agent value API. - To judge an agent, with
get_agent_value, or by listing agents with a value sort.