Why an approved quote should stop moving
Updated 2026-09-04A quote built from your current material and machine costs is correct on the day you send it. The problem starts the day after. Resin goes up eleven percent, you correct a spool price that was entered wrong, you finally set a realistic hourly rate on the old printer — and a quote the customer accepted last week is now a different number. Nobody edited it. Nothing warned anyone. The invoice simply disagrees with the email.
Why this is worse than it sounds
The failure is silent and it is asymmetric. It never announces itself, because no user action caused it — the quote was recalculated from inputs that moved underneath it. And it surfaces at the worst moment: at invoicing, in front of the customer, when the only options are to absorb the difference or to explain it.
It also punishes exactly the behaviour you want. A shop that keeps its material prices current is the shop whose old quotes drift most.
Freeze the inputs, not the total
The instinct is to store the final price and stop recalculating. That solves the drift and creates a worse problem: a number nobody can explain. Six weeks later the total says 4,180 and there is no way to see which material, which rate, or which quantity produced it — so nobody can answer a customer who queries a line, and nobody can tell a genuine correction from a stale figure.
Freeze the inputs instead. Store the unit price of each material, its waste factor, and the machine rate, as they stood at approval. The quote still computes, still breaks down line by line, and still explains itself — it just computes from the prices that were true when the customer agreed.
What should stay editable
Freezing everything is the other easy mistake. A locked quote still needs to be re-quoted: a customer asks for a discount, the scope grows by two beds, you agree to a rush fee.
The distinction that works is between what the world does to you and what you decide. Unit costs are the world — they move without your involvement, so they freeze. Margin, discounts, an overridden total, labour, setup and rush are decisions, and decisions should remain yours to change after approval.
A lock needs a way back
Sometimes the right answer is to re-price from scratch: the job was quoted six months ago, or the first quote was simply wrong. Returning the job to draft should clear the lock and let pricing go live again, so re-quoting is an ordinary action rather than something to be worked around.
A lock people work around stops being a lock. The point is that prices do not move by accident, not that they can never move.
The frozen copy can go stale
One case is easy to miss. If a bed changes after it was frozen — a material removed, a slot added — the stored copy may no longer cover what the bed actually references. A snapshot that cannot price something the bed uses has to be treated as unusable and ignored in favour of live prices, or the quote silently drops a material and prices it at nothing.
Worth being precise about the distinction: an input frozen at zero is a real, deliberate zero and must be honoured. Only a missing input is stale. Conflating the two is how a free material becomes an invisible one.
How Kraftius handles it
While a project is in Planning or RFQ its pricing is live, so you can see the effect of a material change as you work. Moving it out of draft stamps the project as locked and freezes each bed’s unit prices, waste factors and machine rate. Later edits to a material or a printer cannot move it.
Margin, discount, override, labour, setup and rush stay editable throughout. Returning the project to draft clears the lock and the frozen copies, and pricing goes live again.