Creating a Profit & Loss Report


One of the most fundamental business reports for bookkeeping and accounting is a profit and loss statement (P&L Report). You can easily generate one with the Business features in the Tiller Labs add-on for Google Sheets.

How to create a P&L report

You’ll need the Tiller Labs add-on for Google Sheets to generate a P&L report

  1. Open the Add-ons menu at the top of your Google Sheet.
  2. Choose Tiller Labs > Tools > Create a report > Profit & Loss
  3. Configure the report to meet your needs.
  4. Click Create Report.

A new, readily-printable tab will appear along the bottom of your Google Sheet with the sheet name “P&L Report” containing a report per your configuration settings.

Printing or Saving the Report

Each time you generate a P&L Report, a new tab will appear along the bottom. Feel free to print the report, either a physical copy or to a PDF, and then delete the report tab (by right clicking the tab) from your Tiller spreadsheet if you no longer need it after the original report generation.


If you have a question or need help first search the community to see if someone has already asked and if not click here to quickly post a question about this report in the Get Help > Workflows & Tools category.

Be sure to customize the title of your post with keywords about the issue or question so others can easily find the Q&A in search.

It would be awesome if there was a total column on the right summing up all the monthly columns. Blake

1 Like

I haven’t documented the local template functionality of the reports, @Blake, but you may be able to implement this on your own. When you first run a report, the scripts download a report “template” and hide it in your spreadsheet. (You can unhide it just like any other sheet.) There is a block where the data will populate (that you can’t modify), but you can add/modify the header, footer, and sides of the block. With a little creativity on placing the calculating cell and specifying range (and possibly dividing to account for sum rows) this could be a local mod to the report template that persists for future report executions.

Hope this all makes sense.