> For the complete documentation index, see [llms.txt](https://www.bluegamma.io/documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://www.bluegamma.io/documentation/methodology/swap-mark-to-market.md).

# Swap Mark-to-Market & Accrued Interest

How BlueGamma values interest rate swaps: dirty and clean mark-to-market, accrued interest, valuation timing, curve scenarios and the reporting identities.

BlueGamma values a swap as its dirty mark-to-market: the OIS-discounted present value of the remaining cashflows, including interest accrued to the valuation date, struck on that date's own closing curves. Dirty MtM always equals clean MtM plus accrued interest, to the penny on every row of every report.

This page sets out how BlueGamma values interest rate swaps and computes the figures shown on the Swap Pricer page, each swap's own page and the reports they produce: mark-to-market, accrued interest, payment forecasts and the month-end pack. It describes the calculation conventions, so that anyone reconciling our numbers, or defending them to an auditor, can see exactly how each figure is formed.

For where the underlying market data comes from, see [Where does BlueGamma's data come from?](/documentation/reference/where-bluegammas-data-comes-from.md). For how often it refreshes, see [How Often Is Your Data Refreshed?](/documentation/reference/how-often-is-your-data-refreshed.md).

***

## Dirty, Clean and Accrued

The headline mark-to-market is the **dirty** value: the market value of the swap including interest accrued to date on the current coupon period. It splits into two parts that always reconcile:

$$
\text{Dirty MtM} = \text{Clean MtM} + \text{Accrued Interest}
$$

* **Clean MtM** — the market value excluding interest accrued on the current period. This is the value you would exchange in an assignment, before settling the running coupon.
* **Accrued Interest** — the net interest earned so far in the current period: floating received minus fixed paid, signed by the direction of the swap (positive when you are net owed).

Each leg is booked to the penny before netting, matching how interest receivable and interest payable are carried as separate lines in a ledger.

***

## Accrued Interest and Settlement Rounding

Accrued interest is struck on the same rounding the coupon will settle at. Where an index's market convention rounds the period rate — for example, the compounded SONIA rate rounded to four decimal places of percent under the ISDA definitions — the accrued figure is computed on that rounded rate, so a mid-period accrual and the coupon that eventually settles use one convention rather than two.

$$
\text{Accrued (leg)} = \text{Notional} \times \text{rate} \times \frac{\text{days elapsed}}{\text{day count}}
$$

The realised portion of a floating period is taken from published fixings; accrual is inclusive of the valuation date.

### Example

A **GBP 20,000,000 pay-fixed SONIA swap** at a **3.60%** fixed rate, 45 days into its current annual period. Using the SONIA convention (Actual/365 Fixed) and the overnight fixing of **3.7309%** (as of 20 Aug 2026) as a flat proxy for the compounded floating rate:

| Leg               | Rate    | Accrued over 45 days                         |
| ----------------- | ------- | -------------------------------------------- |
| Floating received | 3.7309% | 20,000,000 × 0.037309 × 45/365 = **£91,995** |
| Fixed paid        | 3.6000% | 20,000,000 × 0.036000 × 45/365 = **£88,767** |
| **Net accrued**   |         | **+£3,228** (payer receives floating)        |

{% hint style="info" %}
The engine compounds the actual daily SONIA path over the period; the flat overnight rate here is a simplification to show the mechanics. The sign follows the swap's direction — a pay-fixed swap receives floating, so a floating rate above the fixed rate accrues positively.
{% endhint %}

***

## Valuation Timing

Every figure on the Swap Pricer page and on each swap's own page is struck at a single valuation moment, stated on screen and on every export.

**"Valued at end of day, \[date]" is inclusive of that date.** The pricing engine accrues interest up to but excluding the valuation instant, so a balance reported as at 30 June reflects interest earned through the close of 30 June, with a coupon paying on 30 June treated as settled that day.

**Each date is valued on that date's own closing market data.** A historical valuation date pins the curves and FX to that date's closing snapshot — it is not today's curve applied to a past position, so a valuation is reproducible after the fact.

**A period that has not yet closed is provisional.** If a valuation date falls today, its closing figures depend on floating fixings that have not published yet, so they are live and will move until those fixings set — typically the business day before a payment. The surface labels this explicitly.

***

## Curves and Scenarios

Swaps are valued with OIS discounting against curves bootstrapped from current market instruments; discounting and forward projection use separate curves, consistent with standard multi-curve practice. See [How We Bootstrap the Yield Curve](/documentation/methodology/how-to-bootstrap-the-yield-curve.md).

The **replacement rate** shown against a traded swap is the live mid rate at which an equivalent swap could be dealt now.

**Curve shock.** A scenario shock applies a parallel shift to the par swap curve in basis points, then re-bootstraps the discount and forward curves and reprices every position from scratch. Because the curve is rebuilt rather than the value extrapolated from a single sensitivity, the result includes convexity and is **not** a PV01 multiple. A shocked figure is a stressed value, not a mark, and is labelled as such wherever it leaves the application.

***

## PV01

PV01 is the approximate change in a swap's value for a one basis point parallel move in rates. It is **signed**: pay-fixed and receive-fixed positions carry opposite signs, so an entity or portfolio PV01 is the **net** of its swaps, and offsetting positions reduce the total.

***

## Multi-Currency Conversion

When a portfolio holds swaps in more than one currency, converted totals use the spot exchange rate at the valuation moment. On a historical valuation date the conversion uses **that date's** spot, so a converted mark-to-market and the FX behind it come from the same moment, never a past mark at today's rate.

Exports always carry each swap's figures in its **own native currency**. Cashflows are never netted across currencies — a payment is a real amount in a real currency — so a payments view totals each currency separately.

***

## Reporting Identities

**Accrued interest movement.** A period report reconciles the accrued balance across the period, and this identity holds on every row:

$$
\text{Opening accrued} + \text{Interest accrued in period} - \text{Coupons settled in period} = \text{Closing accrued}
$$

| Line                         | Amount   |
| ---------------------------- | -------- |
| Opening accrued (30 Jun)     | £8,204   |
| Interest accrued in period   | +£6,146  |
| Coupons settled in period    | −£13,800 |
| **Closing accrued (31 Jul)** | **£550** |

**Which coupons fall in a period.** Coupons settled are the net cashflows with a payment date inside the period, end date inclusive: a coupon paying on the opening date belongs to the prior period, and one paying on the closing date belongs to this one.

**Which swaps a period report includes.** A report over a period covers every swap that was live at **any point within** the period. A swap that matured or terminated during the period still earned interest and settled coupons while it was live, so it appears with those amounts and a zero closing balance — it is not dropped because it is no longer active today.

**Confirmed versus projected coupons.** A forecast coupon is **confirmed** once its floating rate has fixed, so the amount is final. Before that it is **projected**, estimated off the forward curve, and firms up when the rate fixes — typically the business day before the payment.

***

## Schedule Conventions

Swap schedules are built with the market-standard conventions for each index:

| Convention        | Detail                                                                                                                       |
| ----------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| Business-day roll | Period and payment dates roll on the index's holiday calendar                                                                |
| End-of-month rule | Applied where the schedule anchors on a month end                                                                            |
| Day count         | Market standard for the index (e.g. Actual/365 Fixed for compounded SONIA)                                                   |
| Fixing            | Compounded overnight (SONIA, SOFR, ESTR) accrue daily with the applicable lookback; term rates (EURIBOR) fix at period start |

Notionals and dates are business-day adjusted when a swap is saved, so a stored schedule matches the dates the swap will actually settle on.

***

## Precision

The fixed rate you dealt at is carried and displayed at the precision it was booked with, up to five decimal places of percent. Swaps are sometimes dealt to four or five decimal places, and the book carries what you actually dealt rather than a rounded figure.

***

## Related Documentation

* [Discount Factors](/documentation/methodology/discount-factors.md) — How future cashflows are discounted to present value
* [How We Bootstrap the Yield Curve](/documentation/methodology/how-to-bootstrap-the-yield-curve.md) — Curve construction that feeds valuation
* [Forward Rates](/documentation/methodology/forward-rates.md) — How projected floating coupons are formed
* [Swap Mark-to-Market](/documentation/pricers/calculating-the-mtm-of-a-swap.md) — Using the MtM tool in the app
* [Where does BlueGamma's data come from?](/documentation/reference/where-bluegammas-data-comes-from.md): Data sources
* [How Often Is Your Data Refreshed?](/documentation/reference/how-often-is-your-data-refreshed.md): Update frequency by index


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://www.bluegamma.io/documentation/methodology/swap-mark-to-market.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
