Kalk: The Door Schedule Prices Itself

Posted: 2026 | Category: Pre-Calculation

One Hundred And Fifty-Seven Doors

The architect’s file arrives on Tuesday. It is a door schedule: a wide table, one row per door, with a plan number like d0-01, a position like “entrance - fitness”, a width, a height, a fire rating, and eleven columns of options marked with an x.

There are one hundred and fifty-seven rows. They are split across four phases. The dimensions are in millimetres, except where they are in centimetres. Three separate columns encode the fire rating. The first fifteen rows are not doors at all, they are a block of project conditions somebody typed above the header.

Two cost columns at the right are empty. Filling them is your job, and the deadline is Friday.

So somebody opens the supplier price lists, and starts. Door one: HPL leaf, block frame, ninety by two-seventeen, panic handle, EI30. Look up the base. Add the fire surcharge. Add the handle. Multiply by nothing because this one has no discount. Type it in. Door two.

By door forty you are making mistakes. By door ninety you are copying the row above because it looks similar. And when the supplier raises prices in March, every quote you produced becomes a document you can no longer explain.

A printed door schedule spread across a joinery bench under a clamp lamp, a hand with a pencil halfway down the rows, sawdust across the paper A hundred and fifty-seven rows, and the two columns that matter are the empty ones.

Quoting From Memory Is A Structural Problem

This is not a discipline problem.

It is what happens when the price of a thing depends on eight properties of that thing and the relationship is stored in a person’s head.

The symptoms are always the same:

  • Only one or two people can quote, because only they know the surcharges
  • The same door gets two different prices in two different quotes, and nobody can say which was right
  • A price change means re-quoting by hand, or quietly not re-quoting at all
  • When the client asks why the door costs that, the answer is a shrug and a re-check

And the estimate that came out of it is the number the whole project is measured against for the next eight months.

How We Glued It Shut

Kalk is a pre-calculation platform for interior construction. The price falls out of the dimensions and the options, because the rules that make the price are stored as data instead of memory.

Step 1: The catalog holds the pricing logic. An element type, doors first, has parameters: dimensions like width and height, enums like leaf type and fire rating, and boolean options like a panic handle. Against those parameters sit pricing rules. A base rule sets the starting price for a combination. Surcharges add on top, as a fixed amount, per square metre, or per linear metre. Multipliers apply a percentage. Every rule is editable in the browser by the person who actually knows the prices.

Step 2: The architect’s file goes in. Excel and PDF both. The importer knows that architects name columns differently every time, so it maps them tolerantly. It reads three fire-rating columns into one value, treats an x in an option column as true, picks up the “FASE 1” rows and applies the phase to everything below, converts millimetres to centimetres, expands the legend the architect invented, and throws away the condition text above the header. Unknown columns become a warning in the import report, never a crash.

Step 3: You check it before it becomes real. The import wizard shows the parsed rows first, with a confidence score per row and a list of things it had to guess. You can also export a cleaned, already-priced version of the schedule to look at in Excel before committing anything. Nothing enters the database until a human says yes.

Step 4: The prices compute, with the reasoning attached. Every line gets a base price, its surcharges, a unit price and a line total. Alongside them sits the full trace: which rules matched, what each one contributed, in what order. Click a row and read why it costs what it costs.

Step 5: Flags catch the things worth catching. A line with no matching base price. A dimension outside every bracket. A required parameter that was never filled in. An option value the catalog does not recognise. They surface as badges on the row rather than as a wrong number in a total.

Step 6: Review, approve, export. A calculation moves from draft to review to approved. Approving is blocked while blocking flags are open. The export writes the door schedule back out in the original layout with the cost columns filled, so it drops straight back into the specification document it came from.

with a traceanything unknownDimensionsOptionsMaterialRulesCalculateFlagged for a humanPrice
Dimensions and options go in one side; a base price, its surcharges and a line total come out the other, with the rules that produced them attached.

What Is Actually In It

A Pricing Engine You Can Audit

  • Base rules, surcharges and multipliers, evaluated in a defined order
  • Computed in integer cents, never floating point, because a rounding error in a quote is a real euro
  • Every applied rule stored with the line, so an approved calculation can be explained a year later

Price History That Does Not Rewrite The Past

  • Changing a price closes the old rule and opens a new one, rather than overwriting
  • Calculations you already approved keep the prices they were approved with
  • Recalculating at today’s prices creates a new version of the calculation, side by side with the old one

AI-Assisted Import, With A Human In Front Of It

  • Excel through a deterministic parser; the language model only maps columns
  • PDF through local text extraction first, falling back to OCR when the text layer is empty
  • Long documents are split by page and extracted in parallel, so a hundred-and-fifty-row list does not truncate
  • Every row carries a confidence score, and every guess the model made is listed as a hint

A Door Studio For The One-Off

  • A live configurator that draws the door as a shop elevation while you set the parameters
  • The price and the breakdown update as you change them
  • Useful for the phone call where somebody asks what one door would cost

A joiner steadying a door blank on trestles in a busy workshop, offcuts and shavings around their boots Doors went first because doors hurt most, not because the model is door-shaped.

Search, Because They Asked For It First

  • Full-text search across the catalog: rules, element types, parameter labels
  • Search across line items from every project, with facets on the parameter values
  • Finding the last time you quoted a fire-rated double door is a search, not an archaeology project

Workspaces And Roles

  • Admins manage prices and parameters, calculators build quotes, reviewers approve
  • All data scoped per workspace, single sign-on through DASH

Who This Unsticks

Interior Builders And Joineries

You quote from tender documents that arrive in whatever shape the architect felt like. Kalk turns the shape into rows, and the rows into prices, with the reasoning attached.

The Person Who Owns The Prices

Usually one person, usually with the supplier lists open. Kalk gives them a browser instead of a spreadsheet, and a history instead of an overwritten cell.

Whoever Signs Off On The Estimate

Flags instead of surprises. A trace instead of trust.

And a version of the calculation that is frozen at the moment it was approved.

Built With De Laere Decor

Kalk is built with De Laere Decor in Wevelgem, an interior-building and custom-furniture company, on their real door schedules. The import was calibrated against files that actually arrived from actual architects, in all their inconsistency, rather than against a clean sample somebody made up.

The first element type is doors, deliberately. The model underneath is not door-shaped: parameters, rules and quantity bases work equally well for anything priced per square metre or per linear metre. Doors are simply the thing that hurt most, so doors went first.

Get Started

Still pricing a hundred and fifty doors by hand? Still unable to explain a quote from March?

Let the schedule price itself.

Visit kalk.glue.blue, drop in a door schedule, and watch the cost columns fill in with the reasoning attached to every line.


Kalk is built by glue.blue - we stick solutions to problems. Permanently.

Ready to stop quoting from memory? → Get Started → Contact Us

Posted in: Pre-Calculation, Interior Construction, AI Tools, Quoting