Install & open
BillMate installs like any other desktop app on Windows, Mac and Linux — or opens straight in your browser on a phone or tablet. There is no account and no server either way.
On Windows, Mac or Linux
- Download the installer for your system
From the link in your purchase email or the download page — Windows, Mac or Linux. Each is a normal installer for that system, not a shared download.
- Run it
The same as installing any other desktop program: follow the prompts. Windows or macOS may show a first-run security notice for a new publisher — that's normal; allow it to continue.
- Launch BillMate
From the Start Menu (Windows), your Applications folder (Mac), or your application launcher (Linux) — it opens as its own window from here on, not inside a browser tab.
On a phone or tablet
- Open BillMate in your browser
Visit the link from your purchase email or the download page. On iPad or iPhone, Safari works best.
- Add it to your home screen
Safari: Share → Add to Home Screen. Chrome: ⋮ → Add to Home screen. It then launches full-screen with no browser chrome, which is the better way to work on site.
Your desktop install and anything you open on a phone or tablet each hold their own separate projects — nothing syncs between them automatically. That is deliberate: your data lives on the device, not on a server of ours. Move work between them using backup files.
Everything except the AI assistant works with no connection at all. The first time BillMate runs it fetches its typefaces from the web; after that it works offline, and if it can never reach them it simply falls back to your system fonts. Your bills are never affected either way.
First-run setup
The first time you open BillMate it asks for your firm's defaults. Every new project inherits them, and you can override any of them per project later.
You can reopen this at any time from ⋮ → Region, currency & firm.
| Field | What it does | Advice |
|---|---|---|
| Language | Translates the interface. | Six languages. Arabic switches the whole layout right-to-left. |
| Translate technical terms | When on, terms like Preliminaries and Taking-off appear in your language. | Leave off. Most surveyors read these as fixed terminology, whatever language they work in. |
| Firm / QS name | Printed as the letterhead on every exported BOQ. | Set this before your first export — it is the top line of the client's document. |
| Region / market | Anchors AI rates and item wording to a real place. | Be specific. Kumasi, Ghana prices far better than Ghana. |
| Default currency | Currency for new projects, and the precision of every figure. | 14 currencies. Decimal places follow the currency — Kuwaiti dinar shows three, not two. |
| Measurement | Metric (m, m², m³) or Imperial (ft, ft², ft³). | Drives the dimension sheet units and what the AI measures in. |
| Default tax | The label on the tax line: VAT, GST, Sales Tax, Tax or None. | Pick the name your clients expect to read. |
| Tax rate % | Applied after preliminaries and contingency. | Set 0 and label None if you bill exclusive of tax. |
| Default section template | The starter breakdown for new projects. | See Sections for the seven templates. |
Enter your firm name and a specific locality. These two fields do more for the quality of your output than anything else in the dialog — one becomes your letterhead, the other is what keeps AI rates in the right market and the right order of magnitude.
Your first bill
A complete run through, end to end. Ten minutes, using a real substructure as the worked example.
- Name the project
Press Edit on the project card. Fill in the project name, client, location and date. These print in the header of the issued bill.
- Open a section
Your new project already has sections from the template — Substructure, Superstructure, Roofing and so on. Click a section header to open it.
- Add your first item
Press Add item. Type the description the way it should read on the bill, choose the unit, then enter the quantity and rate.
Worked exampleDescription Unit Qty Rate Amount Excavate trench not exceeding 1.50m deep, wheel, deposit and level spoil on site m³ 120 4,500 540,000 - Measure it properly instead of guessing
Rather than typing
120, press the taking-off icon on the row, enter your dimensions, and cast the result into the quantity. You then have the working measure on file. See Taking-off. - Build the rate up instead of guessing
Press the build-up icon and enter material, labour and plant per unit plus your overhead and profit percentages. BillMate calculates the all-in rate and remembers the breakdown. See Rate build-ups.
- Keep the rate for next time
Once the bill is priced, open ⋮ → Rate library and press Capture from this bill. Every rate you keyed is now available to price your next job in one click. See The rate library.
- Set your percentages
On the project card, set Preliminaries, Contingency and the tax rate. They apply across the whole bill — see Percentages & totals.
- Issue it
Export BOQ opens your browser's print dialog — choose Save as PDF. Export CSV gives you the same bill as a spreadsheet. See Exporting.
- Back it up
⋮ → Backup all data. Do this at the end of every working session. See Backups & data safety.
The screen explained
| Area | What it holds |
|---|---|
| Top bar | The project switcher, the live grand total, the language button, and ⋮ for the main menu. |
| Project card | Name, client, location, date, currency, method of measurement, and your plan badge. Three coloured buttons sit beside the name: amber Tender (tender analysis), green Post-contract (valuations, variations and the final account) and blue Edit (the full project details). |
| Percentage strip | Preliminaries, Contingency and Tax. Type straight into them; totals update as you type. |
| Sections | One collapsible block per element or trade, each showing its item count, its sub-total, a bar for its share of the bill, and a red badge counting items with a quantity but no rate. |
| Bill summary | The dark card at the bottom: measured work, the percentage lines, and the grand total. |
| Basis of estimate | Appears under the summary when there is anything to declare — your price basis, plus automatic warnings about unverified or ageing rates. |
| Bottom bar | Export CSV and Export BOQ. |
The row tools
Every item row carries these, at the right on a computer and below the figures on a phone:
Projects
Click the project name in the top bar to open the project list. From there you can switch, rename, delete, or create a new project.
| Task | How |
|---|---|
| Switch project | Top bar → tap the project name in the list. |
| New project | New project. Choose a name and a section template. |
| Rename | The pencil beside a project in the list. |
| Delete | The bin beside a project. Asks first, and cannot delete your last project. |
| Edit details | Edit on the project card — client, location, date, currency, measurement system, region, method of measurement, tax, and basis of estimate. |
The free plan holds two projects. Everything in those two projects works fully — measurement, taking-off, build-ups and the whole rate library. What Pro adds is unlimited projects, the exports, and the AI assistant. See Free vs Pro.
Each project carries its own currency, measurement system and tax settings, so you can price a job in Nigeria and another in the UAE from the same install without touching your defaults.
Sections
A section is an element or a trade — the level a client reads sub-totals at.
- Add — Add section / element at the bottom of the bill.
- Rename — click the section name and type. It saves when you click away.
- Reorder — the up and down arrows in the section header. The section keeps everything inside it.
- Collapse — click anywhere on the header. Collapse state is remembered, and exporting no longer disturbs it.
- Delete — Delete section inside the section. Asks first, then offers an undo.
Section templates
A new project starts from one of these. You can rename, add and delete sections afterwards, so treat the template as a starting point rather than a commitment.
| Template | Use it for |
|---|---|
| Elemental (general) | A straightforward elemental breakdown. The default. |
| NIQS BESMM4(R) (Nigeria) | The Nigerian standard method of measurement, building and civil engineering works. |
| RICS POMI (International) | Principles of Measurement (International), widely used across the Gulf. |
| RICS NRM1 elemental (UK) | Order of cost estimating and cost planning. |
| RICS NRM2 measured works (UK) | Detailed measurement for building works. |
| CPWD / DSR (India) | CPWD specifications and Delhi Schedule of Rates conventions. |
| ASAQS / SMM (South Africa) | ASAQS Standard System of Measuring Building Work. |
| CSI MasterFormat (US/CA) | North American division structure. |
| Trades (generic) | A trade-by-trade breakdown with no standard attached. |
Seven of these are recognised methods of measurement. When one is set, the AI is told to measure, name and word every item in compliance with it — so the choice changes the output, not just the starting list. The template also prints on the bill, which tells a client's QS how to read your measurement.
Items
Each row is one measured item: a description, a unit, a quantity, a rate, and the amount BillMate calculates from them.
Keying items quickly
- Tab moves across the row and on to the next. Totals update as you type.
- Amounts, sub-totals, the section share bars and the grand total all recalculate live.
- A rate cell highlighted in amber means the item has a quantity but no rate. The count of those appears as a red badge on the section header, so nothing unpriced can hide inside a collapsed section.
- Duplicate copies the description, unit, quantity, dimension sheet and build-up — the fastest way to bill a family of similar items.
- Delete is immediate but offers Undo for eight seconds. There is no confirmation dialog, because deleting rows is something you do dozens of times a session.
The description cell is one line on screen, so a properly worded item looks cut off. It is not — the printed and exported bill carries the full text, wrapped, with the item reference in its own column. Write the description the way it should read on the client's document and ignore how much of it the cell shows.
Units
Pick from the unit dropdown. The list covers metric, imperial and the units a surveyor meets outside the SI set:
| Group | Units |
|---|---|
| Metric | m · m² · m³ · mm |
| Imperial | ft · ft² · ft³ · yd · yd² · yd³ · in |
| Count | nr · no · item · set |
| Weight | kg · lb · tonne |
| Lump | sum · LS · % |
| Time | hr · day · wk · month |
| Trade | litre · bag · trip · roll |
You never have to normalise unit spellings by hand. cum,
cu.m, m3 and cubic metre all become
m³; sqft, sft and ft2 all become
ft²; nos, each and pcs all
become nr. This runs on spreadsheet imports and on AI output alike.
Provisional & prime cost sums
Work that is genuinely required but cannot be measured yet — a statutory connection, a specialist sub-contract package, the prime cost of ironmongery.
- Add an ordinary item and write the description
For example, Statutory water authority connection and meter.
- Open the unit dropdown and choose the sum type
Below the measured units there is a Sums group with Prov. sum and PC sum.
- Enter the sum in the rate column
The quantity locks to 1, so the amount is the sum itself. The row is tinted and tagged so it cannot be mistaken for measured work.
On the issued bill the description is prefixed Provisional Sum — or
Prime Cost Sum —, the unit prints as sum, and the bill summary
gains a line reading — of which provisional & PC sums. Sums are
part of the measured total; that line simply tells the client how much of the price
covers work that has not been defined yet.
A provisional sum is a figure for one job, not a reusable unit rate, so Capture from this bill and Apply to this bill both skip them. Nothing will ever overwrite a sum you have entered.
Taking-off
The dimension sheet behind a quantity — the working a QS is asked to produce when a figure is queried.
- Open the sheet
Press the taking-off icon on the item row.
- Choose what you are measuring
Linear (length), Area (length × width), Volume (length × width × depth) or Number (counted). The dimension fields change to match, and units follow the project's measurement system.
- Enter each dimension set
Times multiplies the set — enter
4for four identical columns. Leave it blank for once. Label the row so the sheet still makes sense in six months: external walls grid A–D. - Deduct openings and voids
Mark a row Ddt and it subtracts instead of adding. The row turns red and its result shows negative — the standard way to handle a door, window or void.
- Cast it into the bill
Cast to quantity writes the net total into the item's quantity and sets the unit to match what you measured. A small dot appears beside the quantity to show it came from a measure rather than a keystroke.
| Times | Label | L | W | D | Result |
|---|---|---|---|---|---|
| 2 | External walls, long sides | 12.50 | 0.90 | 1.50 | 33.75 |
| 2 | External walls, short sides | 8.20 | 0.90 | 1.50 | 22.14 |
| 1 | Ddt — soakaway already excavated | 2.00 | 2.00 | 1.50 | −6.00 |
Net quantity 49.89 m³ → cast into the bill
The dimension sheet is stored with the item and travels in your backups, but it does not yet appear in the printed BOQ or the CSV. If a client's QS asks for your taking-off, you will need to show it on screen for now.
Measuring on screenPro
Instead of typing dimensions, measure them off the drawing itself.
- Press Measure on screen on the dimension sheet
Load the drawing: a PDF, a photo or a screenshot — or paste one from the clipboard. A multi-page PDF asks which sheet to open. The PDF reader downloads once, the first time you open a PDF, and works offline after that. Password-protected PDFs will not open.
- Set the scale
Choose Scale, tap both ends of a dimension you already know — a grid line or an overall dimension — type its real length and press Set scale. Once per drawing is all it needs.
- Measure
On a plan, the enclosed rooms are found and measured for you and listed under Measurements. Otherwise use Line, Rectangle, Area or Count. Ortho and Snap keep lines straight and on the corners. Mark a measurement Ddt to deduct it, or remove anything that is not what you are measuring.
- Press Cast to dim sheet
Each measurement arrives as an ordinary dimension line, where it can be checked, then Cast to quantity as usual.
Rooms found automatically are only as good as the drawing and the scale: a room missed or split in two, or a wrong scale, will be wrong in every figure. Compare them with the drawing before you cast. A DXF does not need this: Take off from a DXF drawing reads the CAD file in its own units (save a DWG as DXF first).
Taking off from a DXF drawingPro
A CAD drawing carries its own scale, so there is nothing to calibrate: lines are measured at their real length, in the drawing's own units. The file is read on your device and never uploaded.
- Press Take off from a DXF drawing on the dimension sheet
Choose the
.dxf. Have a DWG? Open it in your CAD program and use Save As → DXF; any DXF version works. The drawing stays with the project, so the next item opens straight onto it; Another file swaps it. - Check the units
The Units box shows what the file says it is drawn in. If the file does not say, BillMate guesses from the drawing's size and tells you so: measure a dimension you know before you add anything.
- Pick what you are measuring
In Pick mode, tap a line to pick it, or tap inside a closed outline — a room — to pick the room. The Layers list picks or hides a whole layer and shows each layer's total length and outline area; the Blocks list counts every insert of a block, so all the D-900 doors are one tap. Drag to move, pinch or scroll to zoom.
- Or measure a path
In Measure mode, tap points along the drawing; they snap to its corners and ends. Tick Closed shape to take the area it encloses.
- Press Add to the sheet
What lands depends on the item: total length for Linear, outline area for Area, a count for Number. Picked lines on an Area or Volume item are multiplied by the height, width or depth you type under the drawing — wall length × storey height for plaster, for instance. There is one row per layer, or per block for a count, each with a note naming the file and layer.
Lines, polylines (arcs measured exactly), circles, arcs, ellipses, splines, hatches (areas, with islands deducted) and blocks, including nested and arrayed ones. Dimension linework is drawn but never measured. 3D solids, external references and images are ignored, and a wall drawn as two lines is two lines: BillMate does not guess at walls or rooms from the linework.
Quantities from an IFC modelPro
A BIM model can be exported with its own quantities — the lengths, areas, volumes and counts the authoring tool worked out. BillMate reads those and totals them; it does not compute anything from the 3D shapes.
- Export a plain
.ifcwith base quantitiesFrom Revit, ArchiCAD, Tekla or Allplan, switch on Export base quantities (or your tool's equivalent). Without them the model still opens, but only counts are available, and the screen says so. Zipped
.ifcZIPand.ifcXMLfiles are not read. - Press Take off from an IFC model on the dimension sheet
Elements are grouped by class and type — Wall · Exterior 200, Door · 900 × 2100 — with rooms grouped by their name. Choose a Level to take one floor at a time.
- Tick the groups and choose the quantity
Only quantities of the kind the item measures are offered: lengths for a Linear item, areas for Area, volumes for Volume, element counts for Number. Net figures come before Gross.
- Press Add to the sheet
Each ticked group becomes one row: the total over its elements, with a note naming the model, the type, the quantity and, where some elements lacked it, how many carried it.
Exporters do get quantities wrong. A Gross figure more than five times its Net partner is marked ⚠ — a real Revit export was seen with every slab's gross volume a thousand times its net. Check anything marked against the model before you rely on it.
Rate build-ups
The constituents behind an all-in unit rate — what a client's QS will ask you to justify.
- Open the build-up
Press the build-up icon on the item row.
- Enter the cost per unit
Material delivered, including waste and laps. Labour as the gang cost per unit, from the local daily wage and a realistic output constant. Plant / equipment for hire, fuel and small tools — zero if the item is hand-worked.
- Add overhead and profit
Both are percentages. They default to 10% and 15% until you set your own.
- Apply it
Apply rate to item writes the calculated rate onto the bill and keeps the breakdown. The build-up icon turns solid to show there is working behind that rate, and reopening it shows your figures rather than a blank form.
How the rate is calculated
Net cost = material + labour + plant
Overhead = net cost × overhead %
Profit = (net cost + overhead) × profit %
Unit rate = net cost + overhead + profit
| Material | 4,800 |
| Labour | 1,600 |
| Plant | 100 |
| Net cost | 6,500 |
| + Overhead 10% | 650 |
| + Profit 15% | 1,072.50 |
| Unit rate | 8,222.50 |
If you type a different rate straight into the bill, the stored breakdown is removed and the icon stops claiming there is working behind the figure. That is deliberate: a breakdown that no longer adds up to the rate on the bill is worse than no breakdown at all. Applying a library rate does the same.
Like the dimension sheet, build-ups are stored and backed up but are not yet included in the printed bill or the CSV export.
Building rates from resource prices
Instead of typing a material or labour figure, build it from prices you keep once — a bag of cement, a tonne of sand, a mason's day — so that when a price moves, every rate built from it moves too.
- Add your prices under ⋮ →
Resource prices
Each has a name, a unit, a price and a type: material, labour or plant. They are kept on this device and shared by every project in the same currency.
- In a rate build-up, press Add a resource
Choose the resource, then the quantity of it one unit of the item takes and any waste percentage — e.g. 7 bags of cement per m³ of concrete, with 5% waste. The resource lines are added to the material, labour and plant figures.
- When prices move, review the rates
After you change a resource price, Resource prices shows how many rates are built from prices that have changed. Review brings them up to date in one step. Bills whose contract has been let are left alone — change those through a variation.
The materials & labour schedule
⋮ → Materials & labour schedule (also a card on the home screen) multiplies every resource-built rate out over the bill, in three tables: the cement, sand, blocks and steel to order, waste included; the labour in hours and man-days; and the plant in hours and plant-days — each with its cost. Man-days are hours divided by the Working day at the top, 8 hours unless you change it; only resources priced by the hour or the day have hours to count.
Below the tables, every measured item with no resource build-up is listed with the reason — no rate yet, a rate typed in, an AI rate, a library rate — and the share of the priced work they make up, so you can see what the schedule does not cover. Print it, or download an Excel workbook with materials, labour, plant and the items not included on separate sheets; the man-day formulas follow the working-day cell.
The rate library
Your own unit rates, held on this device and reused across every project. This is the single biggest time-saver in BillMate, and it is available on the free plan.Free
Open it from ⋮ → Rate library.
A language model's unit rates are an educated guess against training data that is months to years out of date and never local enough. The rates a working surveyor already holds are the real thing. So the library is treated as authoritative everywhere the two meet: it prices your bill directly, and it is handed to the AI as the price basis instead of the AI being trusted to invent one.
Importing your rates
You almost certainly have a priced schedule in a spreadsheet already. Bring it in once.
- Press Import rates
- Give it your data
Either Choose a CSV file… (up to 8 MB), or select the cells in Excel or Google Sheets, copy, and paste into the box. A pasted block arrives tab-separated and is read the same way. Comma files, semicolon files and quoted descriptions containing commas are all handled.
- Match your columns
BillMate reads your header row and pre-fills the mapping — and it knows that a column headed Unit Rate is the rate, not the unit. Correct anything wrong with the dropdowns above each column. Description and Rate are required; unit, currency, region and note are optional. Untick First row is a header if your file has no headings.
- Set the currency
Any row without its own currency column takes the currency you choose here. This matters — a rate is only ever applied to a bill in the same currency.
- Import
The button tells you exactly how many rates will land, and the summary tells you how many rows were skipped for having no description or no rate — so trade headings and blank spacer rows never disappear silently.
The minimum your spreadsheet needs
Description,Unit,Rate
Excavate trench not exceeding 1.50m deep,cum,4500
150mm solid blockwork in walls,sqm,"8,200.00"
Reinforcement, high yield bars,kg,1450
Column order does not matter — you map them. Numbers may carry thousands separators, currency symbols and decimal commas.
Pricing a bill from the library
All at once
Apply to this bill matches every item and shows you a preview before anything changes. Each proposal is labelled:
- Exact — the same item, allowing for wording and punctuation.
- Similar — close enough to offer, worth a glance.
- Stale — the library rate is over a year old.
Unpriced items are ticked by default and items you have already priced are not, so the safe action is the default one. Only unpriced, Select all and Select none adjust the selection, and the whole operation has a single undo.
One row at a time
The library icon on a row turns green when your library covers that item. Press it to search your library and pick a rate. Applying one sets the rate and the unit together.
Automatically, on AI-generated items
When the AI generates items for a section, any that match your library are priced from it immediately, and a message tells you how many.
Capturing rates you have already keyed
Capture from this bill adds every priced item on the open project to your library. Rates for the same item and unit are updated rather than duplicated.
Two things are deliberately excluded: AI-estimated rates, because taking those in would launder a guess into your own price list, and provisional and PC sums, because they are job-specific.
How matching works
Worth understanding, because it decides what lands on your bill:
| Rule | Effect |
|---|---|
| Wording is flexible | Excavate trench not exceeding 1.50m deep matches Excavation to trenches not exceeding 1.50 m deep. Word order, punctuation, plurals and verb endings are all ignored. |
| Numbers must agree | A 3.00m-deep trench will never inherit the 1.50m rate, and 225mm blockwork will never inherit the 150mm rate. Dimensions are what distinguish items, so any difference in the figures rules a match out entirely. |
| Unit must agree | A rate per m² is never applied to an item measured in m³. |
| Currency must agree | Nothing is ever converted. A rate in one currency is never applied to a bill in another without asking you first. |
Managing and moving the library
- Search — filter by description, unit or region.
- Edit a rate — type a new figure straight into the list. It re-dates to today.
- Delete — the bin on the row, with an undo.
- Export as CSV — the whole library as a spreadsheet, ready to share with a colleague or import on another device.
- Clear library — asks first, and offers an undo. Export a copy before you do this.
Your library also travels inside every backup file, and restoring a backup merges rates rather than replacing them — so restoring a colleague's backup will not wipe the price list you already hold.
Keeping rates current
A schedule priced eighteen months ago is not slightly wrong. It is wrong by whatever inflation and exchange movement has done since — and it is far easier to trust by mistake than an AI rate.
Age is always visible
Every rate in the library shows its real age: priced this month, 14 months old, 2 years old. Anything over 12 months is flagged stale in the library, in the apply preview, and — the part that matters — on the printed bill, where the basis of estimate records how many priced items rely on ageing rates.
Uplifting a schedule
This is the annual job every surveyor does by hand in Excel.
- Press Uplift rates
Either from the stale-rate banner or from the buttons under the list.
- Enter the percentage
How much prices have moved since these rates were set. Negative values reduce.
- Choose what it applies to
All rates, Only rates over 12 months old, or Only rates in your project's currency. Add a text filter to narrow further — concrete, blockwork, Lagos.
- Check the preview, then apply
You see real before-and-after figures on actual rates. Applying re-dates them to today, so they stop being flagged stale, and the whole operation has one undo.
A percentage of zero changes no figures — it only re-dates the rates you selected. That is how you record "I have checked these against the market and they are still right", which is the other half of keeping a library honest.
BillMate applies whatever number you give it. If you do not know what your market has done since the schedule was priced, the honest move is 0% — re-date only the rates you have actually checked, and leave the rest flagged.
AI assistancePro
Useful for drafting scope and wording items quickly. Treat its rates as a starting point, never as a price you can issue.
Connecting a key
The AI features need a Groq API key of your own. BillMate has no server of its own, so the key is yours and the request goes straight from your device to Groq.
- Create a free account at
console.groq.com - Create an API key and copy it
It begins
gsk_. - Paste it into BillMate
⋮ → Groq API key for AI, paste, and Save key. It is stored on this device only.
Full BOQ generator
Drafts an entire bill from a description of the works. Reach it from AI Full BOQ Generator at the bottom of the bill.
Generating a full BOQ overwrites every section and item in the open project. If there is existing work it asks first, and there is an undo afterwards — but start a new project if you are in any doubt.
| Field | What to enter |
|---|---|
| Project scope | Structure type, size, standard of finishes, any specific structural style. "4 bedroom bungalow, high-quality finishes, standard raft foundation". |
| Locality / region | Be specific. A city and country prices markedly better than a country alone. |
| Currency | What the rates come back in. |
| Measurement system | Metric or imperial. |
| Standard / method | Sets both the section names and the measurement rules the AI must follow. |
| Where the rates come from | The most important choice — see below. |
The three rate modes
| Mode | What happens | When to use it |
|---|---|---|
| My rate library first | Your rates are sent to the AI as the price basis, and are then applied over anything it returns for the same item. The AI only fills genuine gaps. | The default whenever you have a library. Much the most accurate. |
| AI estimates | The AI prices everything. Rates are marked as unverified throughout. | A rough order of magnitude, in a market you have no rates for. |
| Quantities only | Items and quantities are generated; every rate is left blank. | When you intend to price it yourself. Often the best choice. |
Generating items for one section
Generate items inside a section drafts 6–14 properly worded measured items for the element you describe. It never returns rates — you get descriptions, units and quantities, then tick the ones you want. Anything your library covers is priced automatically.
Suggesting a build-up
Inside the rate build-up dialog, ✦ Suggest a build-up with AI fills in material, labour, plant, overhead and profit for that one item, and reports the local anchor prices and output constant it used. Your library rates are included in the brief, so the suggestion stays consistent with your own price level. Check it before applying.
Knowing which rates to trust
Every rate carries its origin, shown as a line under the rate cell:
| Cue | Origin | What to do |
|---|---|---|
| Solid green underline | From your rate library | Trust it as far as its age. Check the basis of estimate for stale warnings. |
| Dotted amber underline | AI estimate, unverified | Verify against your own prices before issuing. |
| No underline | You typed it, or built it up | Yours. |
Typing over a rate clears the marking immediately, because a rate you have keyed is your rate. The counts also print on the bill and appear in the CSV's Rate source column, so provenance survives the document leaving the app.
You are signing it, not the model. Check every amber rate against a real local price, read the basis of estimate the AI wrote and correct it, and confirm the quantities against your own measure. Construction pricing moves with inflation, supply chains and haulage; a model cannot know what happened in your market last quarter.
If AI calls stop working
Groq retires models on a schedule. If that happens you will get a clear message
naming the model. Open
⋮ →
Groq API key for AI, and put a current model name in
the AI model field — the list is at
console.groq.com. Leave the field blank to return to the default.
Percentages & totals
The three percentage boxes on the project card apply across the whole bill. They compound in the order shown:
Measured work = sum of every section (including sums)
Preliminaries = measured × prelim %
Contingency = (measured + preliminaries) × contingency %
Sub-total = measured + preliminaries + contingency
Tax = sub-total × tax %
Grand total = sub-total + tax
Because BillMate applies these itself, your unit rates should be all-in for material, labour, plant, overhead and profit — but should exclude preliminaries, contingency and tax. The AI is instructed the same way, and any preliminaries or contingency section it tries to produce is discarded rather than double-counted.
Every figure is rounded at the point it is produced, to the precision of the project's currency. That is why printed line amounts always add up to the printed sub-total exactly, and why Kuwaiti dinar shows three decimals while Japanese yen would show none.
ExportingPro
You get two exports in total — PDF, Excel or CSV — each marked BillMate · free export, so you can see exactly what a client would receive. Pro exports are unlimited and carry no mark.
The client-ready BOQ
- Press Export BOQ
Every section opens and your browser's print dialog appears. Your collapse state is restored afterwards.
- Choose Save as PDF
Chrome and Edge: Destination → Save as PDF. Safari: the PDF dropdown → Save as PDF. Firefox: Print to File.
- Check the first page
Confirm the letterhead is your firm name and the header carries the right client, location and date.
The printed document differs from the screen in ways that matter:
| Appears only in print | Removed in print |
|---|---|
| Your firm name as letterhead | All row tools and reorder arrows |
| Item references — 1.01, 1.02, 2.01 | The Free/Pro badge |
| Full wrapped item descriptions | Empty sections |
| Provisional Sum — / Prime Cost Sum — prefixes | Rate-origin underlines |
| The basis of estimate block | The "0.00" placeholder in unpriced rate cells |
The spreadsheet
Export spreadsheet offers two formats:
- Excel workbook (.xlsx) — live formulas, so changing a quantity, rate or percentage makes every total follow, with a general summary sheet.
- CSV (plain text) — figures only, for importing into other software.
Both carry these columns:
| Column | Contents |
|---|---|
| Ref | Item reference — 1.01, 1.02 |
| Item Description | Full text, with any sum prefix |
| Unit | Unit of measurement |
| Quantity | Plain number |
| Rate | At the currency's own precision |
| Amount | Quantity × rate |
| Rate source | Rate library (priced 2025-03-14), AI estimate — unverified, Built up or Entered |
Above the table sits a metadata block — project, client, location, date, currency, method of measurement. Below it are the section sub-totals, the full bill summary and your basis of estimate.
It tells a checker exactly which rates are yours, which came from your library and when they were priced, and which are still an AI guess nobody has verified. If you send one file to a colleague for review, send this one.
The file is written as UTF-8 with a byte-order mark, so m², ₦,
accented and Arabic descriptions all open correctly in Excel. Descriptions beginning
with =, +, - or @ are neutralised
so a spreadsheet cannot execute them.
Tender analysisPro
Send the bill out, bring each priced copy back, and let BillMate do the checking you would otherwise do with a calculator: every extension, every total, every item left blank or quietly changed. Tenders are then compared on their corrected sums.
Open it with the amber Tender button on the project card.
1. Send the bill out
- Press Download tender copy (.xlsx)
You get an Excel workbook of the bill with the quantities filled in and the rates blank. Provisional and prime cost sums are already priced — they are the client's, not the tenderer's. The Summary sheet has a line for the tenderer's preliminaries as a lump sum, and carries your contingency as a fixed figure.
- Send the same file to every tenderer
Each row carries a hidden key, so a returned copy matches your bill line for line even if the tenderer inserts rows or re-sorts the sheet. Ask them to price in the Rate column and not to change quantities, descriptions or references.
2. Bring the priced bills back
- Press Import a priced bill
Type the tenderer's name and choose their file — the returned
.xlsx, a CSV or a priced PDF (see below). The file is read on your device; nothing is uploaded. A bill retyped into the tenderer's own spreadsheet still matches on item reference and description, and any row that matches nothing is listed as an item the tenderer added. - Read the checks
Each tender opens on what was found:
| Check | What BillMate does with it |
|---|---|
| Arithmetic errors | Quantity × rate does not give the amount written. The correct figure and the effect on the tender are shown. |
| Summary does not add up | The measured work carried to the summary differs from the sum of the priced items. |
| Items left unpriced or missing | Valued at nothing in the corrected sum. Ask whether each is included elsewhere. |
| Quantities changed | Repriced at the bill quantity — the bill governs. |
| Descriptions altered | Listed with the tenderer's wording, for you to judge. |
| Provisional or PC sums altered | Restored to the bill figure. |
| Items the tenderer added | Left out of the corrected sum and listed as qualifications. |
| No preliminaries figure | Flagged, and taken as nothing. |
Priced bills returned as PDF
Many tenderers print the tender copy, price it and send back a PDF. BillMate reads the text, lays it back out into rows and columns from where each word sits on the page, and matches the lines to your bill — but it never saves what it read without you.
- Choose the PDF in Import a priced bill
The PDF reader is the same one on-screen measuring uses: it downloads once, the first time, and works offline after that.
- Check the review screen
Every bill line is listed with the figures read beside it. A line marked ≈ was matched on its wording and reads differently from your bill; a line in amber was not found. Lines in the PDF that are not in your bill are listed underneath, and the measured-work total, preliminaries and tender sum are filled in where they were found.
- Correct anything misread, then press Accept these figures
Only then is the tender saved, and it is checked exactly like a workbook. Cancel saves nothing.
A scanned PDF is a picture of the page and has no text to read. BillMate says so; ask for the Excel copy, or open the tender and key the rates.
The difference between the submitted and the corrected tender sum is always shown in two parts: the tenderer's arithmetic errors, and the other adjustments the bill itself requires (its quantities and sums restored, added items excluded). Only the first is the tenderer's mistake.
Correct the tender, or let it stand
Where a tender has arithmetic errors, choose Correct the tender (the tender sum becomes the corrected sum) or Tenderer stands by it (the submitted sum stands, and every measured rate is treated as adjusted in the same proportion — sums and preliminaries excluded — as the usual codes of procedure provide). Tenders are always ranked on the corrected figure, so an error can never decide who is cheapest.
3. Compare and report
- Compare ranks the tenders against your pre-tender estimate, section by section and item by item. A rate is flagged when it is 50% above or 40% below the reference — the median tender where there are three or more, otherwise your estimate.
- The estimate is fixed when the first tender is imported, so repricing the bill afterwards cannot move the yardstick.
- Report drafts a recommendation from the figures. Edit it, then Print tender report for a report on your letterhead, or download the Comparison workbook (.xlsx).
4. Accept a tender
Open the winning tender and press Accept this tender. Every rate in the bill becomes that tenderer's rate, preliminaries become their lump sum, and the contract sum is fixed — Post-contract then runs against exactly what was accepted. Your estimate stays in the tender record, and the toast that follows has an Undo button.
Tenders come back as Excel, CSV or a priced PDF. A PDF is read from where the words sit on the page, so it always goes through a review screen first; a scanned PDF has no text and has to be keyed. Once a contract sum is fixed, no tender can be accepted into that project — start a copy of the project for a new tender.
Post-contractPro
Once the contract is let, the same bill carries the job through to the end: interim valuations and payment certificates, a register of variations, price fluctuations, and the final account.
Open it with the green Post-contract button on the project card. It has four tabs: Valuations, Variations, Fluctuations and Final account.
Interim valuations
- Press New valuation
Each valuation records work done to date, not this month's work — that is how it is measured on site and how it is checked. A new valuation starts from the last one's figures.
- Record the work done
Against each item, enter the quantity done to date, or use Mark complete. A figure above the bill quantity is flagged — a remeasurement, or a mistake? Work on approved variations appears after the bill, grouped by variation.
- Add materials on site, preliminaries and retention
Add materials on site for materials delivered but not yet built in. Preliminaries are valued In proportion to measured work or By % complete. Set the retention percentage; at practical completion tick Practical completion — release half the retention.
- Check the certificate, then issue it
The certificate runs gross valuation, less retention, net valuation, less previously certified, to the amount of this certificate and, where the project carries tax, the amount due. Print certificate gives a draft marked DRAFT — NOT CERTIFIED until you press Issue certificate.
Issuing freezes every figure, rate and description on it, so a certificate that has been paid cannot be altered by a later edit to the bill. Only the latest issued valuation can be Reopened. The contract sum is fixed when the first certificate is issued or the first variation is made (or when you accept a tender).
Variations
- Press New variation
Give it a description, the instruction reference (e.g. AI 04) and a date.
- Add the additions and omissions
An Omission picks the bill item being omitted. An Addition is new work: describe it, give a unit, quantity and rate — or price it at an existing bill rate.
- Set the status
Pending, Approved or Rejected. Only approved variations are valued in certificates and adjust the final account; pending ones are shown separately as an anticipated figure.
FluctuationsPro
Where the contract pays for price changes on materials, the Fluctuations tab works them out from what has actually been built in. It uses the basic price list method: for each resource, the quantity built in since the last certificate × (price at the valuation − basic price).
- Press Set the basic price list
It takes today's price of every resource the bill is built from. Change any of them to the prices the tender was actually based on, and set the date.
- Set the terms
Choose what is adjustable (materials by default; labour and plant too if the contract says so), any non-adjustable element to deduct, and whether retention is held on fluctuations. Without that tick, fluctuations are added after retention.
- In each valuation, enter the prices now
The valuation shows each adjustable resource with the quantity built in this period. Type the current price, or press Use my current resource prices. Fluctuations to date then appear on the certificate, with a schedule, and in the final account.
Each certificate works only on the period since the last one, so an issued certificate never changes when prices move again. The basic price list locks once a certificate has carried fluctuations. If you set fluctuations up part-way through a job, they start with the next certificate rather than reaching back over work already paid.
Only rates built from resource prices carry materials, so only they fluctuate. Work on variations is not included. Index or formula methods (such as CPAP, FIDIC 13.8 or CPWD 10CC formulas) are not calculated.
Final account
The Final account tab takes the contract sum as let, deducts the contingency, adds every approved variation, and compares the result with what has been certified to date, leaving the balance to pay. Print statement produces a Statement of Final Account with a line for the contractor's acceptance; each tab also exports an Excel workbook.
Claims and extensions of time
The Claims tab keeps a register of delay and disruption events, and the completion date they move.
- Set the contract dates
Enter the contract start and the original completion date. The revised completion date is the original plus the days granted on every event marked Assessed or Agreed — nothing else moves it.
- Record each event
New event: what happened, whose risk it was (employer's, neutral, or contractor's), the clause, when it began and ended, when it was notified, the days and the loss and expense claimed, what was granted, its status, and notes for the evidence. Notice given more than 28 days after the event began is flagged, so the notice clause gets checked before anything is assessed.
- Bring in the programme (optional)
Import a programme takes an MS Project XML or a Primavera P6 XER. Link an event to the activity it delayed and BillMate shows an indication: the event's length less that activity's total float. It is labelled as a starting point for your assessment and is never written into the days granted.
- Print or export the register
Print register for the meeting file, or Excel (.xlsx) with the totals as formulas.
This is a register, not a delay analysis: there is no critical-path or time-impact calculation, and no contract's own claim forms. The indication compares calendar days of event with working days of float, which is why it is only an indication.
Backups & data safety
Read this section. Everything lives on your device, which is a feature — and it means a backup file is the only copy nobody else can delete for you.
On Windows, Mac or Linux:
- Uninstalling BillMate without backing up first.
- A fresh install under a different user account on the same computer.
On a phone or tablet:
- Clearing your browser's cookies and site data.
- Private or incognito browsing — everything is discarded when you close the window.
- Safari clears storage for sites you have not opened in about a week.
Making a backup
⋮ → Backup all data downloads a single JSON file named for today's date. It contains every project — sections, items, dimension sheets, build-ups — and your whole rate library. Keep it in your cloud drive.
Restoring
⋮ → Restore from backup, then pick the file. It asks first, because restoring replaces your current projects. Your rate library is treated differently: rates are merged, so restoring a colleague's backup adds their rates to yours instead of wiping them.
Moving to a new device
- Back up on the old device
- Get the backup file onto the new one
Email it to yourself, or put it in your cloud drive — it's the one file you need to carry over.
- Install BillMate on the new device (or open it in the browser on a phone
or tablet), then restore
Your licence key activates fresh there too — see Free vs Pro for how many devices your plan covers.
The backup reminder
Once a bill has real work in it, a quiet banner appears if you have never backed up or your last backup is more than a fortnight old. It is dismissible and it is not an error — it is a countdown you can see while everything is still fine. The menu also shows how long ago you last backed up, and how much space BillMate is using on the device.
Back up at the end of every working session, and always before restoring anything or clearing your rate library. It takes one click and one second.
Sync between devicesPro
Keep the same projects, rate library and resource prices on every device on your licence — the laptop at the desk and the phone on site.
- Open ⋮ →
Sync between devices
Set a sync passphrase of at least 8 characters and press Turn on sync.
- On each other device, enter the same passphrase
Changes then go to your other devices a few seconds after you stop typing, and theirs arrive when you open or come back to the app. Sync now forces it.
Your bills are encrypted on the device with the passphrase before they are sent, and BillMate's server cannot read them. Forget the passphrase and the synced copy is lost — the bills on each device are untouched, but nobody, including us, can recover the cloud copy.
It is not live co-editing. If the same project is changed on two devices before they sync, both versions are kept — the other device's arrives beside yours as a copy. Drawings used for measuring on screen are not synced. Sync is not a substitute for a backup file.
Languages
Tap the globe in the top bar, or ⋮ → Language. Available: English, العربية (Arabic), Français, Español, हिन्दी (Hindi) and தமிழ் (Tamil). Arabic switches the entire layout right-to-left.
By default, professional terms of art — BOQ, Preliminaries, Contingency, Taking-off, Rate build-up, unit symbols, VAT and GST, and the names of the methods of measurement — stay in English, because most surveyors read those as fixed terminology whatever language they work in. Turn on Translate technical terms in settings if you would rather have them localised.
Numbers, dates and currency always follow the project's own locale, so amounts render correctly no matter which interface language you are reading.
Free vs Pro
| Feature | Free | Pro |
|---|---|---|
| Projects | 2 | Unlimited |
| Sections, items, reordering | Yes | Yes |
| Taking-off / dimension sheets | Yes | Yes |
| Rate build-ups | Yes | Yes |
| Provisional & PC sums | Yes | Yes |
| Rate library — import, apply, capture, uplift | Yes | Yes |
| Backup & restore | Yes | Yes |
| Export BOQ (PDF), Excel workbook, CSV | 2 in total, watermarked | Unlimited, no mark |
| Measure on screen | — | Yes |
| DXF take-off | — | Yes |
| IFC model quantities | — | Yes |
| Tender analysis, including priced PDFs | — | Yes |
| Post-contract — valuations, variations, claims and EOT, final account | — | Yes |
| Price fluctuations | — | Yes |
| Resource prices and the materials schedule | Yes | Yes |
| Sync between devices | — | Yes |
| AI item generation | — | Yes |
| AI full BOQ generation | — | Yes |
| AI rate build-up suggestions | — | Yes |
Unlocking
- Buy a licence
Open ⋮ → Unlock Pro and press Buy a licence. Once payment goes through we send you a licence key by email or WhatsApp — a short string like
BM-XXXX-XXXX-XXXX. - Paste it in and verify
Paste the key into Licence key and press Verify & unlock. This one step needs an internet connection — BillMate checks the key the first time it sees it on this device. Once verified, Pro keeps working offline exactly like the rest of the app.
An individual licence covers three devices — the computer you work at, the phone or tablet you carry on site, and one spare. You are one surveyor in all of them, so you pay once. There is no rule about which three: a desktop and a laptop is just as valid as a laptop and a phone.
The Team pack is $199 for 5 people on one shared licence key — everyone on the team enters the same key, two devices each, so ten in all. BillMate tracks how many have already been used. Reaching the limit shows exactly how many of how many are taken, so you know before buying a second pack whether you actually need one.
"Device" means one install of BillMate — one computer for the desktop app, or one browser for the mobile version, the same way every other setting in BillMate is stored locally to wherever it's running. That is worth knowing: a second browser opened on the same tablet counts as a device of its own, as does the same browser after its site data has been cleared. Three is enough for the way most people work, but it is not unlimited — see below for how a device you no longer use gives its place back.
A browser can clear its stored data on its own — iOS does it to apps left unopened for a while, and "clear browsing data" does it on request. That takes BillMate's record of your licence with it, and re-entering the key afterwards would spend another one of your devices on the machine that already had it.
A recovery file is the way back. Open ⋮ →
Unlock Pro and press
Save recovery file. Keep the .bmlic file it
downloads with your backups — it is as private as the key itself, because anyone
holding it can restore your licence.
To use it, open the same panel on the affected device and press Restore from file. Pro comes straight back and no device is spent, because the file restores the machine's original identity rather than claiming a new place. It works with no connection at all. The one part that waits for the internet is the takeoff module, which downloads again the next time that device is online.
A device that has not contacted BillMate for 60 days gives its place back on its own. A lost laptop or a replaced tablet therefore clears itself — the next device you activate takes the freed place automatically, with nothing to ask for and nobody to email.
If you need the place back sooner than that, email support (see the foot of this guide) with your licence key.
Once a device has verified successfully, Pro keeps working for 30 days with no connection at all — activation needs the internet, ongoing use does not. BillMate also quietly re-checks every few days whenever it does have a connection, so a refunded or reassigned licence doesn't stay unlocked indefinitely on a device that's simply never offline for long.
Troubleshooting
| What you see | Why | Fix |
|---|---|---|
| My projects have disappeared | You're on a different device, a different browser (on mobile), or under a different user account than the one you worked in before. | Switch back to where you worked before. If that's genuinely gone, restore your most recent backup on this one. |
| "Your work is not being saved" | Private browsing, or the device's storage for BillMate is full. | Back up immediately. Leave private browsing, or delete old projects to free space. |
| An unpriced item shows an amber rate cell | It has a quantity but no rate. | Working as intended. The section badge counts them so none can hide. |
| My description looks cut off | The cell is one line on screen. | Nothing to fix — the printed and exported bill carries the full wrapped text. |
| AI rates are wildly wrong | The model is guessing against stale, non-local training data. | Import your own schedule and use My rate library first, or generate quantities only. |
| "The AI model is no longer available" | Groq retired it. | Enter a current model name in the Groq API key dialog. |
| An imported rate never matches my items | The unit or currency differs, or the dimensions in the description differ. | Check the unit and currency in the library list. Numbers must agree exactly. |
| Import skipped rows | Those rows had no description or no rate — trade headings and spacers. | Normal. The count is shown so nothing vanishes silently. |
| Excel shows ð or ¤ instead of m² or ₦ | The file was opened through an import wizard with the wrong encoding. | Open the CSV directly, or choose UTF-8 in the import dialog. |
| Export buttons prompt to unlock | Exports are a Pro feature. | Enter your licence key, or use backup to move data out. |
| "Couldn't reach the licence server" | Activating a licence key needs an internet connection the first time on each device. | Connect to the internet and try again. Once verified, the device works offline for 30 days. |
| "This licence's device limit has been reached" | The key is already activated on as many devices as it has seats. | Use a device that's already activated, or email support to move a seat. |
Quick reference
Limits and defaults
| Free plan projects | 2 |
| Default preliminaries / contingency | 3% / 5% |
| Default overhead / profit in a build-up | 10% / 15% |
| Rate considered stale after | 12 months |
| Backup reminder after | 14 days |
| Undo window on a deletion | 8 seconds |
| Rate import file size limit | 8 MB |
| Currencies | USD EUR GBP AUD CAD INR AED SAR SGD ZAR KES GHS NGN KWD |
Everyday flows
| Price a bill from your own rates | ⋮ → Rate library → Apply to this bill |
| Save the rates you just keyed | ⋮ → Rate library → Capture from this bill |
| Bring last year's schedule up to date | ⋮ → Rate library → Uplift rates |
| Measure from a CAD drawing | taking-off icon → Take off from a DXF drawing |
| Take quantities from a BIM model | taking-off icon → Take off from an IFC model |
| Record a delay claim | Post-contract → Claims → New event |
| Issue the bill | Export BOQ → Save as PDF |
| Protect your work | ⋮ → Backup all data |
Good practice
- Set your firm name and a specific locality before your first export.
- Import your own rate schedule once — it pays for itself on the first job.
- Capture rates from every bill you price. The library compounds.
- Uplift or re-check your library annually so nothing quietly goes stale.
- Measure with the dimension sheet rather than typing quantities. It is the audit trail.
- Never issue a bill with amber rates still on it.
- Back up at the end of every session.