BidCraft now learns from your receipts and prices new proposals from what you actually pay
The Receipts tab has been a one-way street so far — you photograph receipts, BidCraft OCRs them, the variance card tells you how you're doing on the current job. Useful, but the data didn't go anywhere after that.
That changes today. Every receipt you log is now silently feeding a material cost memory layer. Once BidCraft has 3+ samples for a specific product across your past projects, the proposal AI starts using your real per-unit cost when it prices new jobs — not the catalog list price multiplied by your default cost multiplier.
What you'll see
Probably nothing different at first — the change is invisible until you have ≥3 receipt samples for the same product. Once you do, future proposals will use your historical median for that product's materialsCost, with a range showing min/max from your samples.
The pricing intelligence shows up as a new section in the proposal-build prompt the AI reads:
MATERIAL COST MEMORY — what this contractor has actually paid per product • Laticrete 254 Platinum: $44.50/bag (range $42–$48) — n=8 • Schluter Kerdi 5m: $168.50/roll (range $165–$172) — n=5
You don't see this directly. The AI uses it to price the next proposal. Over time, your costs reflect your supplier relationships and bulk-buy habits instead of generic catalog assumptions.
What's wired today vs coming
Today (live):
- Receipt allocation → material cost samples — every receipt you reconcile feeds the ledger
- MATERIAL COST MEMORY block in proposals — visible to the AI on every full-proposal and regenerate call
- Median + range aggregation per product
Coming soon (infrastructure shipped, write hooks landing later):
- Task time tracking → crew-day calibration — once your team clocks ≥5 instances of the same task template, BidCraft tunes the typical-hours estimate to your actual reality
- Template granularity learning — if you keep manually splitting "Tile Install" into Wall and Floor on Shower Remodels, Biddy will nudge you to update the template
- A new "Calibration insights" entry on the dashboard that surfaces all three streams in one place
The architecture is the same shape as the existing service-price-history learning loop — append-only sample tables, aggregations rendered into prompt blocks, opt-in nudges. Everything stays auditable: nothing is silently changing your prices, the AI is just seeing better data when it makes its own pricing decisions.