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 + vatCONFIDENCE 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