kerfmaster pin list · Estimator & quoting
questionUnresolved, waiting on Aristide or Jordan.
Content last changed 2026-08-21 — computed from the item itself, not typed.
Contract — Report stage
This contract is unresolved — the gate below is the thing waiting on an answer.
takes —
makes material-table
fails if A rate assumed by us and used as if the shop had given it.
Contract last changed 2026-08-06 — computed, not typed. Dated separately from the text above, so neither date can speak for the other.
1 open question blocks this pin
The estimator is arithmetic on numbers we already compute, multiplied by rates only the shop has. Until these land, anything built is a demo. Same status as the scale question for vector input.
A handful of jobs already quoted and already cut, with what was charged and what it actually took. This is the same trick that worked on the cut path: their hand-built master NC was worth more than every rule they had described, because it was the rules applied. Real jobs let us calibrate against reality rather than against a table of ideals — and they let us report where current quoting is off before asking anyone to trust a new number.
Ideal sample: a mix of one hole-heavy/lettering job, one long-cut simple job, one thick-plate job, and one small-quantity job. Four jobs across those corners is worth more than forty of the same kind.
Feed rates and pierce times belong in the same material table as lead length and tab widths — not in a separate estimator database. One source of truth, or the shop floor and the quote will drift apart and nobody will notice until a job loses money.
Status 2026-08-21 (Aristide): Jordan is working on this worksheet. Ruled in the same message that filling it does not block wiring the quote logic — “he is not altering your tables, just filling it in” — so the engine is wired against the schema and raises on any missing row rather than waiting for the numbers.
2026-08-21, later: the worksheet is now self-describing — run quote.py on any posted program and the BLOCKED list names every missing row (13 today). rates.json holds the schema, all values null, provenance blocks empty and waiting.
⚑ 2026-08-21, seed pass (Aristide: “just for fun and clarity, put seed data in... when Jordan gives you the data, you override it”): every rate row now carries a SEED value, provenance strength assumed, who “Claude (seed)” — plausible magnitudes so the money flows end-to-end, NOT the shop's numbers. The all-null state described above is history, kept for the record. With seeds in: 11 of 11 line items price on the demo kit (O0104: cut 6.97 min accel-model, material $75 at the seeded ‘charged’ remnant policy), and the daisy approval sheet shows an indicative figure whose shop sheet carries the warning “rate provenance feeding this figure: assumed”. Jordan's worksheet rows overwrite seeds field by field; a non-measured rate can never pass silently as the shop's number. The 13 worksheet rows are still OWED — seeds demonstrate the flow, they answer nothing.
⚑ 2026-08-21, later same day: the worksheet is superseded as a CHANNEL — Aristide ruled the data is gathered through an interface (see 7h): cadmaster-rates.aristide.mycloudally.com, token-gated, one save = value + provenance, seeds replaced on save. The 13 OWED rows themselves are unchanged and still Jordan's to fill — the form shows each one red-OWED until he does.