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

# P&L

> See realized and open margin across your book by commodity, book and delivery month, with the basis of every number.

The **P\&L** page shows the margin on every deal in your book, grouped your way and spread across delivery months. Every deal's number says which basis it uses: its contracts, its cost plan or its invoices.

> [!NOTE]
>
> Needs the **P\&L** module and Reports access in your role. Ask your workspace admin.

A deal shows a margin once it has priced purchase and sale contracts, invoices on both sides, or a [cost and income plan](https://docs.mercora.io/trades/financials.md). The [walkthrough](https://docs.mercora.io/getting-started/walkthrough.md) follows one trade from documents to P\&L.

![The P\&L page with the Total P\&L, Realized, Open and Position tiles, the toolbar, and the grid grouped by commodity and origin](https://mintcdn.com/placeholder-f4ffdeec/22McaegbdDRSI41b/images/finance/pnl.png?fit=max\&auto=format\&n=22McaegbdDRSI41b\&q=85\&s=e788a4ba1146eaac28c5be844bd45782)

FY 2026 for Veltana Commodities SA: +\$999 total, all of it realized on the invoices of VCS-S-2026-0714. With no books set up, the grid groups by Commodity, then Origin.

Here the sugar trade VCS-S-2026-0714 is the only deal. Its B/L is approved and both invoices are in, so it's **realized**: AR $15,255.00 minus AP $14,256.00 = **+\$999**, before freight and insurance.

## Read the page

| Tile | What it adds up |
| - | - |
| **Total P\&L** | Margin on every priced deal in the period. The note under it counts any **unpriced** deals left out. |
| **Realized** | Margin on realized deals. |
| **Open** | Margin on open deals, on whichever basis each one uses. |
| **Position** | Net tonnage on deals that aren't realized: contracted purchases minus sales, in MT. Positive is **long**, negative is **short**. Cancelled contracts don't count. |

The tiles follow the period, search and filters, but not the **All**, **Open** and **Realized** chips or the State filter.

In the grid, rows are deals grouped on two levels and columns are delivery months, with a period total at the end. Each deal shows its state, such as **realized**, **open · plan** or **unpriced**. Click a deal to open the trade. **Display** shows or hides each deal's position, counterparties, invoices and exchange rates.

## How each deal is valued

Mercora uses the first basis that applies. The **Basis** filter shows which deals sit on which.

1. **Cost plan**: the trade isn't complete, its [plan](https://docs.mercora.io/trades/financials.md) has valued income and cost lines, and at least one line is open. The margin is the plan's **Provisional**.
2. **Invoiced**, with shipping or billing evidence: invoices on both sides, all convertible. The margin is AR invoiced minus AP invoiced. This is a **realized** deal.
3. **Contracted**: a purchase and a sale contract, every running contract priced and convertible. The margin is sale value minus purchase value.
4. **Invoiced**, without evidence: as in step 2.
5. Otherwise the deal is **unpriced**: listed, but left out of every total.

Every deal on steps 1, 3 and 4 is **open**. Open margin isn't marked to market: it carries the planned, contracted or invoiced margin.

Shipping or billing evidence means the trade is marked complete, or has an approved, processed B/L or railway B/L, mate's receipt, shipping instructions, notice of readiness, statement of facts, commercial, provisional, final or plain invoice, credit or debit note, packing list, delivery order, quantity certificate, final settlement or payment confirmation. A proforma doesn't count.

On the invoiced basis, a credit note counts negative, superseded invoices are left out, a closed invoice counts at what actually settled it, and an invoice with no AR/AP direction isn't counted. A deal with invoices on one side only is never read as a 100% gain or loss.

On the contracted basis, a contract is worth its total value, or unit price times contracted (not loaded) quantity. Cancelled contracts carry no value. Cancelled trades are left out of the P\&L; terminated trades stay in.

## Delivery month

Each deal lands in one month, which sets its column and whether it falls in the period.

* **With shipping or billing evidence**: the on-board or B/L date of its earliest approved B/L (ignoring a B/L dated more than 180 days outside the laycan when another fits), or the trade's creation date if there's no approved B/L. The sugar deal's B/L is dated 20 July 2026, so it lands in July.
* **Otherwise**: the middle of the laycan, then the earliest shipment ETA or ETD, then the trade's creation date. An expected deal is never placed in the past: if that date has gone by, it lands on today.

## Group, filter and set the period

* **Display** → **Grouping** and **Sub-grouping**: **Book**, **Entity**, **Commodity**, **Customer**, **Supplier**, **Origin** or **None**. The page opens by Book, then Commodity when at least half the deals are in a [book](https://docs.mercora.io/admin/workspace-settings.md#books), and otherwise by Commodity, then Origin.
* **Display** → **Columns**: **Recent months** (this month and the two before, with the rest folded), **Every month**, **Quarters** or **Period total**.
* **Filter** by state, entity, book, commodity, origin, counterparty or basis. Search matches deal, contract or counterparty.
* The **period** control offers your reporting year (for example **FY 2026**), **MTD** and **Custom**. Your admin sets when the year starts in [Workspace settings](https://docs.mercora.io/admin/workspace-settings.md#workspace-profile).

## Currencies and exchange rates

**Display** → **Currency** sets the currency every figure is shown in. Your reporting currency is listed first, marked **tenant**. When some books are contracted in another currency, **Native · as contracted** shows each group in its contract currency and consolidates the total.

* **Contracted** and **cost plan** margins convert at the trade's [FX override](https://docs.mercora.io/trades/overview.md#fx-overrides), otherwise today's ECB (European Central Bank) rate.
* **Invoices**: the paid part converts at the rates on its payments, oldest first, preferring a rate someone typed, then the trade's override, then the ECB rate filled in when the payment was recorded, then today's ECB rate. The unpaid part converts at the override, otherwise today's rate.

The **Rate** column shows each invoice's rate and its source.

> [!NOTE]
>
> Two differences from a trade's Overview tab: its **Invoiced** figure converts at the override or today's rate, so a paid foreign-currency invoice can read differently here. And its **Realized** means cash received minus cash paid, while a realized deal here is one valued on its invoices.

## Save, share and export

* **Save as new view…** saves your layout as a view only you see. Admins can make it everyone's starting point with **Display** → **Set as workspace default**.
* **Export** downloads the grid as CSV.
* **Save as PDF** saves the view as shown. If the columns don't fit a page, switch to **Quarters** or **Period total**.

## Next steps

* [Trade financials](https://docs.mercora.io/trades/financials.md): record payments and plan costs for a deal.
* [Reports](https://docs.mercora.io/finance/reports.md): operations, cashflow and overdue payments.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.