← DevEval Complexity Units

The unit your Story Points were always pretending to be.

CU measures the contribution of a pull request — comparable across people, teams, vendors, and tools. Story Points are negotiated per team and deflate as tools improve. CU is anchored to the work itself: the same task is worth the same CU, in 2023 and in 2026.

Definition

Volume of work, plus everything a mid-level developer couldn't have done.

CU is not a difficulty poker card. It is a measure of delivered contribution, built from two parts: how much work shipped, and how much of it required expertise above a baseline mid-level developer working without AI.

01 · Volume base — Scope

All logical concerns delivered: features, endpoints, screens, workflows, migrations. Repetition is discounted sublinearly — 10 similar screens are worth less than 10× one screen, but never rounded down to one. Pure mechanics (mass renames, codegen) score near zero regardless of file count.

02 · Expertise bonus — 5 axes

Technical, Domain, Integration, Investigation, Safeguarding. Each captures value a baseline mid-dev would deliver worse, slower, or not at all — new architecture, hard business rules, hostile external systems, week-long root-cause hunts, deliberate safety engineering.

The 6 axes

Every PR is scored 0–10 on six axes.

One volume axis plus five expertise bonuses. A PR that spikes on one or two axes is not dragged down by zeros on the rest — a 3-line fix after a week of debugging lands high.

VOLUME 20%

Scope

Amount of work delivered, discounted for repetition. Decisions count; mechanics don't.

BONUS 20%

Technical

New patterns, standards, architecture; algorithmic difficulty. First-in-codebase counts.

BONUS 15%

Domain

Business and regulatory rules the developer had to understand and encode correctly.

BONUS 15%

Integration

Systems outside your codebase — external APIs, SDKs, cloud, legacy. Starts at the network boundary.

BONUS 15%

Investigation

Work invisible in the diff — debugging, tracing, root-cause analysis. The problem's difficulty, not the author's clock.

BONUS 15%

Safeguarding

Deliberate safety engineering, weighted up in 24/7, money-handling, or regulated systems.

Weights are defaults, configurable per project — a bank can weight Safeguarding up and Scope down. The axes reconcile into a final CU on a 0–30 scale.

Calibration

Anchored to real work, not vibes.

The scale is pinned by concrete calibration anchors, so a CU means the same thing in every team, on every repo, forever.

CU Anchor What it looks like
2 1 CRUD endpoint Standard patterns, no surprises
4 5 screens (pattern) Repetition discounted, decisions still count
7.5 Multi-layer feature API + logic + UI, moderate novelty
11.5 Vertical slice End-to-end through every layer
14 Senior foundations New standards the team builds on
17.5 Infra greenfield New infrastructure from scratch
20 Mid-dev sprint · 10 MD The master anchor: one solid sprint, no AI
24.5 Multi-sprint epic Should have been split — but happens
30 Outlier (rare) Top of the scale, by design rare
MASTER ANCHOR
20 CU ≈ 10 MD
a solid mid-dev sprint without AI
PATTERN-FOLLOWING
~1.5 CU / MD
sublinear discount for repetition
EXPERTISE-HEAVY
3–4 CU / MD
small diff, large bonus axes
SCALE
0 → 30
in 0.5 steps · 21 ≈ typical epic
Why not Story Points

CU doesn't move when your tools do.

Story Points measure team-relative effort — so when AI makes everyone faster, the points quietly deflate and your velocity chart flatters itself. CU is anchored to the work.

Property Story Points Complexity Units
Calibrated against Each team's own history and habits Fixed anchors — same for every team and vendor
Comparable across teams No — 5 SP here ≠ 5 SP there Yes — designed for cross-team comparison
When AI speeds everyone up Same task gets fewer points; gains vanish from the chart Same task keeps its CU; gains show up as rising PI
Set by Negotiation in planning AI evaluation of the delivered PR, per axis, auditable

A task that was CU 8 in 2023 is still CU 8 in 2026. That is what makes productivity measurable across the AI transition.

Rigor

Built to resist gaming.

The scoring rubric encodes explicit anti-patterns — the tricks that inflate every other metric are worth nothing here.

The trick
Touch 30 files with one boolean flag
What the rubric says
File count ≠ concern count. One decision threaded through 30 files is Scope 1–2, not 8.
The trick
Mass rename / run the code generator
What the rubric says
Pure mechanics score near zero on Scope regardless of diff size.
The trick
Sprinkle domain vocabulary in names
What the rubric says
invoice/policy/claim is naming, not rules. Domain scores rule complexity that had to be understood.
The trick
Pad the diff to look like a big investigation
What the rubric says
Commits don't prove investigation. Evidence does: reverts, tried-X-switched-to-Y, framework-internals citations.
The trick
Call every null check “safety engineering”
What the rubric says
Routine defensive coding isn't Safeguarding — unless the context multiplier applies: 24/7, money, regulated, hard SLA.

See your backlog in CU.

Connect a repo and watch real pull requests land on the scale — with the per-axis breakdown for every score.

Start free trial
30 days · no card · cancel anytime
Private beta · early access

Self-service launches soon

We're prioritising enterprise rollouts right now. Leave your email and we'll let you know the moment self-service is open.

We'll only use this to reach out about DevEval. No newsletter, no sharing with third parties.