HomeTools
TimekeeperReceipt CaptureSchedulerJob PhotosField EstimatingCFO DashboardChat & Job HubMeeting NotesCost PoolsSegment Performance
PricingCompare
vs Jobbervs Housecall Provs ServiceTitanvs FieldPulsevs Contractor Foremanvs JobTread
How It WorksAboutLearn Get Started
Cost Pools

Buy concrete once. Allocate it to every job that used it.

Cost Pools take bulk-supply receipts — concrete, mulch, drywall mud, anything you buy in bulk for multiple jobs — and reallocate the spend to the jobs that actually consumed the supplies. Admin-triggered. Reversible. Variance-tracked.

Pool Run — Mulch Truck, Tuesday
Mulch Holding Job — Receipt
12 cu yd • weight: Hours on job
$1,200.00
↓ reallocates to
Henderson Backyard
6.4 hrs • 38%
+$456.00
Riverside HOA Phase 2
4.1 hrs • 24%
+$288.00
Maple Drive Cleanup
3.5 hrs • 21%
+$252.00
Oak St. Front Bed
2.8 hrs • 17%
+$204.00
The Real Problem

One Receipt, Eight Jobs — And Your Field Tool Forces You to Pick One

You buy concrete by the yard, mulch by the truckload, drywall mud by the pail. One trip. One receipt. And that supply ends up on five, eight, sometimes a dozen jobs that week.

Every other field tool in the category forces one receipt to one job. So you have two bad options. Pin the whole $1,200 mulch run to one job and lie about the cost distribution — that job's margin looks awful, the others look great, neither is real. Or split it manually in QBO after the fact, line by line, and hope you remember next week which yards went where.

Either way, job costing breaks. The CFO Dashboard shows margins you can't trust. The estimates you write on the next round of bids are calibrated to fiction. The owner stops looking at the numbers because the numbers don't match the work.

Cost Pools fix this at the source. The receipt goes to one place. The spend goes to every job that consumed it.

1 → many
Bulk receipts reallocate to every consuming job — not just the one you happen to clock at the supply yard
Weight by hours, catalog quantity, estimate value, or equal split

Five Steps. From Bulk Receipt to Accurate Job Costing.

Set the pool up once. Run it whenever you need fresh allocations — weekly, after a big supply run, or before pulling a P&L report.

1

Mark Products as Bulk-Purchased

In Products & Services, flag the items you buy in bulk and set a Unit (cubic yards, bags, gallons — whatever you measure that item in). All items in a single pool must share the same unit, so concrete (yards) and mulch (yards) can co-exist, but concrete and drywall mud (pails) need separate pools.

2

Create a Pool

Click + Create New Pool. Name it ("Concrete Q2", "Mulch Truck Tuesdays" — whatever you'll recognize). Pick a Holding Job — a catch-all that receives the supply receipts. Pick an Eligibility rule: Manually tagged jobs, Catalog item match, or All active jobs. Pick a Weight rule: Hours on job, Catalog quantity, Estimate value, or Equal split.

3

Link Items and Jobs

Open the pool's detail page. Link the Bulk-Purchased catalog items that feed this pool. For manual_tagged mode, link the Tagged jobs that should receive allocations. (Skip this step for catalog_items and all_jobs modes — eligibility is automatic.)

4

Run Allocation

Optionally set a period — start and end date — so the engine only pulls receipts in that window. Click Run Allocation. BDB reallocates the holding-job spend across the eligible jobs using your weight rule. Each run gets its own UUID so you can audit, compare, or reverse later.

5

Review Variance

The Variance column tells you the truth about each pool. Positive variance = unallocated / under-absorbed (some spend didn't make it to a job — usually your eligibility rule is too narrow). Negative variance = over-allocated. Click Reverse on any historical run to undo that run cleanly — other runs are untouched.

No Other Field Tool Does This

Bulk-supply reallocation isn't a polish item — it's a category gap. Every competitor in the field service space forces receipt = single job. Cost Pools is BDB-only.

Platform How Bulk Receipts Are Handled Bulk Reallocation
BDB Project Tools Holding Job → admin-triggered allocation by hours / quantity / estimate value / equal split, with variance tracking and reverse
Jobber Receipt attaches to a single job; no reallocation engine
Housecall Pro HCP expense card lives on a single job; no reallocation engine
ServiceTitan POs and bills tied to one job; no reallocation across consuming jobs
JobTread Strong job costing, but each cost line still binds to one job
Contractor Foreman Expense entries are job-locked; no bulk reallocation
FieldPulse POs improve on Jobber/HCP but still single-job per receipt

Based on publicly documented features as of March 2026. If a competitor ships bulk-supply reallocation we'll update this page — for now, BDB is the only field tool that treats one bulk receipt as input to many jobs.

Cost Pools FAQ

The questions owners and bookkeepers actually ask before they set up their first pool.

Can I run a pool on a schedule?
No. There is no automatic or nightly run. An admin clicks Run Allocation on the pool's detail page each time you want fresh allocations. That's intentional — you choose when the books reflect the reallocation, not a cron job.
Does running a pool change the original receipt's job?
No. The source receipt stays attached to its original holding job. Reallocations are tracked as separate allocation rows tied to each run's UUID — so you can always see the original receipt and the reallocations side-by-side.
Can I undo an allocation run?
Yes. Each run is reversible. Click Reverse on any historical run to roll that single run back without touching the others. Use this when you change a weight rule, add a job that should have been included, or just want to re-run cleanly.
Can items with different units share a pool?
No. All Bulk-Purchased items in a single pool must share the same unit. Concrete (cubic yards) and topsoil (cubic yards) belong together. Concrete (cubic yards) and drywall mud (pails) don't — create a second pool with its own holding job.
What happens when I deactivate a pool?
Soft delete. The pool stops accepting new runs, but every historical allocation stays attached to the receiving jobs. Prior job costing and CFO Dashboard numbers remain consistent — you don't lose the financial history when you retire a pool.
Where do allocated costs show up?
In Project Expenses and the CFO Dashboard for each receiving job, in the Allocated In column. That keeps allocations visible and separable from direct expenses, so a bookkeeper reviewing job profitability can tell exactly where each dollar came from.

Stop Picking Which Job Eats the Receipt

Cost Pools is included with every BDB Project Tools subscription — no add-on, no premium tier. Set up your first pool in the time it takes to write one estimate.

Founder's Pricing: $69/mo for 20 users. Retail $149/mo. All features included. Founder's rate locked when you sign up before June 30, 2026.