# How to read a profit and loss statement

A profit and loss statement (income statement) read line by line, with a worked example for a small Canadian café: revenue, cost of goods sold, gross margin, expenses and net income, and what isn't on it.

Published: 2026-10-04 · Spark

---

{/* Sources, checked October 2026:
    T2125 gross profit = gross income minus cost of goods sold (line 8519): https://www.canada.ca/en/revenue-agency/services/forms-publications/publications/t4002/t4002-4.html
    GIFI income statement codes for corporations (RC4088): https://www.canada.ca/en/revenue-agency/services/forms-publications/publications/rc4088/general-index-financial-information-gifi.html
    Drawings not deductible: https://www.canada.ca/en/revenue-agency/services/forms-publications/publications/t4002/t4002-5.html
    The café figures are an illustration, not data. */}

A profit and loss statement (P&L, also called an income statement) shows what your business earned and spent over a period, and what was left. Read it top to bottom: **revenue**, minus **cost of goods sold**, gives **gross profit**; minus **operating expenses** gives **net income**, your profit before income tax. The two numbers worth checking first are your **gross margin** (gross profit as a percentage of revenue) and your **net margin** (net income as a percentage of revenue), and how both have changed since last year.

A P&L covers a stretch of time, like a month, a quarter or a year. That's different from a balance sheet, which is a snapshot of what you own and owe on one day.

## The parts, from top to bottom

### Revenue (sales, income)

Everything you billed or sold in the period, **before** GST/HST. The tax you collect belongs to the CRA, so it isn't revenue. A good P&L splits revenue into a few lines that mean something to you, such as product vs service, or retail vs wholesale.

### Cost of goods sold (COGS, cost of sales)

What you spent directly on what you sold: stock you resold, materials that went into jobs, food in a restaurant, subcontractors on a construction job. If you sold nothing, you wouldn't have spent it. A pure service business may have little or none.

### Gross profit

Revenue minus cost of goods sold. On Form T2125, sole proprietors report it on [line 8519](https://www.canada.ca/en/revenue-agency/services/forms-publications/publications/t4002/t4002-4.html). It tells you how much each sale contributes before overheads. **Gross margin** = gross profit ÷ revenue.

### Operating expenses (overheads)

The costs of running the business whether you sell a lot or a little: rent, wages, insurance, software, phone, advertising, accounting, bank fees, vehicle costs. These are usually listed by account from your [chart of accounts](/guides/chart-of-accounts-for-small-business-canada).

Depreciation, or capital cost allowance for tax, appears here too. It's the year's share of the cost of equipment, vehicles and computers. See [capital cost allowance explained](/guides/capital-cost-allowance-explained).

### Net income (net profit, the bottom line)

Gross profit minus operating expenses. For a corporation, income tax comes off after this to give net income after tax. For a sole proprietor, this is the business income that goes on your personal return, and the income tax is yours, not the business's. **Net margin** = net income ÷ revenue.

## A worked example

A café in Ontario, run as a corporation. Its P&L for the 2026 fiscal year, with the year before for comparison:

<table className="mt-6 w-full text-left text-[14px]">
  <thead>
    <tr className="border-b border-border text-fg">
      <th className="py-2 pr-4 font-medium"></th>
      <th className="py-2 pr-4 font-medium">2026</th>
      <th className="py-2 font-medium">2025</th>
    </tr>
  </thead>
  <tbody>
    <tr className="border-b border-border"><td className="py-2 pr-4 text-fg" colSpan="3"><strong>Revenue</strong></td></tr>
    <tr className="border-b border-border"><td className="py-2 pr-4">Food and drink sales</td><td className="py-2 pr-4">$312,000</td><td className="py-2">$287,000</td></tr>
    <tr className="border-b border-border"><td className="py-2 pr-4">Catering</td><td className="py-2 pr-4">$18,000</td><td className="py-2">$14,000</td></tr>
    <tr className="border-b border-border"><td className="py-2 pr-4 text-fg"><strong>Total revenue</strong></td><td className="py-2 pr-4 text-fg"><strong>$330,000</strong></td><td className="py-2 text-fg"><strong>$301,000</strong></td></tr>
    <tr className="border-b border-border"><td className="py-2 pr-4 text-fg" colSpan="3"><strong>Cost of goods sold</strong></td></tr>
    <tr className="border-b border-border"><td className="py-2 pr-4">Food and beverage purchases</td><td className="py-2 pr-4">$102,300</td><td className="py-2">$87,600</td></tr>
    <tr className="border-b border-border"><td className="py-2 pr-4">Cups and packaging</td><td className="py-2 pr-4">$9,900</td><td className="py-2">$8,700</td></tr>
    <tr className="border-b border-border"><td className="py-2 pr-4 text-fg"><strong>Total cost of goods sold</strong></td><td className="py-2 pr-4 text-fg"><strong>$112,200</strong></td><td className="py-2 text-fg"><strong>$96,300</strong></td></tr>
    <tr className="border-b border-border"><td className="py-2 pr-4 text-fg"><strong>Gross profit</strong></td><td className="py-2 pr-4 text-fg"><strong>$217,800</strong></td><td className="py-2 text-fg"><strong>$204,700</strong></td></tr>
    <tr className="border-b border-border"><td className="py-2 pr-4">Gross margin</td><td className="py-2 pr-4">66.0%</td><td className="py-2">68.0%</td></tr>
    <tr className="border-b border-border"><td className="py-2 pr-4 text-fg" colSpan="3"><strong>Operating expenses</strong></td></tr>
    <tr className="border-b border-border"><td className="py-2 pr-4">Wages and benefits</td><td className="py-2 pr-4">$118,500</td><td className="py-2">$112,000</td></tr>
    <tr className="border-b border-border"><td className="py-2 pr-4">Rent</td><td className="py-2 pr-4">$36,000</td><td className="py-2">$34,800</td></tr>
    <tr className="border-b border-border"><td className="py-2 pr-4">Utilities</td><td className="py-2 pr-4">$7,800</td><td className="py-2">$7,500</td></tr>
    <tr className="border-b border-border"><td className="py-2 pr-4">Card processing fees</td><td className="py-2 pr-4">$6,900</td><td className="py-2">$6,300</td></tr>
    <tr className="border-b border-border"><td className="py-2 pr-4">Repairs and maintenance</td><td className="py-2 pr-4">$4,200</td><td className="py-2">$2,900</td></tr>
    <tr className="border-b border-border"><td className="py-2 pr-4">Insurance</td><td className="py-2 pr-4">$3,600</td><td className="py-2">$3,400</td></tr>
    <tr className="border-b border-border"><td className="py-2 pr-4">Accounting</td><td className="py-2 pr-4">$3,000</td><td className="py-2">$2,800</td></tr>
    <tr className="border-b border-border"><td className="py-2 pr-4">Interest and bank charges</td><td className="py-2 pr-4">$2,700</td><td className="py-2">$3,100</td></tr>
    <tr className="border-b border-border"><td className="py-2 pr-4">Advertising</td><td className="py-2 pr-4">$2,400</td><td className="py-2">$1,500</td></tr>
    <tr className="border-b border-border"><td className="py-2 pr-4">Software and subscriptions</td><td className="py-2 pr-4">$1,800</td><td className="py-2">$1,600</td></tr>
    <tr className="border-b border-border"><td className="py-2 pr-4">Depreciation</td><td className="py-2 pr-4">$6,000</td><td className="py-2">$5,300</td></tr>
    <tr className="border-b border-border"><td className="py-2 pr-4 text-fg"><strong>Total operating expenses</strong></td><td className="py-2 pr-4 text-fg"><strong>$192,900</strong></td><td className="py-2 text-fg"><strong>$181,200</strong></td></tr>
    <tr className="border-b border-border"><td className="py-2 pr-4 text-fg"><strong>Net income before tax</strong></td><td className="py-2 pr-4 text-fg"><strong>$24,900</strong></td><td className="py-2 text-fg"><strong>$23,500</strong></td></tr>
    <tr className="border-b border-border"><td className="py-2 pr-4">Net margin</td><td className="py-2 pr-4">7.5%</td><td className="py-2">7.8%</td></tr>
  </tbody>
</table>

The figures are made up for the example, but the layout is the standard one.

### Reading it

**Start with the bottom line, then look up.** Profit rose from $23,500 to $24,900. That looks fine. But revenue rose 9.6%, from $301,000 to $330,000, and profit rose only 6.0%. Something ate part of the growth. Reading up the page tells you what.

**Gross margin fell two points**, from 68.0% to 66.0%. On $330,000 of sales, two points is **$6,600**. Food costs went up faster than prices. That's the biggest single thing on this P&L, and it's fixable: a price review, a supplier change, or tighter portioning and less waste.

**Wages rose 5.8%**, slower than sales. As a share of revenue they fell from 37.2% to 35.9%. The café is getting more out of its staff hours, which is good.

**Rent is fixed.** It went up $1,200, but as a share of sales it fell from 11.6% to 10.9%. More sales through the same space is how a café grows into its rent.

**Repairs jumped 45%**, from $2,900 to $4,200. One year isn't a pattern, but if the espresso machine is starting to fail, a replacement belongs in next year's plan.

**Advertising rose $900**, and catering revenue rose $4,000. That may or may not be connected, but it's the right question to ask.

The overall reading: a healthy café growing at about 10% a year, giving back part of its growth through food costs.

## Five questions to ask of any P&L

1. **Is revenue up or down, and by how much?** Compare to the same period last year, not last month, if the business is seasonal.
2. **What's the gross margin, and is it moving?** A falling gross margin means costs are rising faster than prices.
3. **What are the three biggest expenses as a share of revenue?** Those are where a change makes a difference. A 10% saving on software is noise. A 10% saving on food costs is real money.
4. **Is any line unusual?** A big jump in one expense is usually either a one-off or a bookkeeping error. Find out which.
5. **What's the net margin?** That's what's left of each dollar of sales. It's what pays the owner, the debt and the taxes, and what's left over grows the business.

## What a P&L doesn't show

This is where a P&L confuses people, because the profit on it is rarely the same as the change in your bank balance. These don't appear on a P&L:

- **GST/HST.** It's collected and paid on the CRA's behalf, so it sits on the balance sheet.
- **Loan principal.** The interest is an expense; the repayment of the loan itself isn't.
- **Equipment purchases.** A $12,000 oven doesn't appear as $12,000 in the year you buy it. Only that year's depreciation does.
- **Owner's draws and dividends.** Taking money out isn't an expense. The CRA says not to deduct [drawings paid to yourself](https://www.canada.ca/en/revenue-agency/services/forms-publications/publications/t4002/t4002-5.html). Salary paid through payroll to a corporation's owner is an expense, though. See [salary vs dividends](/guides/salary-vs-dividends-canada).
- **Money owed but not yet paid**, if the P&L is on the accrual basis. An invoice sent on December 28 is revenue in December even if the cash arrives in January. [Cash vs accrual accounting](/guides/cash-vs-accrual-accounting-canada) explains the difference.

So the café above made $24,900 of profit, but if it repaid $15,000 of a loan and bought a $12,000 oven, its bank balance went down over the year. Both are true. That's why a business also needs a balance sheet and a cash flow view.

## A P&L is only as good as the books behind it

Every number on a P&L is a total of transactions sorted into accounts. If a supplier payment was put in the wrong category, or the owner's grocery run went into expenses, or a month's card statement never got entered, the P&L is wrong in a way that's hard to spot from the summary. Reconciling every account every month ([how to reconcile a bank account](/guides/how-to-reconcile-a-bank-account)) is what makes the P&L something you can act on.

For a corporation, the year-end P&L becomes the income statement on the T2, reported in the CRA's [GIFI codes](https://www.canada.ca/en/revenue-agency/services/forms-publications/publications/rc4088/general-index-financial-information-gifi.html). For a sole proprietor, it becomes Form T2125.

## Where Spark Books helps

[Spark Books](/books) keeps the double-entry books a P&L is built from. It sorts each transaction on your uploaded bank and card statements into a Canadian chart of accounts with the GST/HST split out, so tax isn't counted as revenue or expense. Personal spending goes to owner's draw or the shareholder loan, not expenses, and a payment from your chequing account to your card is recorded as a transfer, not spending. At year-end you get one download for your accountant. It's free, with no card.
