A single pass that derives every design in the org, keyed by contact, returning both the design and its price — because 'does this lead have an estimate yet' and 'what is it worth' are different questions and the card asks both.
Also called: pipeline card price wrong · board shows old value · lead value vs estimate
- 1listBuildingDesigns() returns newest-first; the newest design per contact wins, so a lead drawn twice keeps the current building.
- 2Each design is priced through designSellTotal in the same pass — measured at ~2ms per design.
- 3The card's Create/View Estimate button keys off the design's existence; the value keys off the price.
- 4A design that fails to price still counts as having an estimate.
Opening a card on the pipeline board changed the price: one deal read $72,000 on the outside and $42,184.46 the moment you opened it. The card's detail view had been moved onto the shared pricing derivation and the board had not, so the board kept showing a hand-typed lead value. It now prices every design in one pass, and storing a cached total against each building was deliberately rejected — that would have re-created exactly the second source of truth that caused the split.
- A board value typed once and never updated again
See it on your own jobs
Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.
or keep browsing features →