TraydTrayd
PRODUCT ARCHITECTURE

How Trayd turns a tradesperson's chat into an invoice — automatically.

Three layers: a chat-first capture surface, an AI assembly engine, and an employer dashboard. The AI does the work; humans only confirm.

Core flow

GPS arrival
Chat capture
Photos
Receipt OCR
AI assembly
Employer review
Invoice PDF
Paid

System layers

Capture (PWA, offline-first)
  • · Chat UI · taps + voice
  • · GPS auto-detect customer
  • · Camera + receipt OCR
  • · Local IndexedDB queue
AI Engine
  • · Gemini 2.5 Flash — extraction
  • · Claude Sonnet — reasoning
  • · Vision OCR for receipts
  • · Confidence scoring + fallbacks
Backend
  • · Postgres + Row-level security
  • · Object storage for photos
  • · PDF generation (server)
  • · Webhooks for sync

Pricing & rules engine

INVOICE FORMULA
labour     = Σ (employee.hours × employee.rate)
materials  = Σ receipts.items + manualMaterials
subtotal   = labour + materials
vat        = subtotal × 0.23     // Ireland
total      = subtotal + vat
CONFIDENCE GATES
  • > 0.85 — auto-fill, employer review
  • ! 0.6–0.85 — flag line item, ask employee
  • < 0.6 — block until confirmed

Data model

tenant ──┬─< user (employee | employer | admin)
         ├─< customer ──< job ──┬─< receipt ──< receipt_item
         │                       ├─< material
         │                       └─── invoice ──< invoice_line
         └─< rate_card