> ## Documentation Index
> Fetch the complete documentation index at: https://control-dev.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Build a custom report

> Combine group and local accounts into a reusable report with row-specific entities, value modes, and transaction scopes.

export const ControlAppLink = ({path, breadcrumb, children}) => {
  const link = <a href={`https://app.control.dev${path}`} target="_blank" rel="noopener noreferrer" aria-label={breadcrumb ? `Open ${breadcrumb} in Control` : undefined}>
      {children}
    </a>;
  return breadcrumb ? <Tooltip tip={breadcrumb}>{link}</Tooltip> : link;
};

Custom Reports let you combine accounts from different financial statement types in one reusable layout. You can control the entity scope, value calculation, dimensions, and transaction types row by row.

<Note>
  Custom Reports are available on the Enterprise plan. Users with report-viewing access can open Actuals, while
  editing a layout requires configuration access.
</Note>

## Before you begin

Confirm that:

* The required entities have completed their initial data sync.
* Local accounts are mapped to the group chart of accounts when you intend to report across entities.
* You have access to edit financial statement layouts.

## Create a layout

1. Open the <Tooltip tip="Custom Reports → Editor"><ControlAppLink path="/financial-statements/custom-reports/editor"><strong>Custom Reports editor</strong></ControlAppLink></Tooltip>.
2. Create and name a layout. If no Custom Reports layout exists yet, create the default layout first.
3. Use **Show helper** to open the account source panel.
4. Filter the source list by name, code, entity, or account type.
5. Drag group accounts or local accounts into the layout.
6. Use **Add Group**, **Add Header**, or **Add Formula** to organize and calculate the report.
7. Drag rows to reorder them, then confirm that each update finishes saving before opening Actuals.

The same account can appear more than once when you need it in different sections or with different row settings.

## Choose the right account source

| Source        | Use it when                                                    | Entity behavior                                                                |
| ------------- | -------------------------------------------------------------- | ------------------------------------------------------------------------------ |
| Group account | The row should use mapped accounts across one or more entities | Select specific entities, or leave the selection empty to include all entities |
| Local account | The row should use one source-system account from one entity   | The row is fixed to the local account's owning entity                          |

<Warning>
  A local-account row cannot be expanded to other entities. Use a group account when the same report row should
  consolidate mapped accounts from several entities.
</Warning>

## Configure row calculations

Select a row to configure the settings that apply to its values.

### Value mode

| Mode            | Result                                                        |
| --------------- | ------------------------------------------------------------- |
| Period activity | Movements recorded during each displayed period               |
| End amount      | Balance through the end of each displayed period              |
| Period delta    | Change between the beginning and end of each displayed period |

For example, use **Period activity** for revenue and expense flows and **End amount** for balance-sheet balances.

### Entities and dimensions

* Use **Entities** on a group-account row to include only the relevant companies. An empty selection means all entities.
* Use the row's dimension settings when a section should always report a specific dimension scope.
* Review row-level dimension scopes before applying a report-wide dimension filter. Row-level scopes determine how those rows are calculated.

### Transaction types

Choose which transaction categories contribute to a row:

* **Inherit** uses the setting from the nearest parent group.
* **Source transactions** includes entries received from source systems.
* **Eliminations** includes consolidation eliminations.
* **CTA** includes currency translation adjustment entries.

Set transaction types on a parent group when its child rows should follow the same policy. Override individual rows only when their treatment differs.

## Add formulas

Use **Add Formula** for subtotals, ratios, and calculated KPIs. A formula can reference groups or other formula rows, use constants, and combine values with addition, subtraction, multiplication, or division.

You can also configure:

* Lag periods for comparisons with earlier periods
* Currency, percentage, or raw-number output
* Scaling for units such as thousands or millions

After changing a referenced row, verify every dependent formula in Actuals.

## Review the report in Actuals

1. Switch from **Editor** to **Actuals**.
2. Select the layout you want to review.
3. Choose the period, entity, and currency filters.
4. Expand the report groups and compare the result with the expected source values.
5. Open a value's transaction drilldown when you need to investigate its composition.

<Note>
  Drill into rows with different row-level dimension scopes separately. A single drilldown cannot combine selected
  Custom Report rows that use different dimension scopes.
</Note>

## Manage layouts safely

* Copy a layout before making substantial structural changes.
* Make a layout the default when it should open first for all users.
* Use layout history and save points before restoring an earlier structure.
* You cannot delete the default layout or the only active layout. Make another layout the default first.
* Each Custom Reports statement type supports up to 20 layouts.

## Troubleshooting

### Custom Reports is not visible

Confirm that the tenant has an Enterprise plan and that your user has access to financial statements. Layout editing also requires configuration access.

### An account is missing from the source list

Clear the source-panel filters and check whether inactive accounts are hidden. Then confirm that the account has synced and, for group reporting, that its local account is mapped to the expected group account.

### A local-account row is locked to one entity

This is expected. Local accounts belong to a specific entity. Replace it with the corresponding group account when the row should cover multiple entities.

### A value differs from another report

Compare the period, entities, currency, value mode, dimension scope, and transaction types. Also confirm that both reports use the same account mappings.

### A layout cannot be deleted

Check whether it is the default or the only active layout. Create or select another layout, make it the default, and then delete the old layout.

## Related guides

* [Map local accounts to group accounts](/product-docs/configuration/account-mappings)
* [Configure dimension mappings](/product-docs/configuration/dimension-mappings)
* [Browse and analyze transactions](/product-docs/reports/export-transactions)
