Jump to…
- Where the materials come from
- "Fits" means fits, not close enough
- Why is this product on my list?
- Change it once and it sticks
- Every material is linked to a line item
- Tile from the tile schedule
- Waste applies to tile, not everything
- Each tiled surface has its own waste
- The approval workflow: draft → approved
- When BidCraft can't find a product
- Materials you already own
- When to trust the list
- Next steps
Materials lists explained
Every proposal you generate quietly builds a materials list in the background. It's the parts list you'd hand a runner — thinsets, grouts, waterproofing, trim, screws — with quantities and your real cost. This list is for you, not the client. The client sees the proposal total. You see what it'll actually take to deliver the job.
Where the materials come from
When BidCraft builds a materials list, it works down a ladder and stops at the first rung that answers:
- The product saved on the service. If a service in your catalog (like "Kerdi shower install — 32 sqft") already names a product for a slot, that's the one. You've vetted it for this kind of work.
- Your favorite for the role. A role is a slot — "thinset for large-format wall tile", "waterproofing band". Tag a product in your library as your favorite for a role and it fills that slot every time.
- Your go-to for the category. Broader than a role and much less work to set up: one thinset, one grout, one waterproofing membrane you reach for by default. Handy for the long tail you'd never bother tagging role by role.
- The best fit from your catalog. Nothing saved? BidCraft ranks everything you can see in that category — your own dealer's price list included — and picks the one that actually fits the job.
Only if all four come up empty does it search wider, and only after that does a placeholder land.
"Fits" means fits, not close enough
Every rung above gets checked against what the job actually needs before it's used — the right unit, big enough, enough coverage. A 24-inch linear drain does not go into a 32-inch opening because it was your saved pick. It falls through to the next rung and something that reaches gets used instead.
That check applies to your own saved picks exactly as much as to anything BidCraft chose. A favorite you set two years ago against a different kind of job is a stale preference, not a shortcut — and quietly using it anyway is how a bid ends up with a part that can't be installed.
Ranking, once things fit, is: the fewest pieces that cover the job, without buying silly amounts of extra, cheapest as the tie-break. That's why a 120 sqft floor gets one 150 sqft roll rather than sixteen sample pieces (looks like less waste on paper, absurd on a jobsite) or one 323 sqft roll (fewest pieces, but you've bought nearly triple).
Why is this product on my list?
Under each material there's a short line telling you how it got there:
- 🔖 "Your go-to for Waterproofing" — you chose this, somewhere, at some point. If it's wrong, the fix is to change your preference, not just this row.
- ✦ "Best fit for Underlayment — 1 × 150 sqft covers the 120 needed" — nothing was saved, so BidCraft picked it and showed you the arithmetic.
- ✦ "Found in your catalog by Biddy" — Biddy went looking and this is what it came back with.
The distinction is the useful part: it tells you whether you're looking at a decision you made or a decision made for you, so you know which one to go and correct.
Older materials lists, built before this existed, simply don't have the line. Regenerate and they will.
Change it once and it sticks
Click any material to edit it. If you change the item code to a different product, a checkbox appears — "Use this from now on" — ticked by default. Leave it ticked and that product becomes your go-to for its category, so the same correction doesn't have to be made on the next job. Untick it if this one's a one-off.
It only shows up when you actually swap the product. Fixing a quantity or a price won't quietly retrain anything.
[!note] Setting a go-to changes what everyone in your business gets on future proposals, so it's an owner or admin action. Anyone else can still edit the material — they just won't see the checkbox.
Every material is linked to a line item
You'll notice a small "For: Demo and prep" or "For: Shower waterproofing" badge next to each material. That's not decoration — it's the link between the material and the proposal line it belongs to.
This matters for two reasons. First, the Costs & Materials section can show you exactly which materials are eating into the margin on each line. Second, if you regenerate the materials for a single line (say, you swapped out a tile size), only that line's materials get re-pulled. The rest stay put. And a regenerated tile line always lands with its essentials — mortar, grout, caulk, one alignment row and the tile — whether or not the AI remembered them; a row BidCraft added for you says "Baseline:" in its note, along with the coverage it assumed, so you can change the rule if your trowel or joints differ.
Once a project is signed, the same cost-analysis row also shows a small purple ✓ N tasks · X hrs chip alongside the materials badges. That's the per-line execution-task count from the Schedule & Tasks section. Click the chip and you jump straight there. See Tasks on signed projects.
[!tip] Click any material row to re-attribute it to a different line. Did "screws" end up under demo when they belong with the install? Just change the line dropdown in the edit row.
Tile from the tile schedule
When a project came with a tile schedule or a designer's spec sheet, the tile it names for each surface shows up on your materials list too, on the line that installs it, marked Schedule. It's the tile as the sheet lists it: the name, plus the colour, size and grout wherever the sheet prints them. It shows up whether or not you or BidCraft have picked a tile for that line yet.
What it costs you depends on your Who supplies the tile? answer (set for the whole business on the Tile tile in Pricing templates, or changed for this one job on the project):
- The client supplies it. The row is marked Client-supplied and costs you nothing. It isn't in your materials total or your margin, so the bid shows the designer's tile without charging for it. The quantity is the measured area plus that surface's waste, and the row says how much to order — for example "Includes 10% waste — buy 66 sq ft" — so the homeowner buys enough the first time.
- You supply it. If the tile's item number is in your catalog, the row carries your price and that surface's waste, in the unit it's sold in (boxes, for example). If it isn't, the row says Price this: type your cost once and it stays put the next time the materials rebuild.
A surface that hasn't been measured yet still shows its tile, at a quantity of 0, so you can see what's specified before the numbers are in.
You never pay for the same tile twice. If a line already has that tile, or a field tile you put there yourself, the schedule leaves it alone. If BidCraft had guessed a generic tile for a line the schedule names, the schedule's tile replaces the guess. Rebuilding the materials updates these rows rather than adding a second copy.
Waste applies to tile, not everything
Your waste factor is meant for the materials you actually over-buy to cover cuts, breakage, and mixing loss — tile, thinset, grout, and leveling clips. It should not pad the things you buy to the exact count: membranes, backer board, fixtures, trim, sealers, and caulk. BidCraft applies waste that way automatically, based on what each material is.
Each tiled surface has its own waste
A herringbone floor eats more tile than a straight-lay backsplash, so waste is set per surface, not once for the whole job. Every tiled surface has a Waste % — see Editing project dimensions for where to change it. Until you type one, it uses the first of these that applies:
-
What the takeoff printed — on a surface measured from a builder's takeoff that printed its own waste, that figure ("12.5% · as your takeoff printed"). If you chose Use the takeoff numbers as printed, it's 0% ("0% · the takeoff figure already includes it"), so a printed order is never padded twice. This comes ahead of your default.
-
Your default — the waste % on the Materials tile in Pricing templates, whatever it is (even if you never changed it from 10%). The box says so: "10% · your default". If there's no waste % saved there at all, it uses
-
The standard for that tile and lay: straight lay 10%, mosaics 10% (a chevron or herringbone mosaic sheet counts as a mosaic — the pattern comes on the sheet), diagonal / herringbone / chevron / basketweave laid piece by piece 15%, large format (24" × 24" and up, or 36" long and up) 15%, natural stone 15%. When more than one applies, the higher one wins.
Want the herringbone floor at 15% while the rest of the job stays at your default? Type 15 on that surface.
That waste goes on what gets bought — the tile rows here, and the tile, thinset and grout a line's service orders (worked into the box or bag count, so you see 21 boxes, not 20.9). A line that covers several surfaces uses a mix weighted by each surface's area. It never changes the measured area, the square footage you're charging for, or the labor. And it applies whoever supplies the tile: on a client-supplied job the tile still costs you nothing, but the quantity tells the homeowner what to order.
Every material's edit row has a "Apply waste %" checkbox so you can override the default on any line — turn it on for a specialty material that breaks a lot, or off for a tile you're buying to the piece. The same toggle lives on each material inside a service, so your saved services carry the right behavior into every proposal.
The approval workflow: draft → approved
Fresh materials lists start out as draft. That's a soft state — you can edit prices, swap products, change quantities, delete rows, add new ones. Nothing is locked in.
When the list looks right, hit Approve List. Two things happen behind the scenes:
- Any product you used that wasn't already in your library gets auto-added. Next time it shows up as one of your products with your pricing.
- The frequency counter ticks up on every product in the list. BidCraft is quietly learning what you actually buy on real jobs — and over time, that data improves which products get picked for you first.
[!note] Editing a list after approving flips it back to draft. That's intentional — once you've approved, you've committed to a version of the truth, and any change deserves a fresh look.
When BidCraft can't find a product
Sometimes a service has a material in a category the catalog just doesn't carry yet — silicone caulk and tile leveling clips are the obvious ones (Schluter and Laticrete don't make them). In that case, you'll see two things on the materials list:
- An amber banner at the top telling you which services had materials that couldn't be matched to a real product. It lists the categories so you know what to fix — typically by tagging a product in your library as your favorite for that category.
- An ✨ "awaiting pick" badge on the placeholder row itself, showing a reasonable typical price so the proposal cost stays in the ballpark while you sort out the real pick.
The banner clears automatically the moment you add even one product for that service — no need to re-run anything. Pick a favorite product for the category in your library, regenerate materials, and the placeholder gets replaced with your real SKU.
What a material costs you follows one order everywhere — the Bid page, the Costs view and a service's own page: 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. Type a number on any row and it wins.
A near miss counts as not found. When the only thing on the shelf is filed under the right broad category but plainly isn''t the material — an embedding tool where the row wants leveling clips, a product sold by the roll where the row counts pieces — BidCraft leaves the row blank rather than pricing the wrong thing, and marks it "wrong kind of product — check this pick" or "sold by a different unit — check this pick". That's what stops a bid from carrying 387 bags of a tool. Your own picks and favorites are never second-guessed.
Materials you already own
If a material on the list is something you've got left over from an earlier job, the row shows a green In stock chip with the count. Tap Use from stock next to it and say how many you're pulling off the shelf — that comes out of your inventory so the count stays honest for the next job.
It doesn't touch the proposal. What you charge is your decision, and leftovers aren't a reason for the software to quietly rewrite a price. See Tracking inventory and material prices.
When to trust the list
The list is most accurate when:
- You used a service from your catalog (the service knows what it consumes)
- Your voice notes or text notes mentioned the materials you actually plan to use ("we're going with 12x24 porcelain, modified thinset, sanded grout")
- You've been approving lists for a few months and the frequency data has built up
The list is least accurate on brand new accounts with empty catalogs and no library. Don't worry — every proposal you ship builds it up.
Next steps
- Stock the library so Biddy picks your products first: Your materials library
- Build the catalog that drives proposal pricing: Building your service catalog
- Teach Biddy which thinset, grout, and waterproofing you prefer: Service materials and favorite-for-roles
- Track leftovers and what materials really cost you: Tracking inventory and material prices
Email andy@businessupai.com and a real person on the BidCraft Tile team will get back to you. If you're signed in, you can also ask Biddy from any page in the app.