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
1A.1Excavate trenches for foundationsm3245.00185.0045,325.00
2A.2Concrete in foundations 25 MPam398.502,450.00241,325.00
3B.1Brickwork in walls half brickm21,120.00420.00470,400.00
4B.2Reinforced concrete slabsm3156.003,100.00483,600.00
5C.1Roof covering metal sheetingm2890.00285.00253,650.00
6C.2Ceilings suspended plasterboardm2720.00195.00140,400.00
7D.1Floor finishes porcelain tilesm2640.00380.00243,200.00
8D.2Painting internal wallsm22,400.0048.00115,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.

BoEBoQValuationsAAQS

Postgres for QS data.

Bills, items, locations, and rates live in a dedicated Postgres database — portable and structured.

item_no
role
A.1estimator
B.2viewer
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.

LeboUpdated rate on A.2
SamQty change on B.1
YouValuation cert No. 6

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.

QS
Practice directorQuantity surveying firm

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)
Documentation

Estimate this week, scale the practice