Tools › Mark-to-market and risk
Mark-to-market and risk on EOX forward curves
Mark a book of energy swaps and forwards to EOX forward curves, at the end of the day or from an intraday snapshot, and measure its value at risk from the same contracts' daily history.
What goes in, what comes out
Your positions
- The curve and contract: dataset, curve code and month, quarter, season or calendar strip
- Quantity in the curve's unit (MWh, MMBtu, barrels), negative for a short
- Your trade price, and mid, bid or ask to mark against
- Up to 500 positions at once: paste from a spreadsheet, upload a CSV, or pass a DataFrame
Your results
- Each position's curve price, mark-to-market and delta
- Totals for the book and for each curve
- Optional discounting to the middle of each delivery period
- Historical and parametric value at risk and expected shortfall, at your confidence and horizon, with each position's contribution
- Scenario replays: the book run through past market episodes, such as major winter storms, or a date range you choose, with the P&L, its worst point and each position's share
Mark-to-market is quantity × (curve price − trade price) × discount factor. Every
entitlement applies as it does to the data itself, so a book is only marked on curves your subscription
covers.
Example
| Position | Curve | Contract | Quantity | Trade price | Curve price | Mark-to-market |
|---|---|---|---|---|---|---|
| deal-1 | CODE1 | Jan_2027 | 25,600 | 62.50 | 64.10 | 40,960 |
| deal-2 | CODE2 | Q1_2027 | −900,000 | 3.85 | 3.92 | −63,000 |
| Book | −22,040 |
Curve codes are placeholders and values are illustrative.
Use it from
Python
pip install https://api.eoxlive.com/downloads/eoxlive-1.7.0-py3-none-any.whl
from eoxlive import EOX
eox = EOX("YOUR_KEY")
book = [{"id": "deal-1", "dataset": "power", "code": "CODE1", "contract": "Jan_2027",
"quantity": 25600, "price": 62.50}]
eox.mtm(book)["total"] # mark-to-market
eox.risk(book, confidence=0.95, horizon=1) # adds VaR and expected shortfall
eox.scenarios(book)["summary"] # P&L over past market episodes
Excel
=EOX.MTM(A1:F20) a header row, then one position a row
REST
curl -X POST -H "X-API-Key: YOUR_KEY" -H "Content-Type: application/json" \
-d '{"positions": [{"dataset": "power", "code": "CODE1", "contract": "Jan_2027", "quantity": 25600, "price": 62.5}]}' \
"https://api.eoxlive.com/v1/analytics/mtm"
Or in the browser, on the Portfolio page, signed in with your EOX account.
Questions
- Can I mark intraday?
- Yes. EOX curves refresh every 15 minutes; a book can be marked to the latest snapshot or to a chosen end-of-day curve date.
- How is value at risk calculated?
- From each contract's own daily curve history over a lookback you choose: historical (the book revalued on past moves) and parametric, both with expected shortfall.
- What can a position be?
- A fixed-price swap or forward on one contract of one EOX curve, in any complex your subscription covers: power, natural gas, refined products, crude oil and more.
- Is my book stored?
- No. Positions are marked and returned, not kept.
Included with your subscription. The tools use the curves, vols and correlations your subscription already covers, under the same entitlements, and are never charged for separately. Results are for information only; values shown on this page are illustrative.