Smart QS Hackathon 2026 ยท AI Builders Hackathon

🏗️ Smart QS Copilot

Upload a messy Hong Kong BOQ and follow the money: trade mapping and flags, transparent fair-rate build-ups, a cashflow view, and Security of Payment documents that match the Cap. 652 rules.

Try the live app: smartqs-copilot-app.streamlit.app — upload a messy BOQ and follow it through. Free tier, so it sleeps when idle and can take about 30 seconds to wake. This page is the walkthrough: the demo video, the screens, and the commands to run it yourself in a minute.

Watch the 90-second demo

What it does

1. Upload

Drop in a PDF, CSV or Excel BOQ. It handles the real-world mess: stray title lines, two header rows, merged section labels, item codes, and descriptions that mix English and Traditional Chinese.

2. Trade map and flags

Every line is mapped to a trade and flagged: odd rates, near-duplicate lines, trades with no items, mixed-language descriptions. Each flag cites the item, the number and the reference it deviates from.

3. Fair-rate build-up

Shows how an adjusted fair rate is reached, step by step, from a matched Schedule of Rates item and a project rate index. Nothing is a black box.

4. Cashflow

A payment S-curve with the gaps called out, including the 60-day stretches that put pressure on a subcontractor.

5. Cap. 652 documents

Payment claim and payment response drafted against the Security of Payment Ordinance timelines (30 / 60 / 28 days), plus a pay-when-paid audit.

Screens

Upload screen
Upload a BOQ, or load the sample file that has problems planted in it.
Trade map and flags
Trade map and flags, with confidence shown per line.
Fair-rate build-up
The fair-rate build-up, step by step.
Cashflow
Cashflow view with the payment gaps called out.
Security of Payment documents
Cap. 652 payment claim and payment response.

Run it yourself

Python 3.10 or newer. Three commands:

git clone https://github.com/BenjaminTia/SmartQS-Copilot
cd SmartQS-Copilot
pip install -r requirements.txt
streamlit run app.py

It opens on http://localhost:8501. No API key is needed: parsing, classification, rate build-ups, flags and dates are all deterministic Python. An optional language model writes one closing paragraph in plain English if a key is present, and the app falls back to a rule-based summary if not.

There is also a test suite (pytest) and an end-to-end smoke check (python smoke_check.py) covering CSV, Excel and PDF inputs.

Honest limits

Links