Updated: 5 days ago
To create a live profit and loss statement in Google Sheets, keep every transaction on its own tab with a date, a category and an amount. Then build the P&L with SUMIFS formulas that total each category for each month. Put categories down the rows and months across the columns. Add a transaction and the statement updates by itself.

A P&L is arithmetic: income minus expenses. Everything else is formatting. Setup takes about twenty minutes, and after that, each month is mostly categorizing.
What a profit and loss statement tells you
A P&L, also called an income statement, answers one question for a period, usually a month: did the business make money? Income goes at the top, then what it cost to deliver (if you sell products), then operating expenses, and net profit or loss at the bottom. The layout is the same for a one-chair studio and a large company. Only the size of the numbers changes. If you run a salon, here's how to read a salon P&L and the six numbers to check.
Why Google Sheets is a good place to start
It's free, it works on your phone, and you can share it with your bookkeeper or CPA without exporting anything. The formulas you learn here work the same in Excel. And because you categorize every transaction yourself, you actually look at your numbers, which is the whole point. If choosing categories is where you get stuck, start with these 20 business expense categories for a service business.
Before you build
Have three things ready:
A month of transactions from every business account and card, downloaded as CSV files. Export the same report each month so the columns always line up.
A rough category list. You'll refine it, so don't agonize.
Business and personal money kept apart. If they're mixed, the P&L will be wrong before you start, so separate business and personal finances first.
How to build a live P&L in Google Sheets, step by step
You'll make three tabs: Categories, Transactions and P&L. You only ever type into the first two. The P&L fills itself in.
Step 1: The Categories tab
In column A, list every category, one per row, starting in A2. If you'd like a starting structure, here's how to build a simple chart of accounts. In column B, give each category a type: Income, Cost of sales, Expense or Exclude. "Exclude" is for money that moves but isn't profit or loss: transfers between accounts, credit card payments, owner's draws and loan principal. These stay off the P&L entirely.
Step 2: The Transactions tab
Set up these columns, with headers in row 1:
A | B | C | D | E |
|---|---|---|---|---|
Date | Description | Amount | Account | Category |
Enter money in as a positive number and money out as a negative number, which is how most bank exports already show it. Then make Category a dropdown, so names always match exactly. Select column E, choose Data → Data validation → Add rule, set the criteria to Dropdown (from a range), and enter Categories!A2:A as the range.
Step 3: The P&L layout
On the P&L tab:
Header: A1 is your business name. A2 is Profit and Loss Statement. A3 says Year, and in B3 you type the year (for example, 2026).
Months: row 5 holds the months. In B5 enter =DATE($B$3,1,1). In C5 enter =EDATE(B5,1) and copy it right to M5. Select B5:M5, choose Format → Number → Custom number format, and type mmm so they show Jan, Feb, Mar. In N5 type Year total.
Rows: down column A, put your Income categories in rows 7 to 10 and Total income in row 11. Put Cost of sales categories in rows 12 to 15, Total cost of sales in row 16 and Gross profit in row 17. Put Expense categories in rows 20 to 35, Total expenses in row 36 and Net profit (loss) in row 38. Add rows if you need more. Each category name must match the Categories tab exactly.
Step 4: The one formula that makes it live
In the first income row, cell B7, paste:
=SUMIFS(Transactions!$C:$C, Transactions!$E:$E, $A7, Transactions!$A:$A, ">="&B$5, Transactions!$A:$A, "<"&EDATE(B$5,1))
It reads: add up the amounts where the category matches this row and the date falls in this column's month. Copy it across to M7 and down through every income row. The dollar signs keep the references pointing the right way as you copy.
For cost of sales and expense rows, put a minus sign in front, because spending comes in as negative numbers and you want it to show as a positive cost. For the first expense row, B20, that's:
=-SUMIFS(Transactions!$C:$C, Transactions!$E:$E, $A20, Transactions!$A:$A, ">="&B$5, Transactions!$A:$A, "<"&EDATE(B$5,1))
Refunds come in as positive numbers and reduce the cost automatically.
Step 5: Totals and net profit
Total income (row 11): =SUM(B7:B10)
Total cost of sales (row 16): =SUM(B12:B15)
Gross profit (row 17): =B11-B16
Total expenses (row 36): =SUM(B20:B35)
Net profit (loss) (row 38): =B17-B36, which is gross profit minus total expenses. If you have no cost of sales, it's simply total income minus total expenses.
Year total (column N): =SUM(B7:M7) on each row.
You can also add a Profit margin row under net profit with =IFERROR(B38/B11,""). Here's what a healthy profit margin looks like for a service business.
Step 6: Add a safety check and format
Below net profit, add an Uncategorized row with this formula in column B, copied across to M:
=SUMIFS(Transactions!$C:$C, Transactions!$E:$E, "", Transactions!$A:$A, ">="&B$5, Transactions!$A:$A, "<"&EDATE(B$5,1))
If it isn't zero, some transactions still need a category, and the month isn't finished. Then format the numbers as currency (Format → Number → Currency). Color net profit with Format → Conditional formatting: green if greater than 0, red if less than 0. To keep the months visible as you scroll, click any cell in row 5 and choose View → Freeze → Up to row 5.
That's a live P&L. From now on, the only monthly job is adding transactions and picking their categories.
Should months go in rows or columns?
On the P&L, put categories down the rows and months across the columns. That's how financial statements are read, and it lets you compare January to June along a single row. On the Transactions tab, use one row per transaction and never a column per month. A single long list is what SUMIFS needs to work.
Two practical reasons this layout wins. Adding a new category means adding one row, not reshaping the sheet. And a long Transactions list can grow for years without breaking any formula, whereas a sheet with a column per month has to be rebuilt every January.
What the finished P&L looks like
Here's an example for a small service business. Only June (column G) is shown filled in. Every other month column fills in the same way as transactions are added.
Row | A | B | … | G |
|---|---|---|---|---|
1 | Your Business Name | |||
2 | Profit and Loss Statement | |||
3 | Year | 2026 | ||
5 | Category | Jan | … | Jun |
6 | INCOME | |||
7 | Client retainers | $8,400 | ||
8 | Project work | $3,200 | ||
9 | Course sales | $950 | ||
11 | Total income | $12,550 | ||
19 | EXPENSES | |||
20 | Software and subscriptions | $487 | ||
21 | Contractors | $2,100 | ||
22 | Marketing and advertising | $640 | ||
23 | Professional fees | $350 | ||
24 | Education | $197 | ||
25 | Office supplies | $84 | ||
26 | Travel | $312 | ||
27 | Meals (business) | $76 | ||
28 | Bank and merchant fees | $148 | ||
29 | Insurance | $220 | ||
36 | Total expenses | $4,614 | ||
38 | Net profit (loss) | $7,936 |
There are no cost-of-sales rows in this example, so net profit is total income minus total expenses. The layout is meant to be boring. Boring is what makes a financial statement easy to read.
How to feed the P&L from your bank's CSV export
Download the month's CSV from each account, paste the rows under the existing ones on the Transactions tab, and fill in the Category column for the new lines. The P&L reads the whole tab, so it updates the moment the last category is filled. Google Sheets can't connect to your bank on its own. The CSV export is the bridge.
Three things break this setup, and all three are easy to prevent:
Signs flipped. Some banks and most card statements export spending as positive numbers. If yours does, flip them before pasting: put the amounts in a spare column, use =-C2 beside them, then paste the results back as values. Otherwise your expenses will show up as income. If your bank exports separate Debit and Credit columns, make the Amount column =Credit-Debit.
Dates that aren't really dates. If imported dates sit on the left of the cell, Sheets is reading them as text and SUMIFS will skip them. Select the column and choose Format → Number → Date. If that doesn't fix it, check that File → Settings → Locale matches your bank's date format.
Columns that move. Paste the same export every month, in the same column order. If a bank changes its format, rearrange the columns before pasting, not after.
Also, a credit card payment will show up in your checking export. Give it a category with the Exclude type, such as Transfer. The purchases are already on the card's export, and counting the payment too would count them twice. And if one charge covers several categories, like a warehouse-store run, split it across categories before you move on.
Where DIY P&Ls go wrong
Counting credit card payments as expenses. The expense happened when you used the card. The payment just moves money between accounts. Categorize it as a transfer.
Mixing personal spending into business categories. Your gym membership isn't professional development. A grocery run after a client meeting isn't a business meal.
Recording owner pay the wrong way. It depends on how your business is set up. If you're a sole proprietor or single-member LLC, money you take out for yourself is an owner's draw. It isn't an expense, so give it the Exclude type (IRS Publication 334). If your business is taxed as an S corporation and you pay yourself a salary through payroll, that salary is a wage expense and belongs on the P&L. Distributions on top of it don't.
Meals at full value, deducted at half. Record the whole business meal on the P&L. Generally only 50% of a business meal is deductible (IRS Publication 463), and your tax preparer applies that limit when the return is done.
Changing category names. If June says "Marketing," July says "Advertising" and August says "Promo," you can't compare months. The dropdown from Step 2 prevents this.
Not checking against the bank. Each month, compare the Transactions tab with your statement's total money in and money out. If they don't tie, the P&L isn't finished.
This is general education, not tax advice. A CPA or Enrolled Agent can advise on your situation.
How to use your P&L once you have it
Run it on the same day each month. The first business day works for most people.
Compare three months side by side. That's built in now that months run across the columns. Trends and seasonality show up in a way one month never shows. Here's how to read a profit and loss statement line by line.
Ask one question a month. Pick the one line that surprised you and look into it. Don't overhaul everything at once.
Share it with your accountant more than once a year. A quarterly look gives them time to suggest changes before the year closes, rather than after.

You don't need the perfect spreadsheet tonight. You need a working one this week. The first imperfect P&L teaches you more than the tenth perfect one you keep meaning to start.
When the spreadsheet stops being enough
A P&L tells you that you made $7,936 in June. It doesn't tell you which clients or services produced it, which costs are creeping up, or how June compares with your personal finances, which is where most owner decisions actually get made. After a few months, many owners find the numbers are clear but the decisions still aren't. That's the point to add analysis, not more formulas.

When you're ready for that next step, the Money Mastery System gives you five connected workbooks, Clarity AI, and the Money Mastery Collective, a community of people doing the same work beside you. Start free with La Soglia.
Frequently asked questions
What formula do I use for net profit in Google Sheets?
Net profit is one subtraction: total income minus total expenses. If total income is in B11 and total expenses in B36, the formula is =B11-B36. If you sell products, subtract cost of sales first to get gross profit, then subtract expenses. Format the cell as currency and make it bold.
Can Google Sheets pull my bank transactions automatically?
Not on its own. Google Sheets has no built-in bank feed, so transactions arrive by downloading a CSV export from your bank and pasting it into the sheet. Some paid add-on services connect banks to Sheets. Once your P&L reads a Transactions tab, the only recurring work is categorizing new rows.
What categories should a small business P&L include?
Start with the categories that match how you actually spend: software, contractors, marketing, professional fees, education, supplies, travel, business meals, bank and merchant fees, insurance and "other." Add cost of sales if you sell products. Consistency matters more than the exact list, so use the same categories every month.
What's the difference between a P&L and a cash flow statement?
A P&L shows whether the business made money over a period: income minus expenses. A cash flow statement shows when money actually moved in and out, including things that aren't on the P&L, like loan payments and owner's draws. A business can show a profit and still run short of cash. Most small businesses keep their books on a cash basis, and here's cash vs accrual in plain English.
Should I record owner pay on my P&L?
It depends on your business structure. For a sole proprietor or single-member LLC, what you take out for yourself is an owner's draw. It's not an expense and stays off the P&L. If your business is taxed as an S corporation and pays you a salary through payroll, that salary is a wage expense and belongs on the P&L.
Is Google Sheets good enough for a real business P&L?
For many small service businesses, yes, especially in the early years or if you want to understand your numbers from the ground up. It's free and easy to share. The limits show up when you want profit by client or service, automatic categorization, or reports you can hand off without maintaining formulas yourself.