Ask a freelancer how much they made last year and most will quote you a revenue number — the total that landed in their bank account from clients. Ask them what they actually kept, and the room goes quiet. Revenue is the number that feels good. Profit is the number that pays your rent. A profit and loss statement (P&L) is the one-page document that turns the first into the second, and you do not need an accountant or accounting software to build one.
This guide walks through building a P&L from scratch, in plain language, with real numbers. By the end you will be able to produce one in about 30 minutes a month and know exactly where your money goes.
What a Profit & Loss Statement Actually Is
A P&L is a summary of what came in and what went out over a fixed period — usually a month, a quarter, or a year. It has three moving parts:
- Revenue — every dollar you invoiced and collected in the period.
- Expenses — every dollar you spent to run the business.
- Net profit — revenue minus expenses. This is the number that matters.
That is the entire structure. Everything else is just organizing those three buckets so the final number is honest. The reason freelancers avoid it is not complexity — it is that the profit number is often smaller than they expect, and nobody likes confronting that. But a smaller-than-expected number you can see is a problem you can fix. An invisible one just compounds.
Revenue is vanity, profit is sanity, cash in the bank is reality. If you only track one number, track profit.
Step One: Total Your Revenue (Collected, Not Invoiced)
Start with what you actually collected, not what you billed. This distinction trips up new freelancers constantly. If you invoiced $8,000 in June but a client paid $3,000 of it in July, your June revenue is what hit your account, not the full invoice value. A P&L built on a cash basis — counting money when it moves, not when it is promised — is simpler and more honest for most solo operators.
Pull your revenue from one source of truth. If you track your work sessions and invoices in one place, this is a five-minute export. Tools like Stintly let you tag billable time by client and reconcile it against what was actually paid, so you are not stitching together a bank statement and a memory of who still owes you. Add up every client payment in the period and you have your top line. For a working example, say you collected $9,400 in a month.
Step Two: List Every Expense, Grouped by Category
This is where the real work lives, and where most of the value hides. Do not just dump every transaction into one pile. Group expenses into categories so you can see patterns and, later, hand a clean list to your tax preparer. Common freelance categories:
- Software & subscriptions — design tools, hosting, your invoicing app, cloud storage.
- Contractors & outsourcing — anyone you paid to help deliver client work.
- Equipment — laptop, monitor, camera, tools of the trade.
- Home office & utilities — the business-use portion of rent, internet, and power.
- Professional services — accountant, lawyer, bank fees, payment processor cuts.
- Marketing — website, ads, portfolio hosting, business cards.
- Travel & mileage — client visits, job sites, conferences.
Be ruthless about capturing the small recurring ones. A $15 subscription feels invisible, but twelve of them is $180 a month — over $2,000 a year quietly leaving your business. Seeing them lined up in categories is often the first time freelancers realize how much their tool stack costs.
The expense that hurts you is never the big one you noticed. It is the small recurring one you forgot you were paying.
Ready to put this into practice? Download Stintly for Free — it’s free and works offline.
Step Three: Separate Cost of Delivery from Overhead
Once you have categories, split them into two groups. This one move turns a boring list into a diagnostic tool.
- Direct costs (cost of delivery) — expenses tied to specific client work. A subcontractor you hired for one project, stock assets you bought for a job, mileage to a client site. These scale up when you take on more work.
- Overhead (fixed costs) — expenses you pay whether or not you have clients. Your software subscriptions, your accountant, your home office. These stay roughly flat.
Why bother? Because the gap between revenue and direct costs is your gross profit — the money available to cover overhead and pay yourself. If gross profit is thin, your pricing is broken. If gross profit is healthy but net profit is thin, your overhead is bloated. Those are two completely different problems with different fixes, and you cannot tell them apart without this split.
Continuing our example: $9,400 revenue, $1,200 in direct costs, gives $8,200 gross profit. Subtract $2,100 in overhead and you land at $6,100 net profit for the month.
Step Four: Account for Taxes You Have Not Paid Yet
Here is the trap that sinks freelancers: that $6,100 is not yours. A meaningful slice belongs to the tax authority — you just have not sent it over yet. If you treat pre-tax profit as spendable income, you will spend money you owe and face a brutal quarterly bill.
Add a line to your P&L for estimated tax set-aside. A common rule of thumb is 25–30% of net profit, though your actual rate depends on where you live and your total income. On $6,100, setting aside 28% means parking about $1,700. That leaves roughly $4,400 as true take-home for the month. Now you have a number you can actually build a life around.
Move that tax money to a separate account the day you calculate it. Profit that lives in the same account as your operating cash gets spent — not out of dishonesty, but out of proximity. Physical separation is the only reliable defense.
Step Five: Compare Months and Read the Trend
A single P&L is a snapshot. The real insight comes from stacking three or six of them side by side. Trends tell you things a single month never can:
- Is revenue seasonal? Many trades see summer spikes and winter troughs. Knowing your pattern lets you build a buffer before the slow months instead of panicking during them.
- Is overhead creeping? If fixed costs climb month over month while revenue is flat, you are slowly strangling your own margin.
- Is a client actually profitable? A client who pays well but demands endless unbilled revisions can have a worse effective margin than a smaller, cleaner one.
This is where field-based businesses especially benefit from job-level tracking. Operators running crews — a lawn care team using LawnBook, a cleaning company on ShineBook, or a contractor doing job costing in TrestleBook — live or die on knowing which routes and jobs actually clear a profit after fuel, labor, and materials. The same logic applies to a landlord running the numbers on each unit in KeyLoft: portfolio-level revenue hides the one property quietly losing money every month. A P&L per client, per job, or per property surfaces the loser you would otherwise carry for years.
You cannot fire your worst client until you can prove, in numbers, that they are your worst client.
Step Six: Make It a 30-Minute Monthly Habit
A P&L you build once and abandon is a curiosity. A P&L you build every month is a steering wheel. The trick is making it fast enough that you actually do it. Here is a workflow that keeps it under half an hour:
- Track as you go — log billable time and expenses when they happen, not in a month-end scramble. Recording an expense takes ten seconds live and ten minutes to reconstruct later.
- Keep categories fixed — do not reinvent your buckets each month. Consistency is what makes month-to-month comparison possible.
- Reconcile once — on the first of the month, pull collected revenue and categorized expenses, drop them into the same template, and read the number.
Because so much of this depends on clean input, capture matters more than the spreadsheet. Logging billable hours and expenses in something like Stintly as they happen means your month-end P&L is mostly assembled before you sit down to build it — and because it works offline, you can record a job-site expense or a client session the moment it happens, no signal required.
A Simple Template to Copy
You do not need software. A single sheet with these lines does the job:
- Revenue collected — $9,400
- Direct costs — −$1,200
- Gross profit — $8,200
- Overhead — −$2,100
- Net profit (pre-tax) — $6,100
- Tax set-aside (28%) — −$1,700
- True take-home — $4,400
Seven lines. That is the whole thing. The value was never in the format — it is in forcing yourself to fill in every line honestly, including the ones you would rather not look at.
Most freelancers spend years flying on the revenue number alone, mistaking a busy month for a profitable one. Thirty minutes a month and a seven-line sheet is all that stands between you and actually understanding your business. Build one for last month tonight. The number might sting — but a number you can see is a number you can grow.