Skip to main content
Wardin has exactly one score: accepted work per $100 of spend. It is not a productivity leaderboard and it does not reward cheapness for its own sake — quality lives directly in the formula, not as a separate weighted term bolted on afterward. This page is the in-product counterpart to the OUTCOMES screen’s “How this is measured” panel (ScoreExplainer, also embedded on Console → Scoring).

The formula

accepted sessions ÷ (spend ÷ 100)
A session is accepted when it carries a quality signal — today, a GitHub PR outcome (merged, closed, or reverted) for teams that opt in — whose mean score is >= 0.5. In practice a merged PR (1.0) clears the bar; a closed-unmerged or reverted PR (0.0) does not. Spending less only raises the score if accepted sessions hold; if accepted sessions drop as spend drops, the score does not improve. There is no cheapness-only path to a higher number, because cost only ever appears in the denominator.

What “accepted” means

Quality comes from a GitHub PR outcome, not a manual grade — there is no “accept” button on a receipt, and no LLM-as-judge step:
  • A merged pull request scores 1.0.
  • A closed, unmerged pull request scores 0.0.
  • A pull request that is later reverted re-scores back down to 0.0.
The linkage is a client-chosen Wardin-Session-Id: footer line in the PR body, matching the session id sent via X-Wardin-Session-Id on the requests that did the work — parsed straight from the GitHub pull_request webhook payload, no GitHub API calls in the hot path. It’s opt-in per team (the repo needs a connected GitHub webhook) and per PR (the footer has to be present) — a PR without either produces no signal, never a guessed one. See Sessions as a quality signal for the full mechanism and the Claude Code guide for a copy-paste CLAUDE.md snippet. Manual per-receipt grading was deliberately removed: in a passive, high-volume system nobody grades individual receipts one at a time, and the person being measured can’t credibly grade their own output. A peer-reviewed, branch-protected merge event is the live source instead — someone other than the author approved the work, which is audit-defensible in a way a self-click never is.

Where each diagnostic number comes from

OUTCOMES also shows a row of diagnostic tiles and a per-engineer scorecard. These are informational only — never blended into the headline ratio (a raw efficiency number is never shipped without a paired quality signal).
SignalSourceRail stage
Cost / sessionSession-grouped spend from gateway usage eventsLEDGER
Economy-tier mixShare of requests served by haiku/mini/flash-class modelsROUTE
Cache-assist rateExact + semantic cache hit share of requestsCaching
Policy / budget blocksGuardrail denials (model allowlist, prompt injection) and rate/budget limits — PII is redacted, not blockedPolicies
Quality accept-rateGitHub PR outcome for the session, for teams that opt inEvidence layer

Coverage-gated ranking

A ranked leaderboard only tells the truth once there’s enough quality evidence behind it. The earned-mode ranked leaderboard unlocks once >= 60% of active interactive keys carry >= 5 legitimate (deduplicated, non-self) quality signals in the trailing 30-day window. Below that threshold, OUTCOMES shows only the per-engineer scorecard — a set of independently defensible facts (cost/session, budget adherence, policy blocks, cache-assist rate, quality accept-rate, economy-tier mix) with no composite score and no rank, rather than a ranking built on too little quality evidence to be trustworthy. Quality figures backed by fewer than 3 signals are flagged provisional rather than shown as a settled number.

Anti-gaming rules

  • Quality is not self-reported. The signal is a peer-reviewed, branch-protected merge event, not a button the developer being measured can click.
  • CI/headless keys are excluded from every score, ratio, and ranking. They have their own budget pool (Sessions), not a developer’s — mixing the two would let automated volume dilute a human quality signal.
  • Raw token counts are never scored. Every number in the pipeline is a session, a dollar, or a quality signal — never a token or line-of-code count, which are gameable once AI-assisted work is widespread.

No configurable weights

Wardin previously shipped a second score — a 0–100 weighted composite of cost efficiency, quality signal, and economy-tier-model usage with tenant-configurable weights. It has been removed entirely: a tunable weight is a cheapness knob by construction, since any blend of a cost term and a quality term admits a setting where cost dominates. Accepted-work-per-$100 has no such setting — quality sits in the numerator, cost in the denominator, and the ratio has no term to lean on to hide a quality regression. Removing the knob, rather than defaulting it responsibly, is what makes the score gaming-resistant by design.