Project dataPostgres-backed BoE & BoQ
Every QSNAPP project stores bills, estimates, and valuations in Postgres — structured for AAQS work, WinQS migration, and final account.
idint8 | item_notext | descriptiontext | unittext | quantitynumeric | ratenumeric | amountnumeric |
|---|---|---|---|---|---|---|
| 1 | A.1 | Excavate trenches for foundations | m3 | 245.00 | 185.00 | 45,325.00 |
| 2 | A.2 | Concrete in foundations 25 MPa | m3 | 98.50 | 2,450.00 | 241,325.00 |
| 3 | B.1 | Brickwork in walls half brick | m2 | 1,120.00 | 420.00 | 470,400.00 |
| 4 | B.2 | Reinforced concrete slabs | m3 | 156.00 | 3,100.00 | 483,600.00 |
| 5 | C.1 | Roof covering metal sheeting | m2 | 890.00 | 285.00 | 253,650.00 |
| 6 | C.2 | Ceilings suspended plasterboard | m2 | 720.00 | 195.00 | 140,400.00 |
| 7 | D.1 | Floor finishes porcelain tiles | m2 | 640.00 | 380.00 | 243,200.00 |
| 8 | D.2 | Painting internal walls | m2 | 2,400.00 | 48.00 | 115,200.00 |
Everything you need
for project data
Every QSNAPP project is backed by Postgres — BoE, BoQ, valuations, and AAQS structure with fine-grained access and live updates.
Postgres for QS data.
Bills, items, locations, and rates live in a dedicated Postgres database — portable and structured.
item_no | role |
|---|---|
| A.1 | estimator |
| B.2 | viewer |
CREATE POLICY "Members can read project bills" ON bill_items FOR SELECT USING (is_project_member(project_id));
Row Level Security for practices.
Control exactly which surveyors can read or edit rates, quantities, and valuations.
Live bill updates.
Subscribe to project data changes so teammates see rate and quantity edits as they happen.
You can have a capable estimating tool, but the data model has to match how QS work is done. With QSNAPP, BoE, BoQ, and valuations finally live in one coherent place.
Built for scale
across projects and practices
Project branching & drafts
- Trial rate scenarios without touching the live bill
- Keep estimate drafts separate from issued BoQ
- Review changes before publishing valuations
- Align team workspaces with project stages
Reliable project reads
- Serve bill data close to your practice users
- Keep reporting loads off the primary write path
- Run complex valuation queries safely
- Distribute load across busy tender periods
Manage bill data with a
built-in table editor
Edit BoE and BoQ rows in a spreadsheet-like interface — create structure, link relationships, and export when you need to.
Add and update bill items with a familiar spreadsheet-like grid.
Spreadsheet editing
Add and update bill items with a familiar spreadsheet-like grid.
Write and run queries with a
full SQL editor
Run valuation checks, rate audits, and custom reports directly against your project database.
Query project data with a full SQL editor in the dashboard.
Full SQL
Query project data with a full SQL editor in the dashboard.
Project APIs
without reinventing CRUD
Query bill items, sections, and valuations with a typed client — focus on QS workflows while QSNAPP handles the data layer.
// Fetch BoQ items with locations
const { data: items } = await qsnapp
.from('bill_items')
.select(`
id, item_no, description, unit, quantity, rate,
locations ( id, name )
`)
.eq('project_id', projectId)
.order('item_no')
.limit(50)Kickstart your next project
with QSNAPP workflows
View documentationQSNAPP docs & guides
Learn how BoE, BoQ, valuations, and WinQS migration fit together — from first project to final account.
Switch from WinQS
Bring DimensionX and WinQS libraries across, then continue pricing and measurement in QSNAPP.
Start a practice workspace
Create your QSNAPP account and invite surveyors into your first organization.
Pricing for practices
See plans for solo estimators through multi-office quantity surveying firms.
Workflow guides
Step-through guides for estimating, measurement, certificates, and VOs.
Import playbooks
Practical paths for migrating bills and libraries without losing structure.