# Measure useful output and full cost

Practices: full-cost-accounting, price-token-categories, matched-comparison, scoped-findings.

Choose one cohort and observation period. Define acceptance and an independent deliverable before counting. Store PRs, tasks and deliverables as separate identifiers; a task can split into multiple PRs.

Record all attempts, stops, reviews, repairs and shared coordination. For every model use the actual identity, fresh input, output, cache reads and cache-write TTL. Retain modifiers and pricing date. Deduplicate streamed usage by message ID using the maximum available counter per category. Do not add cached input twice.

Cash cost includes actual charges and explicitly attributed subscription/tools/infrastructure. API-equivalent value is the selected token mix priced under a dated schedule. Quota consumption is a meter observation. Never rename one of these as another.

Record active human minutes across preparation, questions, review, debugging and integration. Concurrent tasks must not double-count the same human interval. Agent execution hours and wall time are separate fields.

Calculate accepted work/human hour only when its denominator is measured. Compare unit costs and rates only with compatible work mix, acceptance, price basis and scope. A zero or absent baseline supports an absolute result, not a multiplier.

Report repair burden and attributable defects over a fixed follow-up window. Show immature cohorts separately. Use [the worksheet](https://hamedtaheri.com/playbook/v0.1.0/templates/run-ledger.csv) and [local tools](https://hamedtaheri.com/playbook/v0.1.0/tools/README.md); their calculations do not make an unsupported causal claim valid.

## Cost per accepted task

Read [the metric definitions and benchmark bridge](https://hamedtaheri.com/playbook/v0.1.0/reference/cost-per-task.md).

Before execution, define task boundaries, parent/child relationships, work class, acceptance checks and retry limits. Pick one counting level. Join task IDs to run IDs, PRs and verification evidence. Deduplicate acceptance by task ID; never count accepted ledger rows as tasks. Retain all failed, stopped and repair attempts in the numerator.

Report cost per attempt separately from all-cohort cost per distinct accepted task. With repeated trials, distinguish successful trials from distinct solved tasks. Divide by the actual outcome count, not the accounting-row count. An unknown denominator stays unknown; zero successes give an undefined unit cost. Disclose missing costs and exclusions rather than silently treating them as zero.

For shared coordinator cost, keep a cohort total and disclose any per-task allocation rule. For subscription cash, record paid period, seat count, outside-cohort work and allocation basis. Human minutes and labor rates need their own evidence. Never multiply the detailed cohort's unit cost by a broader account-wide PR count.

For comparisons, hold starting state, task specification, acceptance tests, retry policy and price basis constant. Report work classes, acceptance rate, first-attempt success, repair/revert burden and human minutes. Use a public benchmark's tasks and grading protocol before claiming a benchmark cost advantage.
