What is an income statement?

An income statement, also known as a profit & loss (P&L) statement, is one of the foundational financial statements used in accounting. It shows a company’s revenues, expenses, and profits over a given period of time.

This differs from the cash flow report, as the P&L statement does not show many of the cash inflows and outflows of the business such as loan payments, investments, and dividends.

The timing of when a revenue or expense is recognized can differ significantly from the time an invoice is paid. On the revenue side for example, it’s common for a company to recognize revenue when an invoice is sent, even though payment has not been received, by debitting Accounts Receivable and crediting Revenue. Later, when the customer pays the invoice, a separate journal entry is created to credit Accounts Receivable, and debit Cash. The former journal entry will show only on the income statement, and the latter journal entry will show only on the cash flow report.

How does Teal’s income statement work?

The income statement returns an array of ledger summaries for ledger types equal to revenue or expense. It also returns calculated totals that are typically included in an income statement, such as sub_type totals (e.g. “Total Cost of Goods Sold”) and profit metrics (e.g “Gross Profit” and “Net Profit”). The values are tabulated over the specified date range.

Ledger summaries are returned in the order that you can render them in your user interface. This makes it easy to display a conventional income statement with minimal effort.

Embedding the income statement

You can use the Get Income Statement endpoint in order to get the data required for producing an income statement.

Creating the income statement UI

In order to create a useful income statement interface for your users, we recommend adding two UI elements to your report:

  • a date picker
  • the ability to explore the transactions that are within each listed ledger using the ledger statement report for each ledger

The reports interfaces page provides details and code snippets on how to implement these features.