# Worth is derived — anchors, not prices

No number in this tree is a market price. Runtime worth is MARKET
STATE — venue prices move with supply, demand, and distance; the arbitrage of it
exists because they do. What the data actually carries:

- **THE ANCHOR IS DERIVED, and no file states it**. One
 formula for every good the data can make, raw or crafted:

 > worth = Σ(input worths × qty) ÷ `yield` + `labour_rate(tier)` ÷ `rate`

 `rate` is units per WORKED HOUR, so `1/rate` is the hours one unit
 takes — at the face and at the bench alike. A recipe with no inputs
 (a raw extraction) reduces to the labour alone. A `Class`
 input resolves to its cheapest member; `yield` divides the
 MATERIALS only (1 for a single-unit craft, 20 for an ammo
 batch); a good with two recipes costs the CHEAPER; and a good the data
 wins only as another row's STRIKE (mithral ore) costs the
 host row's labour ÷ its odds. **`hours` prices nothing** — it is
 's batch commit window.
- **The labour rate is the numeraire** — `data::labor_rate_cp`,
 `1 + prof_bonus/2` → **Apprentice 1, Journeyman 2, Master 3 cp/hour**
 (tied to the SRD proficiency bonus). Those three
 scalars are now the ONLY free numbers in the price system. The
 closure it buys is locked over the corpus: an hour on any recipe row
 pays exactly its tier's rate. (Material and quality factors still
 multiply at CRAFT time, on the constructed identity; the anchor is the
 mundane-iron, Normal-quality base.)
- **NO FILE STATES A PRICE, and every good must be MAKEABLE**
 ( §5). There is no
 `declared_value_cp` and no SRD `cost_cp` any more: a good — and an arm —
 is worth what its recipe costs to run, and a second stored number
 describing the same quantity would be a quieter authority over it. So a
 good the data cannot make would be worth NOTHING, and the loader REFUSES
 it rather than pricing it at zero: give it a recipe, or a bench that wins
 it as a strike. That refusal binds mods too. (`acquisition:` survives as
 narration — a mod may still say where a thing comes from — but it no
 longer buys an exemption from the maker rule, and the shipped corpus
 carries none.)
- **`wage_hours` is the same doctrine for people** — a seed the engine
 modulates through tier wages, council pay decisions, and
 poaching. Nothing pays the file's number forever. It states HOURS, not
 coin ( §6): a post's pay is a share of the day, priced at the
 journeyman labour rate when it is read, so it follows the rate instead
 of standing where an old price level left it.
