Your rate library — smarter with every import.
A unified product catalog with supplier prices, brands, categories and normalized UOMs. Drop in an invoice or price sheet — Tier-0 supplier-code matching auto-creates products and prices.
Rates
Products, supplier prices, categories & UOMs
Product → ProductPrice → ProductSubcategory
A small, clean data model. One product can hold many supplier prices over time; one subcategory hangs many products. Brand and supplier are first-class objects, not strings.
Drop in a price sheet
Excel, PDF, or photo of a printed list. The vision pipeline OCRs & structures the rows.
Tier-0 matching
Supplier code hit? Product + price auto-create. Container pricing flags for one-tap review.
AI enrichment
Deferred batch jobs fill in dimensions, match_text, subcategory, and embeddings.
Library compounds
Every import sharpens search. Brand canonicalisation merges "Gyproc Plc" and "Gyproc" into one record.
One supplier in cases, another in linear metres — normalised at the source.
Every ProductPrice stores the supplier's quoted UOM and the per-unit normalized price. The rate library always shows €/m, €/m², €/nr — no mental gymnastics, no spreadsheet conversions.
- Coverage rates attach to each product — paint kg/m², adhesive g/m², insulation overlap.
- Container pricing (pallet, case, box) reviewed in one tap; the per-unit price flows downstream.
- Brand canonicalisation via AI — typos and supplier aliases collapse to one Product.
- Carbon factor on the product — A1-A3 kgCO₂e per UOM, auto-linked from a Tier-1 seed library (MPA, CARES, BCSA, ÖKOBAUDAT 2024-I) or overridden by a manufacturer EPD.
Vision-based invoice import that auto-creates the catalog
The Imports pipeline runs Tier-0 supplier-code matching first — if a code resolves, the product and price are created without review. Only container pricing or ambiguous rows need a human.
- Deferred AI batch ops — dimensions, match_text, subcategory resolution and embeddings run async.
- Carbon auto-link at import. Each new product is matched to an A1-A3 factor from the shipped seed library (MPA Fact Sheet 18, CARES UK, BCSA, ÖKOBAUDAT 2024-I) via embedding shortlist + AI picker at confidence ≥ 0.7. Manufacturer EPDs override generic factors. Source + version travel with the product.
- Manufacturer systems cache — Gyproc/Knauf/British Gypsum system codes resolved against the KB.
- Clause-aware chunking on spec docs (clause_ref, parent_section, csi_part) for retrieval.
A rate library that compounds
Always-current prices
Every supplier import refreshes the price history. Old prices stay queryable — never overwritten.
Vector search
Bill rows match products by semantic similarity. "100mm dense block" finds A206003 even without exact wording.
Tags & categories
Filter by trade, manufacturer system, fire rating, U-value. Power-user filters live where you need them.
Products carry their carbon factor
A1-A3 kgCO₂e per UOM lives on the product, auto-linked at import from a recognised seed library — MPA Fact Sheet 18 (UK cement), CARES UK avg (rebar), BCSA (structural steel), ÖKOBAUDAT 2024-I (concrete, plasterboard, mineral wool, timber, glass, blockwork). Manufacturer EPDs override; tenants can pin a custom factor. The citation — source + version + RICS data-quality tier — travels with the factor.
Bring your prices. We'll do the rest.
Drop in a price sheet, an invoice, or a photo of a printed list. The library does the parsing, matching and normalisation.