> For the complete documentation index, see [llms.txt](https://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://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.

This page sets out how BlueGamma values interest rate swaps and computes the figures shown across the Swap MtM surfaces 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 and how often it refreshes, see [Where BlueGamma's data comes from](/documentation/reference/where-bluegammas-data-comes-from.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).

On the Clean/Dirty statement this identity holds **to the penny on every row**. 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 a Swap MtM 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. The chart below is the SONIA swap curve those replacement rates are read from.

<figure><img src="https://3184259219-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmmQPefoflG1RwUnUKKBR%2Fuploads%2Fgit-blob-92ce9ca3434da68c7cae62ea42ca411d2e53dacf%2Fsonia-swap-curve-methodology.png?alt=media" alt="SONIA swap curve as of 21 August 2026, rising from 3.74% at 1M to a peak near 5.09% at 30Y"><figcaption><p>SONIA swap curve, as of 21 Aug 2026. The 5-year replacement rate reads 4.375%.</p></figcaption></figure>

**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 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 BlueGamma's data comes from](/documentation/reference/where-bluegammas-data-comes-from.md) — Data sources and refresh


---

# 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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
