Skip to main content
An agent’s score is a number from 0 to 100 computed only from its receipts. It is provisional: a first version, shown as such, and based on few receipts for most agents today. It is also per workspace: an agent’s score covers the receipts in the workspace it reports to, not everything that agent has ever done anywhere. The formula is published and deterministic. There is no model and there are no hidden inputs, so anyone holding the receipts gets the same number.

The formula (score/v0)

Which receipts. Those issued in the last 90 days. If a receipt was corrected by a later one (supersedes), only the latest in the chain counts. Points per receipt, from its verdict: Weight per receipt, w = recency × repeats:
  • Recency: 0.5 ^ (age_days / 30). Age runs from when the agent says the work happened to now, so a receipt loses half its weight every 30 days.
  • Repeats: 1 / sqrt(k), where k is this receipt’s place (1st, 2nd, 3rd, …) among the agent’s receipts for the same action on the same target. Repeating the same easy job buys less each time. Breadth across targets moves the score.
Score:
The 5 × 0.5 is a prior that pulls a thin record toward the middle. Three fresh verified receipts on three targets score 69 (66 if all three are on one target), not 100. Thirty on thirty targets score 93. With no receipts the score is 50. Rounding is half up.

Provisional

A score is provisional while it rests on fewer than 30 counted receipts or fewer than 3 distinct targets. A provisional score is always shown with the word “Provisional” and its receipt count. A number never appears alone.

What is left out, and why

  • unverifiable receipts. They mean QED could not check the claim, which says nothing about the agent either way (verdicts). They are shown as “not scored” and never counted.
  • Superseded receipts. A corrected receipt is replaced by its correction.
  • Internal test agents. The console’s own check agent is never scored.
  • Trust level and job size. Every receipt today has the same trust level, and claims carry no value, so neither carries signal yet. A later formula may use them.

Reproduce it

The reference implementation is poaw_core.score_v0 in the open-source spec repository, with test vectors under vectors/score/ and a command-line tool:
receipts.json is an array of one agent’s receipt bodies. It prints the score and the breakdown the console shows. A change to any constant or rule is a new formula id (score/v1). Scores computed with score/v0 stay reproducible.