Progress Over Utilization
Measure admitted transitions per cost, never carrier busyness.
- Standing
- WITNESSED CHECKABLE RUNNABLE EXECUTED STAGED PUBLISHED REPRODUCED
- Last checked
- 2026-09-05 UTC
- Source
computedriven/receipts/R7-EXECUTED.md- Limit
- computedriven/docs/progress-model.md is a MODEL and its own header says 'never a measurement'. No run in this tree reports semantic progress as its primary quantity.
- Next rung
live_local— one workload on this page reporting progress and utilization side by side, so the divergence between them is a number a reader can watch rather than an argument they have to accept.
Why this page says WITNESSED — the derivation, not the word
- ✓ a witness is named
- ✓ its evidence kind is one the ledger already uses (measurement)
- ✓ the witness path resolves in this tree
- ✓ its rung is in_tree or above (in_tree)
- ✓ a run is recorded for these exact bytes
- ✓ no claim is cited that could be REFUTED
- ✓ a counterexample is shipped (required once WITNESSED)
- ✗ not staged on this site, so it cannot run from the page
WITNESSED requires every line above to hold. The label is computed from them by build.mjs and cannot be typed into the registry — the build refuses a record that carries it.
Intent
Utilization is a fact about carriers. Progress is a fact about loci. A carrier can be fully busy relocating loci for fairness while nothing is admitted. R7's first executed pass found exactly that: the busiest carrier was the one making the least progress.
Technical register
Unit: instructions per admitted transition (the receipts' unit). The progress floor profile (commit 684aad3) and the multiplexer battery (cff8a3d) compare a progress arm against fair arms; the fair arms spend most of their commands relocating. computedriven/docs/progress-model.md defines the terms and says of itself: every numeral is a definition or a prediction, never a measurement.
Problem
Every dashboard shows CPU %. Schedulers optimize fairness among runnable threads. Both measure the carrier. A system can run at 100 % and admit nothing, and the metrics will call it healthy.
Solution
Define the unit (admitted transition), instrument it at the floor, and report it per cost. Keep utilization as a diagnostic, never as the health signal. Run a fair arm beside the progress arm so the comparison is measured, not argued.
Real-world analogy
A kitchen where every cook is moving constantly and no plates leave the pass. The manager who counts moving cooks sees a busy kitchen; the one who counts plates sees the problem.
Structure — on the surface
An illustration on a compute surface: loci above, carriers below. Press Play or Step; the takeaways collect as you go. Nothing here is evidence — the witness section is.
The chapter in WRL — and the chain so far
Chapter 13 of 32 — the fragment _patterns/wrl/chain/progress-over-utilization.wrl, sealed alone by wrl.js
; PROGRESS OVER UTILIZATION — TWO CLOCK DOMAINS: pu_busy fires every epoch into three relays that only
; relocate the signal; pu_progress fires every 2 and turns a rotor. Busy is not the same as admitted.
; pu_hop1 is also Part III's router in the chain.
[pulser:pu_busy](every 1){sig_out}
[relay:pu_hop*3]{sig_in, sig_out}
[door:pu_sink]{sig_in}
[pulser:pu_progress](every 2){sig_out}
[spinner:pu_locus](w=16, n=8, rotor=quarter_turn_z){sig_in, socket}
[orb:pu_admitted]{pose}
[pu_busy] --sig--> [pu_hop0]
[pu_hop0] --sig--> [pu_hop1]
[pu_hop1] --sig--> [pu_hop2]
[pu_hop2] --sig--> [pu_sink]
[pu_progress] --sig--> [pu_locus]
[pu_locus] --socket--> [pu_admitted]module + bench seal to → sem-203ebe6c904f39e68cf5f7c2a0e595b8daeed850ed7b3ad9b88c92db0b52065f
Run inputs — a ScenarioV1, the forge's own document, bound to this world's id and never part of it (D3) · ScenarioDigest scen-593d7a01fdf3418bb76… (the run inputs' own identity, computed by the forge)
No claims: the world runs on its clocks alone for 9 epochs.
Reduced by the native reducer (ic32); the reference reducer reproduces every epoch's film hash (43.037s).
The Film, epoch by epoch (9)
epoch 1 · sha256:77071e23299071a6819d90900b48d9218a22bf403a3faf4fe7a0ca0ed4894280
FILM v0.7 t=1 spinner:pu_locus:policy=forge_motor_widemac_tz_sat_v1,quat4,w=16,n=8,rotor=00b5,0000,0000,00b5,socket=pu_admitted,config=fixed orb:pu_admitted:policy=forge_motor_widemac_tz_sat_v1,quat4,w=16,n=8,pose=0100,0000,0000,0000,controller=pu_locus,fault=0 pulser:pu_busy:mode=periodic,p=1,phase=0,armed=0,done=0,nf=1 pulser:pu_progress:mode=periodic,p=2,phase=0,armed=0,done=0,nf=2 door:pu_sink:open=0,next_open=0 relay:pu_hop0:cur_out=0,next_out=1 relay:pu_hop1:cur_out=0,next_out=0 relay:pu_hop2:cur_out=0,next_out=0 wire:w__pu_busy__pu_hop0:cur=1,nxt=1 wire:w__pu_hop0__pu_hop1:cur=0,nxt=0 wire:w__pu_hop1__pu_hop2:cur=0,nxt=0 wire:w__pu_hop2__pu_sink:cur=0,nxt=0 wire:w__pu_progress__pu_locus:cur=0,nxt=1 admit:policy=admit_candidate_min_firstreceipt_v1,fact_capacity_fault=0,receipt_capacity_fault=0,capacity_fault=0
epoch 2 · sha256:fec0809a6fdf53189b6db3d26e610ff3fc2e49e7d8f790169c047ef1693c0bdd
FILM v0.7 t=2 spinner:pu_locus:policy=forge_motor_widemac_tz_sat_v1,quat4,w=16,n=8,rotor=00b5,0000,0000,00b5,socket=pu_admitted,config=fixed orb:pu_admitted:policy=forge_motor_widemac_tz_sat_v1,quat4,w=16,n=8,pose=00b5,0000,0000,00b5,controller=pu_locus,fault=0 pulser:pu_busy:mode=periodic,p=1,phase=0,armed=0,done=0,nf=1 pulser:pu_progress:mode=periodic,p=2,phase=0,armed=0,done=0,nf=1 door:pu_sink:open=0,next_open=0 relay:pu_hop0:cur_out=1,next_out=1 relay:pu_hop1:cur_out=0,next_out=0 relay:pu_hop2:cur_out=0,next_out=0 wire:w__pu_busy__pu_hop0:cur=1,nxt=1 wire:w__pu_hop0__pu_hop1:cur=0,nxt=1 wire:w__pu_hop1__pu_hop2:cur=0,nxt=0 wire:w__pu_hop2__pu_sink:cur=0,nxt=0 wire:w__pu_progress__pu_locus:cur=1,nxt=0 admit:policy=admit_candidate_min_firstreceipt_v1,fact_capacity_fault=0,receipt_capacity_fault=0,capacity_fault=0
epoch 3 · sha256:9de339fcda35dd31871deb7e9d24d0e9f7c593749f4cccf99d1542a3ad7e05f7
FILM v0.7 t=3 spinner:pu_locus:policy=forge_motor_widemac_tz_sat_v1,quat4,w=16,n=8,rotor=00b5,0000,0000,00b5,socket=pu_admitted,config=fixed orb:pu_admitted:policy=forge_motor_widemac_tz_sat_v1,quat4,w=16,n=8,pose=00b5,0000,0000,00b5,controller=pu_locus,fault=0 pulser:pu_busy:mode=periodic,p=1,phase=0,armed=0,done=0,nf=1 pulser:pu_progress:mode=periodic,p=2,phase=0,armed=0,done=0,nf=2 door:pu_sink:open=0,next_open=0 relay:pu_hop0:cur_out=1,next_out=1 relay:pu_hop1:cur_out=0,next_out=1 relay:pu_hop2:cur_out=0,next_out=0 wire:w__pu_busy__pu_hop0:cur=1,nxt=1 wire:w__pu_hop0__pu_hop1:cur=1,nxt=1 wire:w__pu_hop1__pu_hop2:cur=0,nxt=0 wire:w__pu_hop2__pu_sink:cur=0,nxt=0 wire:w__pu_progress__pu_locus:cur=0,nxt=1 admit:policy=admit_candidate_min_firstreceipt_v1,fact_capacity_fault=0,receipt_capacity_fault=0,capacity_fault=0
epoch 4 · sha256:d56440ed4f262745a8ce5dfe0ecbc014cd40c898b5e1c847d87d25c2ff763a63
FILM v0.7 t=4 spinner:pu_locus:policy=forge_motor_widemac_tz_sat_v1,quat4,w=16,n=8,rotor=00b5,0000,0000,00b5,socket=pu_admitted,config=fixed orb:pu_admitted:policy=forge_motor_widemac_tz_sat_v1,quat4,w=16,n=8,pose=0000,0000,0000,00ff,controller=pu_locus,fault=0 pulser:pu_busy:mode=periodic,p=1,phase=0,armed=0,done=0,nf=1 pulser:pu_progress:mode=periodic,p=2,phase=0,armed=0,done=0,nf=1 door:pu_sink:open=0,next_open=0 relay:pu_hop0:cur_out=1,next_out=1 relay:pu_hop1:cur_out=1,next_out=1 relay:pu_hop2:cur_out=0,next_out=0 wire:w__pu_busy__pu_hop0:cur=1,nxt=1 wire:w__pu_hop0__pu_hop1:cur=1,nxt=1 wire:w__pu_hop1__pu_hop2:cur=0,nxt=1 wire:w__pu_hop2__pu_sink:cur=0,nxt=0 wire:w__pu_progress__pu_locus:cur=1,nxt=0 admit:policy=admit_candidate_min_firstreceipt_v1,fact_capacity_fault=0,receipt_capacity_fault=0,capacity_fault=0
epoch 5 · sha256:efb6c7866bb71d8f5e752e224a54aae16d288fbcb5a323a4f88ee1ad5dc7572a
FILM v0.7 t=5 spinner:pu_locus:policy=forge_motor_widemac_tz_sat_v1,quat4,w=16,n=8,rotor=00b5,0000,0000,00b5,socket=pu_admitted,config=fixed orb:pu_admitted:policy=forge_motor_widemac_tz_sat_v1,quat4,w=16,n=8,pose=0000,0000,0000,00ff,controller=pu_locus,fault=0 pulser:pu_busy:mode=periodic,p=1,phase=0,armed=0,done=0,nf=1 pulser:pu_progress:mode=periodic,p=2,phase=0,armed=0,done=0,nf=2 door:pu_sink:open=0,next_open=0 relay:pu_hop0:cur_out=1,next_out=1 relay:pu_hop1:cur_out=1,next_out=1 relay:pu_hop2:cur_out=0,next_out=1 wire:w__pu_busy__pu_hop0:cur=1,nxt=1 wire:w__pu_hop0__pu_hop1:cur=1,nxt=1 wire:w__pu_hop1__pu_hop2:cur=1,nxt=1 wire:w__pu_hop2__pu_sink:cur=0,nxt=0 wire:w__pu_progress__pu_locus:cur=0,nxt=1 admit:policy=admit_candidate_min_firstreceipt_v1,fact_capacity_fault=0,receipt_capacity_fault=0,capacity_fault=0
epoch 6 · sha256:11b0d588bb6f9e8ee67edf89aea345fd6fe6ca9ae739817249b33830817d7449
FILM v0.7 t=6 spinner:pu_locus:policy=forge_motor_widemac_tz_sat_v1,quat4,w=16,n=8,rotor=00b5,0000,0000,00b5,socket=pu_admitted,config=fixed orb:pu_admitted:policy=forge_motor_widemac_tz_sat_v1,quat4,w=16,n=8,pose=ff4c,0000,0000,00b4,controller=pu_locus,fault=0 pulser:pu_busy:mode=periodic,p=1,phase=0,armed=0,done=0,nf=1 pulser:pu_progress:mode=periodic,p=2,phase=0,armed=0,done=0,nf=1 door:pu_sink:open=0,next_open=0 relay:pu_hop0:cur_out=1,next_out=1 relay:pu_hop1:cur_out=1,next_out=1 relay:pu_hop2:cur_out=1,next_out=1 wire:w__pu_busy__pu_hop0:cur=1,nxt=1 wire:w__pu_hop0__pu_hop1:cur=1,nxt=1 wire:w__pu_hop1__pu_hop2:cur=1,nxt=1 wire:w__pu_hop2__pu_sink:cur=0,nxt=1 wire:w__pu_progress__pu_locus:cur=1,nxt=0 admit:policy=admit_candidate_min_firstreceipt_v1,fact_capacity_fault=0,receipt_capacity_fault=0,capacity_fault=0
epoch 7 · sha256:244107134307b0c7b2cde310e6be79ec36d09713ac279374f953b5cc9e283000
FILM v0.7 t=7 spinner:pu_locus:policy=forge_motor_widemac_tz_sat_v1,quat4,w=16,n=8,rotor=00b5,0000,0000,00b5,socket=pu_admitted,config=fixed orb:pu_admitted:policy=forge_motor_widemac_tz_sat_v1,quat4,w=16,n=8,pose=ff4c,0000,0000,00b4,controller=pu_locus,fault=0 pulser:pu_busy:mode=periodic,p=1,phase=0,armed=0,done=0,nf=1 pulser:pu_progress:mode=periodic,p=2,phase=0,armed=0,done=0,nf=2 door:pu_sink:open=0,next_open=1 relay:pu_hop0:cur_out=1,next_out=1 relay:pu_hop1:cur_out=1,next_out=1 relay:pu_hop2:cur_out=1,next_out=1 wire:w__pu_busy__pu_hop0:cur=1,nxt=1 wire:w__pu_hop0__pu_hop1:cur=1,nxt=1 wire:w__pu_hop1__pu_hop2:cur=1,nxt=1 wire:w__pu_hop2__pu_sink:cur=1,nxt=1 wire:w__pu_progress__pu_locus:cur=0,nxt=1 admit:policy=admit_candidate_min_firstreceipt_v1,fact_capacity_fault=0,receipt_capacity_fault=0,capacity_fault=0
epoch 8 · sha256:594eae7b44e96344852aae232544998089786a65e83362d9ffd7a04a4d0c545d
FILM v0.7 t=8 spinner:pu_locus:policy=forge_motor_widemac_tz_sat_v1,quat4,w=16,n=8,rotor=00b5,0000,0000,00b5,socket=pu_admitted,config=fixed orb:pu_admitted:policy=forge_motor_widemac_tz_sat_v1,quat4,w=16,n=8,pose=ff02,0000,0000,0000,controller=pu_locus,fault=0 pulser:pu_busy:mode=periodic,p=1,phase=0,armed=0,done=0,nf=1 pulser:pu_progress:mode=periodic,p=2,phase=0,armed=0,done=0,nf=1 door:pu_sink:open=1,next_open=1 relay:pu_hop0:cur_out=1,next_out=1 relay:pu_hop1:cur_out=1,next_out=1 relay:pu_hop2:cur_out=1,next_out=1 wire:w__pu_busy__pu_hop0:cur=1,nxt=1 wire:w__pu_hop0__pu_hop1:cur=1,nxt=1 wire:w__pu_hop1__pu_hop2:cur=1,nxt=1 wire:w__pu_hop2__pu_sink:cur=1,nxt=1 wire:w__pu_progress__pu_locus:cur=1,nxt=0 admit:policy=admit_candidate_min_firstreceipt_v1,fact_capacity_fault=0,receipt_capacity_fault=0,capacity_fault=0
epoch 9 · sha256:1606adfec82efcfb9cdc9eec562e0afd1d2c9b313aa41bd56fde57cde1e1e2bb
FILM v0.7 t=9 spinner:pu_locus:policy=forge_motor_widemac_tz_sat_v1,quat4,w=16,n=8,rotor=00b5,0000,0000,00b5,socket=pu_admitted,config=fixed orb:pu_admitted:policy=forge_motor_widemac_tz_sat_v1,quat4,w=16,n=8,pose=ff02,0000,0000,0000,controller=pu_locus,fault=0 pulser:pu_busy:mode=periodic,p=1,phase=0,armed=0,done=0,nf=1 pulser:pu_progress:mode=periodic,p=2,phase=0,armed=0,done=0,nf=2 door:pu_sink:open=1,next_open=1 relay:pu_hop0:cur_out=1,next_out=1 relay:pu_hop1:cur_out=1,next_out=1 relay:pu_hop2:cur_out=1,next_out=1 wire:w__pu_busy__pu_hop0:cur=1,nxt=1 wire:w__pu_hop0__pu_hop1:cur=1,nxt=1 wire:w__pu_hop1__pu_hop2:cur=1,nxt=1 wire:w__pu_hop2__pu_sink:cur=1,nxt=1 wire:w__pu_progress__pu_locus:cur=0,nxt=1 admit:policy=admit_candidate_min_firstreceipt_v1,fact_capacity_fault=0,receipt_capacity_fault=0,capacity_fault=0
Composes with the 12 chapters before it
The chain through this chapter — every earlier fragment, this one, and the links — seals to sem-65eebc48160508bc9dc1945363615ab8419ab47a81bbcb9fba7f79f417ba64fa: 45 objects, 42 edges (was 37 / 36; every earlier object and edge is still present — checked, or the build refuses).
How to read this board
Five kinds of object, two kinds of wire, and one band per Part of the book. Signal flows left to right: it starts at a clock, travels through relays, and ends at a door — or turns a spinner, which drives an orb. Nothing below is the book's own vocabulary; each line is quoted from where the definition lives.
| shape | is | and so |
|---|---|---|
| a clock; the only source of signal | Every signal on the board starts at one of these. Nothing else can make one. | |
| a pass-through, so signal can travel | One arrives, any number leave — a relay that fans out is the board's router. | |
| a sink; signal arrives and stops | It latches what reached it and passes nothing on. A door is where a path ends. | |
| rotation: takes signal, drives a pose | The only object on the board that holds a value a claim can rewrite — and only if its config says configurable. | |
| the thing that gets moved | It is driven, never driving: an orb is what you watch to see whether anything happened. | |
| not a WRL role — the book's own drawing of the receipts in the epoch's Film | It counts what the run admitted, and turns red on a Rejected outcome. | |
| SignalWire | signal: a sig_out to a sig_in | Legal from a Pulser or Relay, into a Relay, Door or Spinner. This is how the board moves. |
| SocketControl | control: a socket to a pose | Legal only from a Spinner into an Orb. At most one may land on any input port — fan-in is a typed refusal. |
Hover any object for what it is, which chapter put it there, and every field of its line in that epoch's Film — split into what it is doing now and how it was built. Click to pin the readout, then click a wired name to follow the signal. The field definitions come from TRVM/forge/film.py (the emitter), TRVM/forge/forge_state.py (nf, derived from the decoded counter and never from t), TRVM/forge/lower_e2a.py (the commit/react law), TRVM/FORGE_SEMANTIC_IR_v1_MEASURE.md §1.3; the shapes from WRL/learn.html and WRL/docs/spec/README.md. The build refuses if a Film emits a field this key does not explain.
The board so far: one band per Part, signal flowing left to right; relays that fan out are routers, doors are switches, pulsers are clock domains. Hover an object — or click the board and walk it with the arrow keys — for its role, its Part and what it is wired to. This board is the chain’s sealed shape; no Film drives it, so it has no state to report, and the whole board in the conclusion is where every object’s state is read epoch by epoch. Wheel zooms · drag pans · double-click fits.
Syntax — quoted from the tree at build time
The receipt's own title line computedriven/receipts/R7-EXECUTED.md:1
# R7 — EXECUTED (first pass): the busiest Carrier is the one making the least progress
Where the fair arms spent their commands computedriven/receipts/R7-EXECUTED.md:93
the fair arms spend most of their commands relocating. §2 of the model
Forces
Progress needs a definition before it can be counted — an admitted semantic transition — and a definition is a commitment the model document has to make ahead of the receipt. Fairness is a real value; starving a locus forever is not progress either. The pattern does not say ignore fairness; it says do not mistake it for the goal.
Applicability
Schedulers, agent runtimes, benchmark harnesses, anything with a dashboard. Especially where a fairness policy already exists and has never been measured against what it admitted.
Transformations
- lowering utilization while raising admitted transitions
- re-placing loci to where progress is possible (Progress-Aware Placement)
- reporting utilization as health
- scheduling work that admits nothing to keep a carrier busy (Busywork Scheduling)
- quoting a model document's number as a measurement
A refusing transformation is not one that is discouraged: it is one that, applied, makes the invariant above false. The word is the tree's, and it is the same word the join uses.
Consequences
The health question moves from the carrier to the loci, which is where the semantics are. It also makes the next pattern possible: placement can be chosen for progress only once progress is what is measured.
Failure mode it answers
Busywork Scheduling — Maximizing resource utilization while semantic progress stalls. Paid for at: computedriven/receipts/R7-EXECUTED.md title: the busiest Carrier makes the least progress
Witness
Source identity: computedriven/receipts/R7-EXECUTED.md · shape receipt · evidence kind measurement · rung in_tree (R7-EXECUTED.md header: battery receipt R7-BATTERY-20260905T172007Z from a clean tree; 'the busiest Carrier is the one making the least progress')
Execution identity: 2026-09-05 — the witness is itself an execution record
Not staged on this site: the page cannot run this witness. Its shape (receipt) is a document, not a run.
Counterexample
computedriven/receipts/R7-EXECUTED.md — marker fair arm
, expected REFUSED.
A marker, not a resolved law. The build checked that this string is present in the file, and it occurs there 2 times, so it does not pick out one place. A string being present proves the file mentions it, not that the file refuses anything — this record cites no law id that could be resolved against a suite index. It is the weaker of the two forms this catalog uses.
What to take away
- from the animationEqual utilization, unequal progress — the meters that matter are the lower ones.
- from the syntaxThe receipt's title is the finding: the busiest Carrier is the one making the least progress.
- from the literatureQueueing theory separated utilization from throughput long ago; Erlang counts reductions, not busy schedulers. The pattern is the old distinction applied to loci.
- from the witnessThe witness is a receipt with instruction counts; the model document beside it is a prediction and is not cited as evidence.
Prior art — and what is not claimed
| work | relation | what it shares | where it differs |
|---|---|---|---|
| Erlang reductions as the scheduling unit | realization | schedule by work performed, not by time occupied | reductions are a fairness device; the pattern asks for progress to be the reported quantity too |
| Little's law; utilization vs throughput in queueing theory | antecedent | utilization is a poor proxy for useful work | queueing theory proves the relation; the pattern is about which number a system exposes |
Novelty not claimed. Queueing theory has said this since the 1960s. computedriven/docs/progress-model.md is a MODEL — its own header says 'never a measurement' — and is not this witness.
Realizations in the tree
- computedriven/docs/progress-model.md
- computedriven/receipts/KERNELLET-R1.md:33
Relations with other patterns
Carrier Multiplexing WITNESSED · Dormant But Alive STATED