Arkiba AI
Turns messy construction Bill of Quantities workbooks into classified cost data, and answers cost questions with the source rows as evidence.
- Lead engineer, about 98% of commits
- Client work at AI.SEA, Kuala Lumpur
- Python, OpenAI Agents SDK, FastAPI, PostgreSQL, DuckDB, React, Docker
- Private client repository

What it is
Construction cost estimates arrive as Bill of Quantities (BQ) workbooks in Excel, and their layouts are inconsistent. Arkiba reads them, classifies each priced item, reconciles the money against the source and lets a team ask cost questions in plain language.
This is private client work. The repository is not public, and the numbers on this page come from a synthetic demo dataset, not client data.
What I built
- The pipeline end to end: ingest, normalize, classify, store, export.
- Multi-agent schema discovery for workbook layouts it has not seen before, using the OpenAI Agents SDK with deterministic validation, sandboxed analysis and an adversarial reviewer.
- Human review and explicit acceptance before data enters the workspace, with immutable audits and versioned pricing snapshots.
- A natural-language cost engine for benchmarking across projects, historical price comparison, projections and anomaly detection, keeping every answer traceable to source rows.
Technical notes
- In the synthetic demo, 5,037 workbook rows become 443 priced items.
- The deterministic engine (ingest, normalize, store) never imports the agent stack. The boundary is a hard rule in the codebase.
- Each priced item gets a Level 5 construction classification label, marked as matched, derived or needs review. Uncertain items are flagged, never dropped.
- Identical rows (same description, same context) are classified once and the decision is copied to their twins.
- Accepted data is organized as project → BQ → dated priced version, so benchmarks can add distinct BQs without merging parallel pricing scopes inside one bill.
