Commercial kitchen fabrication
Bespoke Manufacturing Quotation Software Case Study
JK Kitchen
The challenge
At JK Kitchen, a stainless-steel fabricator in Pune, every quotation started as a copy of an older spreadsheet, which meant the pricing logic in circulation was whatever happened to be embedded in the file somebody duplicated that morning. Sheet material rates, wastage allowances, fabrication time and margin had all been adjusted locally over the years, so two estimators pricing a comparable counter could arrive at different numbers for reasons nobody could reconstruct afterwards. Because dimensions were typed rather than modelled, an error in a single cell propagated silently through material and labour, and the customer received a document that gave no visual confirmation that the unit being priced was the unit they had described. Approval was informal, so discounts were applied in the sheet without any record of who authorised them or against which cost base.
The approach
We separated the things that change often from the things that must not change casually. Material rates, wastage factors, labour rates and standard fabrication operations became governed reference data with an owner and an effective date, while the estimator works only with the dimensions and options of the actual job. The quote is then computed from parameters rather than typed, so a change to a length or a gauge flows through material, cut, weld time and finishing without anyone editing a formula. A parametric 3D preview renders the configured unit as it is priced, which turns a specification error into something visible rather than something arithmetical. Finished quotes are issued as a shareable link with versioning, and any discount beyond a defined threshold requires approval that is recorded against the quote.
The outcome
Two estimators pricing the same specification now produce the same number, because the rates and allowances are held once rather than embedded in whichever file was copied, and a rate change takes effect on new quotes from its effective date instead of spreading gradually through the team. The 3D preview means a wrong dimension is usually caught by the person who typed it, since an incorrect unit looks wrong before it is sent, and the customer approves something they have seen rather than a table of line items. Sending a link rather than a document means the quote the client opens is the current version, revisions are visible as revisions, and every discount carries a record of who approved it against which cost base, so margin can be examined after the fact rather than inferred.
Made-to-order manufacturers end up in spreadsheets for a rational reason: no packaged product knows their fabrication rules, and Excel will do whatever they ask. The cost arrives later, when the rules exist in several dozen files and nobody can say which of them is correct.
Why a spreadsheet stops working at this scale
The catalogue is the answer. A fabricator of this kind is not pricing a handful of standard units; this one prices across nine product categories and 57 product types, carrying 86 features and 175 sub-features between them, against 33 named dimension variables and two stainless grades.
Any one of those combinations is easy to price in a sheet. The problem is that the rules referring to them are written hundreds of times over — across the live formulas there are several hundred references to dimensions, several hundred to material slots and several hundred to rate codes. A rule that is written once is maintainable and a rule that is written several hundred times is a liability, and a spreadsheet estate cannot tell the difference.
What replaced the formula in the cell
The estimator’s arithmetic did not disappear. It became data.
A formula is an ordered list of steps. Each step is an expression that can refer to dimensions, to the materials chosen for the job, to rate codes, and to the results of earlier steps, and each step names the slot its answer is stored in. The last step writes to a slot called RESULT, and the value in RESULT is the price of that feature. A real one, for a dish landing tray top, computes an area from length and breadth with an allowance added to each, multiplies it by a per-unit factor for the chosen sheet, applies the sheet rate and a labour rate to that, and adds a fixed material cost.
Two things about this matter more than the syntax. First, the estimator writes the expression, not a developer. Second, the expression is not executed by the language it is stored in. It is parsed into a syntax tree and checked against a whitelist that permits numbers, variable names, the four arithmetic operators and brackets — and nothing else. No function calls, no attribute access, no strings.
A pricing rule an estimator can edit is only safe if the evaluator cannot do anything except arithmetic. That is the difference between a formula engine and a remote code execution feature.
The parser also normalises the notation spreadsheets teach people to write, so a multiplication sign or a spaced letter x between two operands becomes an ordinary multiplication rather than a syntax error. Migrating a fabricator off Excel means accepting the habits Excel gave them.
How the quote knows what its own margin is
Every formula runs twice on every calculation — once against selling rates and once against cost rates. The line therefore carries both numbers, and its gross profit and margin are computed rather than estimated.
Customer-level margin is applied on top, and it comes from one place: a margin percentage held on the client type. That is deliberately the only customer-driven modifier in the pricing path, because the moment there are two, the question “why is this client’s price what it is” stops having a single answer.
The whole calculation trace is then stored on the line — the materials chosen for each slot, the values every step produced, the selling and cost evaluations side by side. A quote from last year can be opened and explained, which is precisely what a stack of copied spreadsheets could never do.
Why the preview is a control, not a rendering
The 3D preview is built from the same parameters the price is built from. Length, breadth and height drive the geometry, counts are derived from the dimensions on the line, and the features selected on the quote map to the parts that appear.
Three archetypes — a rack, a flat slab and a service counter — cover the whole product range, and each clamps its dimensions to a range the product can physically take. That clamping is doing real work: a counter that renders at an impossible height is telling the estimator something before the customer ever sees it.
The catalogue also records, per feature, whether it is modelled fully, approximately or not at all. A preview that quietly omits what it cannot draw is worse than no preview, because the customer approves what they were shown.
What the shareable link is careful about
A finished quote is issued as a link carrying a random token, with a separate switch controlling whether sharing is on. Turning the switch off revokes the link without destroying it, so a quote that was shared by mistake is closed in one action and can be reopened.
The part worth copying is how the public page is assembled. It is built by the same exporter that produces the customer PDF, which already strips internal material. Internal notes, cost prices and margin are not hidden from the public view by a permission check — they are structurally absent from what that view is built from. The safest way to stop a public page leaking a field is for the page never to have been given it.
The payload does carry the catalogue lookups, which is what lets a client rotate the 3D model of their own unit without an account.
What the approval trail is actually for
Quote status moves through a defined set of transitions rather than a free-text field: draft to submitted, submitted to review, review to approved or rejected. Items can only be changed while the quote is a draft. Rejecting requires a reason. Every transition is written to a status log with who made it, when, and what they said.
Approving is a separate permission from editing, and the approver role is deliberately built without the ability to edit a quote. That is separation of duties expressed as a permission set rather than as an instruction nobody follows.
A revision copies the current version forward, records why it was raised, marks the previous version as no longer current and returns the quote to draft. The old version is still there. That is what makes a revision visible as a revision — the premise Sazinga Quote is built on, and the reason a governed pricing engine is worth the migration for anyone doing bespoke metal fabrication.
Applications used
Tell us what yours looks like.
Commercial kitchen fabrication is where this one ran, and JK Kitchen had one particular set of constraints. Describe how the same work runs for you — what is done by hand, what arrives late, and what it costs when it goes wrong — and we will say which part of this transfers and which part was specific to them.
Thank you — that has reached us
Your enquiry is with the team. We read every one ourselves and normally reply within one working day.
If it is quicker to talk, reach us directly:
While you wait — the platform overview covers what each application does, and Insights is our writing on building this kind of software.