Module ndf
Expand description
Non-deliverable FX forward templates — the ndf group, one per currency
with an EMTA Template Terms document for NDFs.
Sources. Every row is cited to its EMTA template, which ISDA’s FX Emerging Markets Documentation page alone now hosts (https://www.isda.org/book/fx-emerging-markets-documentation/; EMTA retired its own copies in 2025). The settlement rate options are Annex A to the 1998 FX and Currency Option Definitions, as amended 3 December 2024. History cites EMTA’s FX market practices (MP numbers).
The shared template skeleton. Every current template is
- USD-settled on New York business days, except
XOF-EUR-NDF; - fixed on a scheduled valuation date adjusted Preceding, or Following after an Unscheduled Holiday;
- disrupted by Price Source Disruption only, falling back to Valuation Postponement and then Calculation Agent Determination. The seven SFEMC Asian templates put an indicative survey rate between those two, with a 3-business-day survey postponement;
- capped at 14 calendar days each for the Deferral Period, the Maximum Days of Postponement and Cumulative Events. The LatAm templates had 30 until 3 December 2021 (MP96).
No document fixes the fixing lag. Each template writes both the
valuation and the settlement date as a “DATE CERTAIN”. The 1998 Definitions
§1.16(f) default — “two Business Days prior to the Settlement Date” —
applies only when a confirmation omits the valuation date. A row’s
fixing_lag is therefore its rate option’s own Annex A spot (“for
settlement in N Business Days”) where that is one or two days, and the 1998
default otherwise; each row says which. The spot lag of 2 and the Modified
Following + end-of-month tenor roll are FX market convention that no EMTA or
ISDA document states (UNVERIFIED).
What is coming. The 2026 ISDA FX Definitions (published 3 March 2026, implemented 22 November 2027) absorb these templates: their provisions move into Main Book Section 9 and the per-currency terms into an “EM Currency Matrix”, applied as it stood on each trade date — which is why each row carries its template’s date.
Not here: the NDO templates, the nine cross-currency NDF templates (BRL, CLP, CNY, COP, INR and KRW against EUR, INR/GBP, KRW/JPY, TWD/EUR), and currencies without a template (PKR, LKR, BDT, TZS, GEL, TRY, RSD).
Structs§
- NdfTemplate
- The terms of one market’s non-deliverable forward: what it fixes on, when, on which calendars, and the caps its disruption fallbacks run to.
Statics§
Functions§
- aoa_usd
AOA-USD-NDFtemplate.- ars_usd
ARS-USD-NDFtemplate.- azn_usd
AZN-USD-NDFtemplate.- brl_eur
BRL-EUR-NDFtemplate.- brl_usd
BRL-USD-NDFtemplate.- clp_eur
CLP-EUR-NDFtemplate.- clp_usd
CLP-USD-NDFtemplate.- cny_eur
CNY-EUR-NDFtemplate.- cny_usd
CNY-USD-NDFtemplate.- cop_eur
COP-EUR-NDFtemplate.- cop_usd
COP-USD-NDFtemplate.- crc_usd
CRC-USD-NDFtemplate.- cross_
ndf 🔒 - A cross-currency row: the reference currency’s USD row’s terms, settled in
settlementonsettlement_centers, its rate the cross of the reference and settlement currencies’ rates against USD. - dop_usd
DOP-USD-NDFtemplate.- dzd_usd
DZD-USD-NDFtemplate.- egp_usd
EGP-USD-NDFtemplate.- ghs_usd
GHS-USD-NDFtemplate.- idr_usd
IDR-USD-NDFtemplate.- inr_eur
INR-EUR-NDFtemplate.- inr_gbp
INR-GBP-NDFtemplate.- inr_usd
INR-USD-NDFtemplate.- kes_usd
KES-USD-NDFtemplate.- krw_eur
KRW-EUR-NDFtemplate.- krw_jpy
KRW-JPY-NDFtemplate.- krw_usd
KRW-USD-NDFtemplate.- kzt_usd
KZT-USD-NDFtemplate.- mad_usd
MAD-USD-NDFtemplate.- myr_usd
MYR-USD-NDFtemplate.- mzn_usd
MZN-USD-NDFtemplate.- ndf 🔒
- Builds one row. Every template shares the spot lag, the tenor roll and the 14/14/14 caps; the row states the rest.
- ngn_usd
NGN-USD-NDFtemplate.- pen_usd
PEN-USD-NDFtemplate.- php_usd
PHP-USD-NDFtemplate.- rub_usd
RUB-USD-NDFtemplate.- twd_eur
TWD-EUR-NDFtemplate.- twd_usd
TWD-USD-NDFtemplate.- uah_usd
UAH-USD-NDFtemplate.- ugx_usd
UGX-USD-NDFtemplate.- uyu_usd
UYU-USD-NDFtemplate.- uzs_usd
UZS-USD-NDFtemplate.- vnd_usd
VND-USD-NDFtemplate.- xof_eur
XOF-EUR-NDFtemplate.- zmw_usd
ZMW-USD-NDFtemplate.