Resources · Guide
Your P&L says whether you made money. Not where. Here’s how to see which jobs, projects, or programs actually pay, in five steps, with the tools you already have.
The short answer: job costing means tracking revenue and direct costs for each job, project, or program. Pick one dimension to track, set it up with Projects or Classes in QuickBooks Online, tag every cost when it’s incurred, keep overhead simple, and review profitability by job for 20 minutes each month.
A business can be profitable overall while some jobs quietly lose money. The winners hide the losers. Without job costing, you price the next job on gut feel, chase revenue that doesn’t pay, and miss the clients and services worth doubling down on.
For each job, project, or program: what came in, and what went out?
What counts as a “job” depends on your business:
Step 1
Pick one primary dimension and stick with it. Most small businesses track by job or project. Most nonprofits track by program, and add grants if funders require it.
Start simple: revenue, direct labor, materials or subcontractors, and other direct costs. You can add detail later. What you can’t easily do is go back and fix six months of untagged transactions.
If you wouldn’t make a decision based on it, don’t track it.
Step 2
Create a project under each customer. Invoices, bills, expenses, and time tagged to a project roll into a project profitability report.
Turn on class tracking in Settings → Advanced. Classes work across every transaction and are the standard approach for nonprofits.
Many businesses use both: Projects for which job, Classes for which service line or program. Both features require QuickBooks Online Plus or Advanced, so check your plan before you start.
Step 3
Job costing breaks down when tagging happens at month-end from memory. Tag every cost when it’s incurred:
At month-end, untagged direct costs should be close to zero.
Step 4
Overhead is rent, admin salaries, software, insurance: the costs that don’t belong to any one job. You have two sensible choices:
Avoid complex allocation formulas. They create false precision and arguments, not decisions.
Nonprofits: your functional expense split (program, management and general, fundraising) is a related but separate exercise. Keep program tracking clean and the functional split gets much easier.
Step 5
Pull the project or class profitability report and ask:
A simple monthly scorecard keeps the review honest:
| Job / program | Revenue | Direct costs | Margin $ | Margin % | Est. vs actual |
|---|---|---|---|---|---|
Free PDF
The full guide, with the copy-ready scorecard page, formatted for your team.
Get the free guideJob costing is tracking revenue and direct costs by job, project, or program, so you can see which work makes money and which quietly loses it. Your P&L shows whether you made money overall; job costing shows where.
Use Projects to track client jobs and Classes to track programs, departments, or service lines. Many businesses use both. Both features require QuickBooks Online Plus or Advanced.
Usually not at first. Measure each job's contribution margin (revenue minus direct costs) and make sure total contribution covers overhead. If pricing needs a fully loaded cost, allocate overhead with one simple driver such as labor hours or revenue share.
Nonprofits track by program, and add grants as a second dimension if funders require it. Clean program tracking also makes the functional expense split (program, management and general, fundraising) much easier.
Want it set up for you? Kalos sets up job costing, cleans up history where it’s worth it, and builds the monthly review into your close as part of Ledger, Rhythm, or Compass.
Bring your last month’s P&L if you have it handy. If you don’t, that’s useful to know too.
Book a 30-minute call