Skip to main content

Junk Removal Bookkeeping: Why Per-Job Costing Beats Gross Margin Guesswork

7 min readMike ThriftMike Thrift
Junk Removal Bookkeeping: Why Per-Job Costing Beats Gross Margin Guesswork

Ask a junk removal owner how business is going and you'll often hear "great — we're booked solid and margins are like 40%." Ask them what their net profit was last month, and the answer gets a lot quieter. That gap between the number an owner feels and the number their bank account actually shows is one of the most common — and most expensive — blind spots in the hauling business.

It's not because junk removal is a bad business. Trucks are full, phones are ringing, and a two-person crew can clear $300–$600 in a single stop. The problem is that gross margin and net margin are answering two completely different questions, and most owners are only tracking one of them.

Gross Margin Tells You the Job Was Priced Right. Net Margin Tells You If the Business Works.

Gross margin is revenue minus the direct cost of doing that specific job: labor on the truck, fuel, dump/tipping fees, and the wear on the vehicle from that load. It answers "did we charge enough for this particular pickup?"

Net margin subtracts everything else it takes to keep the company running: marketing and lead generation, insurance, truck payments and depreciation, software subscriptions, office overhead, admin payroll, and taxes. It answers the only question that actually matters — "did the company make money this month?"

A business can post a healthy 40–50% gross margin on paper while quietly bleeding cash, because customer acquisition and overhead eat everything gross margin leaves behind. Confusing the two isn't a rounding error; it's the difference between reinvesting confidently and running out of cash while feeling like you're crushing it.

A Real Job, Broken All the Way Down

Take a typical $350 residential cleanout with a two-person crew:

Line item% of revenueDollar amount
Labor (2-person crew)~20%$70
Disposal / tipping fees8–11%~$35
Fuel5–7%~$21
Vehicle maintenance reserve~3%~$10
Credit card processing~2%~$7
Direct job cost~40%~$143
Gross profit~60%~$207

That $207 gross profit looks fantastic — until customer acquisition cost comes out of it. A newer company running aggressive paid ads and lead-gen services can spend 20–25% of revenue just to get the phone to ring in year one, dropping to closer to 15% by year three as repeat and referral business grows. Add rent, insurance, software, admin salaries, and taxes, and that $207 gross-profit job frequently nets down to $50–$100 once every real cost is allocated — a 15–30% net margin, not the 50–60% the gross number implied.

Neither number is wrong. They're just measuring different things, and only one of them tells you whether the business is healthy.

Why Dump Fees Deserve Their Own Line, Not a Guess

Tipping fees are one of the few costs in this business that swing hard by geography and season, which makes them a bad candidate for a flat "estimated" line in your pricing spreadsheet. Nationally, average landfill tipping fees have been climbing — recent industry data puts the U.S. average around $62 per ton, up roughly 10% year over year, with state-level rates ranging from the low $30s in parts of the South Central U.S. to well over $100 per ton in the Northeast and Alaska. If your business tracks disposal cost as a flat percentage assumption instead of actual weight tickets and receipts per load, you're pricing off a number that's already stale — and the gap only grows as landfill capacity tightens in your region.

The fix is mechanical, not clever: log the actual disposal receipt against the job it belongs to, every time. Over a quarter, that turns "dump fees run about 10%" into a real, defensible number you can price against — and it'll often surprise you which job types (mattress- and appliance-heavy loads especially) are quietly the least profitable ones on the schedule.

Job Costing: The Habit That Actually Closes the Gross-to-Net Gap

The single highest-leverage bookkeeping habit for a hauling business is job costing — attaching every direct cost to the specific job that generated it, rather than lumping fuel, labor, and dump fees into one monthly bucket. Without it, you can only see profitability at the company level, averaged across every job, good and bad. With it, you can see that your $500 furniture-and-appliance loads are quietly your best margin work, while your $150 "half a truck of yard waste" calls are barely breaking even once drive time and dump weight are counted — information no monthly P&L will ever show you.

A workable job-costing setup doesn't require a specialized platform. It requires three things done consistently:

  1. A cost code for every direct expense category (labor, fuel, disposal, maintenance, processing fees) that maps cleanly to your chart of accounts, so a bookkeeper — or you, at 9pm after a long day — can tag an expense to a job in seconds, not minutes.
  2. A dump-fee and mileage log tied to the job, not the day. Two loads to the same landfill on the same day should still show up as two separate costs against two separate jobs.
  3. A monthly reconciliation where you actually pull 5–10 completed jobs and calculate their real net margin, not just their quoted price minus a rough guess at costs.

Plain-text, version-controlled accounting is a natural fit here, because each job can be its own tagged, auditable transaction rather than a line buried inside a generic "operating expenses" category — you can literally query "show me every job tagged with this truck, this month" the same way you'd query a database, instead of scrolling a spreadsheet.

Three Mistakes That Quietly Sink Otherwise-Busy Companies

Treating the truck payment as "not a job cost." Depreciation and loan payments on the truck are real costs of doing every job that truck runs, even though they don't show up on a per-load receipt. Spread them across expected monthly job volume and fold that per-job allocation into your true cost, or your "profitable" jobs are secretly being subsidized by a truck payment nobody priced in.

Averaging customer acquisition cost across all jobs instead of by lead source. Not all leads cost the same. A referral costs close to nothing; a paid-search lead in a competitive metro can run well over $100. Blending them into one average CAC hides which marketing channel is actually paying for itself and which one is quietly draining margin on every job it produces.

Reviewing profitability monthly instead of per job, per week. A monthly P&L tells you the company made money in aggregate. It won't tell you that Tuesday's crew is consistently 30 minutes slower per job than Thursday's, or that one truck's maintenance costs have crept up enough to erase its margin advantage. Weekly, job-level reviews catch drift while it's still a small correction instead of a quarter-end surprise.

Keep Your Job Costs as Auditable as Your Invoices

If you're running a hauling, cleanout, or field-service business, the fastest way to close the gap between "we're busy" and "we're profitable" is to make every job's true cost as visible and reviewable as its invoice. Beancount.io offers plain-text accounting that's transparent, version-controlled, and AI-ready — every job, dump-fee receipt, and fuel cost stays a plain, auditable entry instead of disappearing into a vague monthly total. Get started for free and see why small business owners are switching to plain-text accounting to actually know their numbers, not just estimate them.

Share this article