Skip to main content

How ATTRIBUT calculates value

ATTRIBUT sizes each session in expert-hours, scales it by whether the work shipped, then prices it at your rate — reported as a range with a confidence %.

Written by Alex C

How ATTRIBUT calculates value

ATTRIBUT turns each piece of AI-assisted work into a dollar value in three steps: it sizes the work in expert-hours (an estimate of how many hours an experienced engineer would have taken to produce it), scales that estimate by an outcome multiplier based on whether the work actually shipped, and then multiplies by your hourly rate. The result is reported as a range, together with a confidence percentage, rather than a single false-precise number.

Step 1 — sizing the work in expert-hours

Every session of AI-assisted coding resolves to a mix of five kinds of work. Each kind is read from the structure of the session — line counts, tokens, conversation turns, tool calls, files opened, subagent spawns — never from the actual content of your code. That structural signal is fed into a formula specific to that kind of work, and the result is a number of expert-hours.

Kind of work

What it captures

Sizing formula (plain language)

Creation

Net-new capability — structure and behavior that did not exist before

Net-new structure sized on a creation curve

Reduction

Deletion and simplification — often the most valuable, least visible work

Removed structure, weighted, since deletion is real work

Repair

Debugging and iteration — making existing code correct

Iteration depth multiplied by the locality of the change

Understanding

Reading and navigating — the work before the work

Breadth of exploration across the repo

Orchestration

Coordinating subagents and multi-step plans

Coordination span over the work graph

A single session is usually a mix of several of these kinds, not just one. ATTRIBUT sizes each kind separately and adds them together to get the session's total expert-hours.

Because every input is structural, the same expert-hours can come from writing new code, deleting dead code, chasing a bug across several turns, reading through a codebase, or coordinating multiple subagents — the model never scores your code's quality or content, only the shape of the work.

Step 2 — the outcome multiplier

Expert-hours describe the effort a piece of work represents, but effort that never lands is worth less than effort that ships. ATTRIBUT applies an outcome multiplier — a range from 0.6 to 1.3 — based on what happened to the work: shipped work scores higher than work that was abandoned or never merged. A cleanly merged pull request, for example, is scored at 1.0 — full credit.

Step 3 — your hourly rate

The final input is a single number you set yourself: your hourly rate. It is the price of an expert-hour of your own work, and it stays inside your workspace — it is never shared or exposed outside your account.

Putting it together

The formula is:

Value = expert-hours × outcome multiplier × your hourly rate

For example, a merged pull request might be sized at 3.2 expert-hours (a band of 2.1 to 4.6, at 78% confidence). Because it merged, the outcome multiplier is 1.0. At an hourly rate of $120, the value works out to 3.2 × 1.0 × $120 = $384. If that same session cost $184.20 in AI spend, ATTRIBUT reports that as roughly 2.08× the AI spend returned as expert work.

These example figures illustrate the mechanics only — your own sessions will show your own expert-hours, outcome multiplier, and value, based on your rate and your actual work.

Why expert-hours instead of a line count

ATTRIBUT deliberately avoids counting lines of code as a proxy for value. A raw line count rewards verbosity, is inflated by churn and copy-paste, makes deletions and refactors look like nothing when they are often the hardest work, and assumes a speed-up that the evidence does not support. Expert-hours are sized by outcome instead: deletions, debugging, and orchestration each carry their own hours, the calculation is content-free and deterministic — identical inputs always produce the identical figure — and the result is always reported as a range with a confidence, never a false single point.

Did this answer your question?