---
title: "Forward Booking & Hedging"
space: "Wiki"
url: "https://jmtradelink.com/docs/exim/forward-booking-hedging"
updated: "2026-07-05"
---

# Forward Booking & Hedging

A **Forward Booking** records an FX forward contract with your bank: you lock a rate today for dollars you'll receive (export) or pay (import) later. Exim tracks what each forward covers, how much of it has been used, and the P&L when part of it is cancelled.

![Forward Booking](/files/exim-forward-booking.png)

## Booking a forward

Key fields:

- **Hedge** — *Export* (you'll sell foreign currency) or *Import* (you'll buy it). This decides which documents can be underlyings: SO/SI for export, PO/PI for import.
- **Amount & currency** — the notional, e.g. USD 60,000.
- **Booking rate** = current rate + premium − margin (computed).
- **Maturity window** — the from/to dates in which you may deliver against the forward.
- **Bank** — filtered to banks marked *Indian Bank*.

The document also computes the **forward limit** your bank blocks: a margin percentage tiered by tenor (≤30 days → 4.5%, ≤60 → 7.6%, ≤90 → 8.78%, ≤150 → 10.19%) applied to the INR notional.

### Underlyings

The *Underlying* table lists which orders/invoices this forward hedges. On submit, each underlying document's **Amount Hedged** increases by the covered amount and its **Amount Unhedged** is recomputed (grand total − hedged − advances − natural hedge). The [Hedging Details report](/docs/exim/reports) builds on these numbers.

## The forward's life

```mermaid
flowchart TD
    B["Forward booked<br/>USD 60,000 @ 85.72<br/>status: Open"] --> U1["Pre Shipment loan<br/>utilizes USD 30,000"]
    B --> U2["Customer Payment Entry<br/>utilizes USD 30,000"]
    B --> C["Cancellation<br/>(unused portion, books P&L)"]
    U1 --> Z["Outstanding = amount −<br/>utilization − cancellation"]
    U2 --> Z
    C --> Z
    Z -->|"reaches 0"| X["status: Closed"]
```

**Utilization** happens from three places — you never edit the forward directly:

| Consumer | When |
|---|---|
| **Payment Entry** | A foreign-currency customer receipt selects the forward in its *Forwards* grid; on submit a utilization row lands on the forward |
| **Pre Shipment** | A PCFC loan drawn in foreign currency utilizes forwards for its conversion |
| **Post Shipment** | Same, for post-shipment finance |

The forward's **Amount Outstanding** = amount − total utilization − total cancelled. It can never go negative (over-utilization throws), and at zero the status flips to **Closed**.

## Cancellation and P&L

If a shipment shrinks or a buyer prepays, the unused notional is cancelled with the bank at the prevailing rate. On the forward, fill the cancellation block (date, rate, amount, bank account) and click **Add Cancellation Details**:

- A cancellation row records the rate difference vs the booking rate and the resulting **profit or loss**.
- A Journal Entry posts that P&L against the company's **Exchange Gain/Loss** account, per row.
- Cancelling the JV from the row is also supported if you got it wrong.

The summary block shows total cancelled, the average cancellation rate, and the net cancellation P&L.

> **Cancelling documents:** Forward Bookings are deliberately excluded from ERPNext's cascade-cancel — cancelling an invoice never silently cancels your bank contract. Utilization rows are removed by the consuming document's own cancel (e.g. cancelling the Payment Entry gives the forward its headroom back).
