# 04 — Master Method Definitions ## Complete Parameter Matrix — Transcribed from Projection Methods Definition.xlsx **Source of truth:** All values in this file are transcribed directly from `Projection Methods Definition.xlsx` (columns A–AJ, rows 2–19). This file supersedes all prior versions. Any discrepancy between this file and narrative descriptions elsewhere in the KB must be resolved in favour of this file — it reflects the actual Endur configuration. **Override rule:** Test case row value → (if blank) → this table → (if blank) → skip. --- ## Corrections vs. Previous Version | Method Name | Field | Old (incorrect) | Correct (from spreadsheet) | |---|---|---|---| | EventCWA | Non-GBD Roll Rule | No Roll | **-Sat+Sun+MonHol-Hol** | | EventPWA | Non-GBD Roll Rule | No Roll | **-Sat+Sun+MonHol-Hol** | | EventPMAWE | Reset Sym Date | 1d | **1cd** | | Event Date Roll Early | Pivot Date Offset | 0d | **-1d** | | X days after Event_Roll Fwd | Before Pivot Offset | 0d | **1d** | | TMA Argus/Platts | After Offset | `-1arg_trm` | **`1arg_trm`** | | TMA Nymex/CME | After Offset | `-1dmo_one_cme` | **`1dmo_one_cme_xxv_minusgbd_three`** | | TMA Nymex/CME | Pivot Date Offset | `1d>-2dmo_one_cme` | **`1d>-2dmo_one_cme_xxv_minusgbd_three`** | | EventPMANOWE | Include_Pivot | Exclude | **Include** | | EventPMAWE | Include_Pivot | Exclude | **Include** | | TMA Argus/Platts | Include_Pivot | Exclude | **Include** | | TMA Nymex/CME | Include_Pivot | Exclude | **Include** | > **Note — TC-077 / TC-H05 (EventCWA):** Roll Boundary Resets = **Yes** and Non-GBD Roll Rule = > **-Sat+Sun+MonHol-Hol**. For Good Friday 04/03/2026 (1low = last calendar day of BOL week): > the −Hol token applies → **BACKWARD → Window_End = 04/02/2026 Thu**. After Offset Roll = > "After" controls sequencing only (roll is applied after the offset calculation), NOT direction. > Direction always comes from the Non-GBD Roll Rule tokens. These are three entirely separate fields. --- ## Table A — Window Parameters (Agent-Critical) These are the fields used directly to compute every pricing window. | Name | Non-GBD Roll Rule | Pivot Date Offset | Incl/Excl | Before Pivot Offset | Before Offset Roll | After Offset | After Offset Roll | Roll Boundary Resets | |---|---|---|---|---|---|---|---|---| | **DEEMED DATE** | No Roll | 0d | deal-level | deal-level | — | deal-level | — | — | | **EventPMANOWE** | -SatSunHol | `1d>-2lom` | Include | 0d | After | `1lom` | After | **No** | | **EventPMAWE** | No Roll | `1cd>-2lom` | Include | 0d | After | `1lom` | After | Yes | | **CMANOWE** | -SatSunHol | `1d>-1lom` | Include | 0d | After | `1lom` | After | **No** | | **TMA Argus/Platts** | -SatSunHol | `1d>-2arg_trm` | Include | 0d | After | `1arg_trm` | After | **No** | | **CycleSchDt-2** | -Sat+Sun+MonHol-Hol | 0d | Include | -2d | After | 0d | After | Yes | | **FX_Ref** | -SatSunHol | `1d>-1lom` | Include | 0d | After | `1lom` | After | **No** | | **X DAYS ARD Event** | -Sat+Sun+MonHol-Hol | 0d | Include | -1d | After | 1d | After | Yes | | **CMAWE** | No Roll | `1cd>-1lom` | Include | 0d | After | `1lom` | After | **No** | | **EventCWA** | **-Sat+Sun+MonHol-Hol** | `0monday` | Include | 0d | After | `1low` | After | Yes | | **TMA Nymex/CME** | -SatSunHol | `1d>-2dmo_one_cme_xxv_minusgbd_three` | Include | 0d | After | `1dmo_one_cme_xxv_minusgbd_three` | After | **No** | | **Event Date Roll Early** | -Sat+Sun+MonHol-Hol | **-1d** | Include | -2d | After | 2d | After | Yes | | **Event +Xdays_Roll Fwd** | -Sat+Sun+MonHol-Hol | 0d | Include | 0d | After | 2d | After | Yes | | **Event -Xdays_Roll Back** | -Sat+Sun+MonHol-Hol | 0d | Include | -2d | After | 0d | After | Yes | | **X days after Event_Roll Fwd** | -Sat+Sun+MonHol-Hol | 0d | Exclude | **1d** | After | 2d | After | Yes | | **X days prior Event_Roll Back** | -Sat+Sun+MonHol-Hol | 0d | Exclude | -2d | After | -1d | After | Yes | | **EventPWA** | **-Sat+Sun+MonHol-Hol** | `-1monday` | Include | 0d | After | `1low` | After | Yes | | **Event Date Only** | -Sat+Sun+MonHol-Hol | 0d | Include | 0d | After | 0d | After | Yes | **Offset notation guide:** | Symbol | Meaning | |---|---| | `1lom` | Last calendar day of current month → roll if non-GBD per Roll Boundary Resets direction | | `1low` | Last calendar day of current week (Friday) → roll if non-GBD per Roll Boundary Resets direction | | `1d>-1lom` | First GBD of current month | | `1cd>-1lom` | First calendar day of current month | | `1d>-2lom` | First GBD of prior month | | `1cd>-2lom` | First calendar day of prior month | | `0monday` | Monday of the BOL week | | `-1monday` | Monday of the prior week (week before BOL week) | | `1arg_trm` | Current arg_trm sequence date for BOL's delivery period = currDate (TMA Argus/Platts sequence lookup, File 02 Section 2) | | `1dmo_one_cme_xxv_minusgbd_three` | Current dmo_one_cme sequence date for BOL's delivery period = currDate (TMA Nymex/CME sequence lookup, File 02 Section 3) | | Before Offset Roll = `After` | Applies the Before offset to the GBD-rolled Pivot (standard for all methods) | | Roll Boundary Resets = **No** | Non-GBD Window_End rolls INWARD — stays within current month or week | | Roll Boundary Resets = **Yes** | Non-GBD Window_End may cross the month or week boundary | --- ## Table B — Enumeration & Auxiliary Parameters | Name | Reset Sym Date | Stack Non GBD Volume | Pricing Event Type | Est. Event Date | Nearby | RFI Shift | Reset Shift | |---|---|---|---|---|---|---|---| | **DEEMED DATE** | 1d | — | deal-level | 0d | 1 | 0d | 0d | | **EventPMANOWE** | 1d | — | BOL | 0d | 1 | 0d | 0d | | **EventPMAWE** | **1cd** | **Yes** | BOL | 0d | 1 | 0d | 0d | | **CMANOWE** | 1d | — | BOL | 0d | 1 | 0d | 0d | | **TMA Argus/Platts** | 1d | — | BOL | 0d | 1 | 0d | 0d | | **CycleSchDt-2** | 1d | — | **Cycle Close Date** | 0d | 1 | 0d | 0d | | **FX_Ref** | 1d | — | BOL | 0d | **0** | 0d | 0d | | **X DAYS ARD Event** | 1d | — | BOL | 0d | 1 | 0d | 0d | | **CMAWE** | **1cd** | **Yes** | BOL | 0d | 1 | 0d | 0d | | **EventCWA** | 1d | — | BOL | 0d | 1 | 0d | 0d | | **TMA Nymex/CME** | 1d | — | BOL | 0d | 1 | 0d | 0d | | **Event Date Roll Early** | 1d | — | BOL | 0d | 1 | 0d | 0d | | **Event +Xdays_Roll Fwd** | 1d | — | BOL | 0d | 1 | 0d | 0d | | **Event -Xdays_Roll Back** | 1d | — | BOL | 0d | 1 | 0d | 0d | | **X days after Event_Roll Fwd** | 1d | — | BOL | 0d | 1 | 0d | 0d | | **X days prior Event_Roll Back** | 1d | — | BOL | 0d | 1 | 0d | 0d | | **EventPWA** | 1d | — | BOL | 0d | 1 | 0d | 0d | | **Event Date Only** | 1d | — | BOL | 0d | 1 | 0d | 0d | **Notes:** - **Reset Sym Date = 1d** → enumerate GBDs only (skip weekends and holidays in the Reset Holiday Schedule). - **Reset Sym Date = 1cd** → enumerate every calendar day. Applies only to CMAWE and EventPMAWE. Non-GBD volumes stack onto the adjacent GBD when Stack Non GBD Volume = Yes. - **Stack Non GBD Volume = Yes** → only CMAWE and EventPMAWE. Weekend/holiday volume accumulates onto the next GBD for notional-weighted averaging. - **FX_Ref Nearby = 0** → spot pricing (not front month). All other methods default to Nearby = 1. - **Pricing Event Type = Cycle Close Date** → only CycleSchDt-2. All other methods use BOL as the pricing event anchor. --- ## Table C — Rate, Period & Configuration Parameters | Name | Reset Conv | Avg Type | Avg Period | Reset Period | Reset Rate Method | Roll Date Option | Last Trading Day | |---|---|---|---|---|---|---|---| | **DEEMED DATE** | Flexible Pricing Period | Unweighted | 1d | 1d | Normal | Backward | 0 | | **EventPMANOWE** | Event Date | Unweighted | 1m | 1d | Normal | Backward | 0 | | **EventPMAWE** | Event Date | Notional Weighted | 1m | 1d | Normal | Backward | 0 | | **CMANOWE** | Event Date | Unweighted | 1m | 1d | Normal | Backward | 0 | | **TMA Argus/Platts** | Event Date | Unweighted | 1m | 1d | Normal | Backward | 0 | | **CycleSchDt-2** | Event Date | Unweighted | 1d | 1d | Normal | Backward | 0 | | **FX_Ref** | Event Date | Unweighted | 1m | 1d | Normal | Backward | 0 | | **X DAYS ARD Event** | Event Date | Unweighted | 1d | 1d | Normal | Backward | 0 | | **CMAWE** | Event Date | Notional Weighted | 1m | 1d | Normal | Backward | 0 | | **EventCWA** | Event Date | Unweighted | **5d** | 1d | Normal | Backward | 0 | | **TMA Nymex/CME** | Event Date | Unweighted | 1m | 1d | Normal | Backward | 0 | | **Event Date Roll Early** | Event Date | Unweighted | 1d | 1d | Normal | Backward | **-1** | | **Event +Xdays_Roll Fwd** | Event Date | Unweighted | 1d | 1d | Normal | Backward | 0 | | **Event -Xdays_Roll Back** | Event Date | Unweighted | 1d | 1d | Normal | Backward | 0 | | **X days after Event_Roll Fwd** | Event Date | Unweighted | 1d | 1d | Normal | Backward | 0 | | **X days prior Event_Roll Back** | Event Date | Unweighted | 1d | 1d | Normal | Backward | 0 | | **EventPWA** | Event Date | Unweighted | **5d** | 1d | Normal | Backward | 0 | | **Event Date Only** | Event Date | Unweighted | 1d | 1d | Normal | Backward | 0 | **Notes:** - **Avg Period = 1m** → window spans a full calendar month. Methods: EventPMANOWE, EventPMAWE, CMANOWE, TMA Argus/Platts, FX_Ref, CMAWE, TMA Nymex/CME. - **Avg Period = 5d** → window spans one trading week (Mon–Fri). Methods: EventCWA, EventPWA. - **Avg Period = 1d** → single-day or narrow window (event-day methods and CycleSchDt-2). - **Roll Date Option = Backward** → universal across all methods. RFIS stays within the delivery month. - **Reset Rate Method = Normal** → universal. Full daily price history used for reconciliation. - **Last Trading Day = -1** for Event Date Roll Early → RFIS is calculated 1 day before the standard Last Trading Day of the index. --- ## Section D — Fields Constant Across All Methods These fields have the same value for all 18 active methods. Do not override unless a test case explicitly provides a different value. | Field | Spreadsheet Column | Value | Notes | |---|---|---|---| | Comp Period | E | n/a | Not used in Commodity Toolset | | Reset Against | N | No | No spread-vs-index reset | | Reset Spd | O | 0 | Zero spread | | Reset Delay | Q | n/a | Always zero; do not use | | Reset Yield Basis | K | None | Not applicable for commodity | | Proj Index Tenor | L | 0 | Not applicable | | Reset Rounding Method | AH | None | No rounding applied | | Reset Precision | AI | Full | Full decimal precision | | Intermediate Avg Precision | AF | — (blank) | Not configured | | Reset Holiday Schedule | AJ | Default From Index | Holiday calendar from price index | | Reset Holiday Option | H | ALL | All holidays in schedule observed | | Active | S | ✓ | All 18 methods active | --- ## Method Name Lookup Table | User may say… | Canonical Name | Key watch-outs | |---|---|---| | "X DAYS ARD", "X days ARD Event", "3 days" | **X DAYS ARD Event** | Before=−1d, After=+1d (symmetric). NOT Before=−2d/After=0d | | "Event Date Only", "single day", "BOL only" | **Event Date Only** | Zero-offset window; single date | | "Event Date Roll Early", "roll early" | **Event Date Roll Early** | Pivot=−1d (one GBD before BOL); Before=−2d; After=+2d; LastTradingDay=−1 | | "Event+days Roll Fwd" | **Event +Xdays_Roll Fwd** | After=+2d; Before=0d | | "Event-days Roll Back" | **Event -Xdays_Roll Back** | Before=−2d; After=0d | | "X days after Event" | **X days after Event_Roll Fwd** | Before=+1d; Exclude pivot; window = [BOL+1d, BOL+2d] | | "X days prior Event" | **X days prior Event_Roll Back** | Before=−2d; After=−1d; Exclude pivot | | "CMANOWE" | **CMANOWE** | First GBD of month; Roll Boundary=No | | "CMAWE" | **CMAWE** | First cal day of month; Notional Weighted; Reset Sym=1cd; Roll Boundary=No | | "FX Ref", "FX_Ref" | **FX_Ref** | Nearby=0 (spot pricing); Roll Boundary=No | | "EventCWA", "Current Week" | **EventCWA** | BOL week; Non-GBD Roll=-Sat+Sun+MonHol-Hol; Roll Boundary=Yes | | "EventPWA", "Prior Week" | **EventPWA** | PRIOR week (−1monday); Non-GBD Roll=-Sat+Sun+MonHol-Hol; Roll Boundary=Yes | | "EventPMANOWE" | **EventPMANOWE** | NOT EventPMANEWE; Roll Boundary=No | | "EventPMAWE" | **EventPMAWE** | Notional Weighted; Reset Sym=1cd; Roll Boundary=Yes | | "TMA Argus", "TMA Platts", "arg_trm" | **TMA Argus/Platts** | Exact sequence lookup from File 02 Section 2; Roll Boundary=No | | "TMA CME", "TMA Nymex", "dmo_one_cme" | **TMA Nymex/CME** | Exact sequence lookup from File 02 Section 3; Roll Boundary=No | | "CycleSchDt-2", "cycle close" | **CycleSchDt-2** | Pricing Event = Cycle Close Date (not BOL) | | "Deemed Date", "DEEMED" | **DEEMED DATE** | Ask user for start/end dates; Reset Conv = Flexible Pricing Period | | "Specific day" | Out of scope — decline | — | **Ambiguity pairs — always confirm before calculating:** - CMANOWE vs CMAWE: unweighted/GBD-step/Roll Boundary=No vs notional weighted/cal-day-step/Roll Boundary=No? - EventPMANOWE vs EventPMAWE: unweighted vs notional weighted? - EventCWA vs EventPWA: current week vs prior week?