Make a what-if stick: write moved factors into the calculation's costing environment the way the app's 'apply to this environment' dialog does. Read the factors with arcnm_cost_factors and try them with arcnm_preview_cost first. By default (apply=false) this PLANS only — it returns, per factor, the exact REST write it would make (endpoint, today's value, the new value) and refuses by name what it will not write — and changes nothing. Call again with apply=true to perform the writes. Rates (labour, overheads) and economics scalars are set; tuning factors are set per process; the material price is set for the calculation's grade; a base-seconds knob (setup base, programming base, an allowance) is TAUGHT — the what-if's before and after seconds become one calibration observation, which moves the environment's learned factor rather than pinning a value. A machine's own hourly rate, cutting data, the lot size, a scrap price and the tuning panel's own settings (the remnant value factor, the inspection times) are refused with the endpoint or tool that holds them. Every write changes the environment: the next calculation in it is re-priced and billed as usual. recalculate=true additionally starts a new calculation of this part on the changed environment (billable) — asked what this calculation was asked, its stock format included — and returns its id and what running it answered (recalculation_status). Needs parts:write.