
Fit-out · Refurbishment · CAT A and CAT B
They sent you a spreadsheet with an empty rate column.
A fit-out package almost never arrives as a drawing on its own. It arrives as a schedule of works, itemised by somebody else's QS, with a rate column and a total column waiting for you. BuiltUp prices every line and gives you back the same workbook. Their sections, their item references, their wording, in their order.
No card. Three AI estimates on the free plan, enough to price a schedule you have already priced by hand and read the two side by side.
How the job reaches you
The round trip that exists for no reason.
Here is what normally happens. Their schedule comes in as an .xlsx. You cannot price in it, because your build-ups live somewhere else, so you copy the descriptions into your own sheet. You price there. Then you copy the numbers back into theirs, one cell at a time, hoping the row order has not moved. The whole round trip exists because your estimating tool and their tender document are different shapes.
BuiltUp does not rebuild their document. It opens the workbook you uploaded as the file it is, writes the rate, total and comment cells in place, and closes it again. Column widths, merged cells, their headings, their logo block, their borders and their formulas are all still theirs, because nothing was reconstructed. The file you uploaded is kept exactly as it arrived. The priced copy comes down under its own name, so there is never a version of the client's document that has quietly changed underneath them.
Upload their workbook, however it is laid out
It reads .xlsx, .xlsm, .xlsb, .xls, OpenDocument .ods, Numbers, CSV and TSV. It finds the header row wherever it is. Most schedules carry a title block, a project name and a blank row before the columns start, and maps item reference, description, quantity, unit, rate, total and comments from whatever they happen to be called. A schedule with no header row at all is read positionally rather than refused.
Row identity is recorded, not tidied up
Section headings, item references like 11.2 or 17.9, notes and continuation lines are all kept with their true spreadsheet row numbers. Source order is the order. Nothing is inferred and nothing is re-sorted, because the entire point is that you can read the return across against the original.
Every line priced off your rates, or left blank with a reason
Provisional sums, prime cost sums, contractor-designed items and anything genuinely ambiguous come back with the rate cell empty and "not priced, needs further information" written in the comments column beside them. It is not filled with a plausible number and it is not dropped from the schedule. A wrong rate on a tender is worse than a gap you can see.
Download the priced copy and send it
An Excel workbook comes back filled in, in its own layout, named your-file-BuiltUp-Estimate.xlsx so it can never be confused with theirs in a downloads folder. Cells carrying a formula are skipped rather than overwritten and their =SUM() recalculates the moment they open it.

The estimate behind the package: net, VAT and grand total across the top, every revision kept alongside the figure it was accepted at, and each line showing the material and the labour it is made of.
And when it does arrive as a drawing set.
Fit-out has its own walk, and it reads the coded drawings the way a fit-out estimator does, off the legends, not off a general idea of what a room contains. On a commercial fit-out expect 60 to 150 measured rows across 14 to 16 categories.
- Wall types from the set-out plan, WT01, WT02, in metres and area
- Fire-rated walls called out separately, FD30, FD60, EI30, EI60
- Fire stopping to penetrations through fire-rated elements
- Door schedule read in full: structural opening, leaf, swing, rating, ironmongery
- Floor finish codes, FF01, FF03, with area per zone
- Safety flooring zones, floor drains and waterproofing zones
- Skirting types in linear metres
- Reflected ceiling plan: exposed zones, suspended grid, trims and shadow gaps
- Wall finish codes, hygienic cladding, tiling zones by height
- Joinery by J-code, counters, benches, cabins, displays
- Kitchen equipment and extract on an F&B package
- HVAC, and on offices the CAT A against CAT B split where the drawings imply one
- Workstation positions and the small power and data drops they imply
- Glazed partitions with acoustic ratings, as a separate package from solid
- Fire safety to L1 to L5 coverage where noted, compartmentation
- Frontage: fascia, illuminated signage, awning, graphics, rear penetrations
Every measurement carries HIGH, MEDIUM or LOW confidence, and the takeoff also returns the work grouped into trade packages you can send out as enquiries.
The three that decide a fit-out tender.
Speed matters, but it is not what loses these. What loses these is a number you cannot defend when their QS rings up about line 47.
- The handback, in their file
- This is the whole thing. You do not send back a PDF of your system's idea of their schedule. You send back their schedule. Their QS opens the file they issued and finds their own layout with two columns filled in, which is the difference between being easy to award and being hard work. We looked at around thirty-five products in this category and did not find another one doing it; that is what we found, not a claim about what exists.
- Three ways to read the same estimate
- The working grid, the same numbers arranged as the document you uploaded so you can read across, and a comparison of BuiltUp's figure against your own estimator's and against the final account. The two variances are kept apart and never averaged, because one measures the method and the other measures how the job went. There is a test in the product asserting no combined figure is ever produced.
- Rates that hold their shape
- Prelims stay prelims. Provisional sums stay provisional sums. A discount reduces the net and carries the VAT down with it proportionally, and a job mixing 20% standard-rate work with 5% reduced-rate work keeps its mix all the way through to the invoice, which shows the amount charged at each rate rather than one merged VAT line.
One real job
A client sent a 33-item schedule of works. It came back priced to within about 6% of their own estimator.
Not a drawing. Their spreadsheet, with a rate column left empty. BuiltUp priced all 33 items and returned the same document: their sections, their item numbers, their wording, in their order. Their estimator had already priced it by hand. The two totals were within about six per cent of each other.
That is one job, not a benchmark, and we are not going to present it as one. What lands on your schedule depends on your own rates, and you should check it against your own figures before it reaches a client, which is exactly why it comes back in a document you can read line by line.
How the handback worksWhat it will not do for you.
- Only an Excel workbook can be handed back as itself.
- A CSV, an OpenDocument sheet or a legacy .xls is read and priced on screen and you can work with it and export from there, but the fill-and-return in the original layout is .xlsx and .xlsm only. If your client sends an .ods and you need their layout back, ask them for the Excel version.
- It needs the original file kept.
- The export works by opening the workbook you uploaded. If that upload was not retained, the handback refuses rather than rebuilding an approximation. You re-upload the specification and generate the estimate again.
- It will not price a schedule that has nowhere to write.
- If their sheet carries no rate column and no total column, the export stops and says so. That is a schedule of works without a pricing column, which is a different document, and quietly adding a column to somebody's tender return is not a thing software should do on your behalf.
- It will not guess.
- The blank lines with a reason are the feature, not a shortfall. You still have to read them and make the call, and you should still check it against your own figures before it reaches a client.
Questions this comes with.
- What actually happens to my client's file?
- Nothing. It is stored privately and byte-identical and is never written back to. What you download is a copy with the rate, total and comment cells filled in. The two files have different names so they cannot be confused. A schedule of works is a confidential commercial document and it is treated as one. If you need the detail on hosting and retention before you upload a live tender, ask us, and we will tell you what is actually true rather than what sounds reassuring.
- Does it price at cost or at price?
- At price. The export defers to the quote engine so your markup is applied. An earlier version handed the client a workbook priced at cost, which is recorded in the code comments as the bug it was. Your build-up sits behind each line so you can see what the number is made of.
- Our packages come with a BoQ, not a schedule of works.
- The parser does not care what it is called. It maps item reference, description, quantity, unit, rate, total and comments from whatever the columns are named and keeps the section structure as issued. A bill of quantities with quantities already stated is, if anything, an easier input than a schedule of works without them.
Upload the last schedule you priced by hand.
You already know what the total should say. That makes it the only first test worth running.
No card. Three AI estimates on the free plan, enough to price it and reprice it twice.
Or set it up with us, 30 minutes, screen-shared