Type the price you know, and a tile line that comes back complete every time
Two things from the last round of testing, both fixed.
If you know the price, put it in
Generate a materials list and half the rows used to say prices at build with no way to say otherwise — the price box only appeared on rows that already had a product from your library, and even then, saving a cost didn't move the bid. That's gone.
Every material row takes your cost now, and your cost wins. The order is always the same: a cost you typed on the row, then the cost saved on the product in your library, then the catalog list price times your cost multiplier. The box tells you where the number lands before you press Save: on the product in your library (every job that uses it), on the service (every job that uses that service), or on this bid only (a line that carries its own list). Empty clears it.
On the Bid page, open any material row and the Your cost per … box is right there, on matched and unmatched lines alike.
On a service's page, rows with no product picked have a plain Your cost field in place of the old dash; rows with a product show where their number comes from and a link to edit it in your library.
One knock-on: a service's own cost summary used to quote raw list prices for products you hadn't costed. It now applies your multiplier like everywhere else, so those numbers come down a little.
A tile line that lands complete — the same way every run
Regenerating a tile-install line could come back with mortar and trim and nothing else, then a different list the next time. Now BidCraft guarantees the floor for a tile line: mortar, grout, silicone caulk for the corners and edges, one way of holding the tile in line, and the tile itself, sized to the surfaces the line covers, with the tile you named in the scope written into the row's notes. Whatever the AI forgets, BidCraft adds and marks Baseline: on the row — with the coverage it assumed (~40 sq ft per bag at a 1/2" notch — edit the rule if you run a different trowel). Run it three times, get the same list three times.
Leveling clips, wedges and spacers are one family now: clips and wedges are a single system (the wedges are reusable, so they ride along as optional) and spacers are the alternative. If the AI offers both, BidCraft keeps the clips — unless you've set a favorite for one of them, in which case yours wins.
Titles lead, flags follow
The material name is now the heaviest thing in its row, and the per-job flags — pick the grout colour, match the caulk — sit flush right under the cost column instead of under the titles. Scan down the left edge and it's names only.