> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tight.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Profit & Loss Report

> View your business's revenue, expenses, and profitability

## Overview

A Profit & Loss (P\&L) Report is a financial statement that summarizes the profitability (or lack thereof) for a business in a specific timeframe. The P\&L provides insight into the business’s financial performance by showing the overall profit or overall loss of the business for the specified timeframe, including where money was earned (income) and where money was spent (expenses).

The P\&L reflects the General Ledger (GL) accounts associated with each tracked transaction and journal entry. This financial statement can be customized to view and compare any of the tracked data. It can even be drilled down into to better understand all of the transactions and journal entries making up the total for each specific GL account within the reporting period.

## Embedding the interactive Profit and Loss Report

To initialize the Tight Embedded experience in your React project, follow the instructions on [Embedding Tight's white-labeled UI](/embeddable-ui/react/patterns/embedding).

Below is an example embedding of the Profit and Loss Report:

```TSX ProfitLoss.tsx theme={null}
import { ProfitAndLoss, Tight } from "@tight-embedded/react";
import "@tight-embedded/react/index.css";

function ProfitLossReport({ accessToken }) {
    return (
      <Tight environment="SANDBOX" accessToken={accessToken} >
        <ProfitAndLoss />
      </Tight>
    )
}
```

## Props

<ParamField body={"filters"}>
  <Expandable title={"filters"}>
    <ParamField body={"dimensionValues"}>
      Dimension value filter

      <Expandable title={"child attributes"}>
        <ParamField body={"id"} type={"object"}>
          Id filter - returns all entities with the following attachments.

          <Expandable title={"child attributes"}>
            <ParamField body={"in"} type={"string[]"}>
              List of values to include.
            </ParamField>
          </Expandable>
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField body={"dateRange"} type={"object"} post={["optional"]}>
      The date range for which to show the report.

      Passing in a value for this prop turns this into a controlled component. As such, you must also pass the
      `onChangeDateRange` prop to set the new value in the parent component.

      <Expandable title={"fields"}>
        <ParamField body={"start"} type={"string"}>
          The beginning of the range, inclusive.
        </ParamField>

        <ParamField body={"end"} type={"string"}>
          The end of the range, inclusive.
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body={"grouping"} type={"string"} post={["optional"]}>
  The time period grouping of the report (e.g. for creating a month-over-month report).

  Available options: `NONE`, `MONTHLY`, `QUARTERLY`, `YEARLY`
</ParamField>

<ParamField body={"onChangeGrouping"} type={"function"} post={["optional"]}>
  A function that is called whenever the user changes the grouping from the dashboard.
  This function will only be invoked if the `grouping` prop is also provided. The callback takes a `grouping` as its single
  argument.
</ParamField>

<ParamField body={"onChangeFilters"} type={"function"} post={["optional"]}>
  A function that is called whenever the user changes the filters from the dashboard.
  This function will only be invoked if the `filters` prop is also provided. The callback takes `filters` as its single
  argument.
</ParamField>
