DEV Community

mzackarrya-stack
mzackarrya-stack

Posted on

Your Profit Margin Is Lying to You. Here's the Fix

I've watched a lot of smart people price their work using a number that feels right. "It cost me twenty bucks in materials, I'll charge sixty, that's a solid margin." Then at the end of the month the bank balance doesn't match the story they told themselves. The gap is almost always the same thing: the costs that don't show up on a receipt.

Let's fix that. Real profit margin isn't complicated math, it's honest bookkeeping about what a job actually consumes.

The formula everyone knows (and gets wrong)

Profit margin is just:

margin % = (revenue − total costs) / revenue × 100
Enter fullscreen mode Exit fullscreen mode

Nobody messes up the division. They mess up total costs. Most people only count the stuff they can hold in their hands and forget that their time, their car, and the platform taking a cut are all real money leaving the business.

So before you divide anything, build an honest cost stack. There are four buckets people routinely skip.

The four costs that quietly eat your margin

1. Supplies you don't think of as supplies. The obvious material is easy. It's the packaging tape, the printer ink, the 3% of every batch you throw away, the sample you gave for free. Add a small "consumables" line even if it feels petty. Petty things add up to real percentages.

2. Your labour, paid at a real rate. This is the big one. Your time is a cost even when you don't cut yourself a paycheck. Pick an hourly number you'd actually accept from someone else, and count every hour: prep, the work itself, cleanup, emails, the reschedule. If you refuse to price your labour in, you're not running a business, you're funding a hobby.

3. Drive time and vehicle cost. An hour round-trip is an hour you can't bill elsewhere, plus fuel and wear. A simple rule: pay yourself your hourly rate for travel time, then add a per-mile figure for the vehicle. In the US the IRS mileage rate (around 67 cents/mile) is a fair stand-in for gas plus wear if you don't want to track receipts.

4. Fees and the invisible skim. Payment processors take ~2.9% + 30¢. Marketplaces can take 6–15%. Then there's the software subscription, the listing fee, the fuel surcharge. Individually tiny, collectively the difference between a good month and a flat one.

A worked example

Say you're a mobile pet groomer charging $90 for a session.

  • Supplies (shampoo, pads, wipes): $8
  • Labour: 1.5 hrs at $30/hr: $45
  • Drive time: 40 min at $30/hr: $20
  • Mileage: 24 miles × $0.67: $16
  • Card fee: 2.9% + 30¢: $2.90

Total real cost: $91.90.

Revenue $90, costs $91.90. That "$8 of shampoo for $90" job is running at a loss of roughly 2%. The naive margin looked like 91%. The real one is negative. Same job, same day, wildly different truth.

Notice what fixes it: raising the price to $130 pushes margin to about 29% and takes ten seconds to decide once you can see the full stack. Without the stack, you'd have kept charging $90 and blamed "a slow season."

How to actually run this

You don't need accounting software. A single spreadsheet row per job with columns for each bucket will change how you price within a week, because you'll finally see which jobs are secretly carrying the others. If you don't want to do the math by hand, there's a free profit margin calculator that lets you plug the numbers in and see the real percentage instantly.

Two habits that make the honest number stick:

  • Track drive time as a line item, not a rounding error. For local service work it's often the single biggest hidden cost, and it's the one clients never see.
  • Recompute margin at your real volume. A 40% margin on two jobs a week won't pay rent. Multiply the dollar profit per job by realistic volume before you celebrate the percentage.

The goal isn't to price yourself out of every job. It's to know which jobs make money so you can say yes on purpose and raise prices without guessing. A margin you can defend beats a margin that feels good.

What's the cost you forgot to count the longest before it finally showed up in your numbers?

Top comments (0)