Institutional-grade derivatives pricing and risk — open source.
Most of the world's derivatives intelligence sits behind proprietary systems at a handful of large banks. Smaller institutions, emerging market participants, and academic researchers operate blind — without the tools to price, hedge, or understand the true cost of a trade. Rijeka exists to change that.
Named after a village in Bosnia — rijeka means "river" in Bosnian, Croatian, and Serbian — this platform is built on the belief that the mathematics of modern finance should be accessible to anyone with the ambition to use it.
No login required. Open in any browser.
| Tool | URL | What it does |
|---|---|---|
| IRS Pricer | rijeka.app/irs | Price a vanilla IRS, drag the yield curve, reprice live |
| XVA Simulator | rijeka.app/xva | HW1F Monte Carlo EE/ENE/PFE profiles and CVA |
| XVA Waterfall | rijeka.app/xva_ee | Paste an EE profile, get full XVA waterfall |
| Vol Surface Scenario | rijeka.app/vol_surface | 3D SABR swaption vol surface — shock it, reprice live |
- OIS curve bootstrapping (SOFR, €STR, SONIA) — validated to Bloomberg SWPM reference prices
- Interest rate swap pricing with per-leg Greeks: IR01, IR01_DISC, Theta, Gamma
- European swaption pricing — Bachelier normal vol model, Bloomberg-validated ($3 NPV delta on $10M 5Y trade)
- Interest rate cap / floor / collar — Bachelier Normal model, T_mid convention, Bloomberg-validated (0.1% gap at matched vol), vol override, per-caplet cashflows
- Par rate solving, cashflow generation, T+2 spot lag, ACT/360 DCF
- Full swaption vol surface calibration using Hagan 2002 β=0 Normal SABR
- Bloomberg OTM ticker integration (SMKO) — 8 strikes per expiry/tenor bucket, ±200bp
- α (level), ρ (skew), ν (curvature) calibrated per expiry/tenor bucket via L-BFGS-B
- Interactive 3D surface: rotate, apply preset scenarios, or drag to create custom vol shocks
- Live Bachelier repricing: ΔNPV, Vega, IR01 update on every scenario change
- Cap/floor vol surface — 3D mesh from Bloomberg snapped
cap_vol_surfacequotes (tenor × strike spread × vol)
- Hull-White one-factor (HW1F) Monte Carlo — calibrated to ATM swaption vol surface
- Full XVA waterfall: CVA, DVA, FVA, FBA, KVA, MVA
- Swaption XVA: Andersen-Piterbarg 2-phase EE (option value pre-expiry, conditional swap post-expiry)
- All-in rate: par rate adjusted for the true bilateral cost of the trade
- HW1F calibration RMSE: 0.08bp on 5Y-tenor basket
The trade window CURVE SCENARIO tab shows both axes simultaneously:
- Top panel: yield curve — drag any tenor point to reshape, Gaussian ripple propagation
- Bottom panel: 3D SABR vol surface (swaption) or cap vol surface (cap/floor/collar) — ROTATE mode, rotatable/zoomable mesh
- Single repricing button runs 4 parallel calls and decomposes P&L:
ΔNPV rate only = shocked rate, base vol
ΔNPV vol only = base rate, shocked vol
ΔNPV joint = shocked rate, shocked vol
ΔNPV cross-gamma = joint − rate − vol (the non-linear term no system shows)
- Market data snapshot layer: Bloomberg, Refinitiv, and manual sources
- ATM + OTM swaption vol surface snap with unified button (ATM ICPL + SMKO OTM in one pass)
- Cap/floor vol surface snap from Bloomberg cap surface tickers
- SABR calibration runs automatically after each surface snap, results stored with fit diagnostics
- Multi-instrument trade blotter: IRS, OIS, Basis Swap, European Swaption, Cap, Floor, Collar
- Full org hierarchy: firm → division → desk → book
- Legal entity and counterparty master data
- Role-based access: VIEWER / TRADER / ADMIN
| Layer | Technology |
|---|---|
| Frontend | React + Vite |
| Backend | FastAPI (Python) |
| Database | Supabase (Postgres) |
| Deployment | Netlify (frontend) · Render (backend) |
Backend
cd backend
pip install -r requirements.txt
python -m uvicorn main:app --reload --port 8000Frontend
cd frontend
npm install
npm run devEnvironment variables required:
VITE_SUPABASE_URL
VITE_SUPABASE_ANON_KEY
VITE_API_URL
Every instrument goes through documented validation before it's considered production-ready.
| Version | Instruments | Status |
|---|---|---|
| v0.4.2 | IRS, OIS — OIS bootstrap | ✅ 38/38 tests passed |
| v0.5.0 | European Swaption — Bachelier + HW1F | ✅ Bloomberg delta $3 on $10M 5Y |
| v0.6.0 | SABR calibration, joint scenario P&L attribution | ✅ Live |
| v0.4.3 | Interest Rate Cap / Floor / Collar — Bachelier Normal | ✅ Bloomberg delta 0.1% on $10M 5Y at matched vol |
Validation reports and Python test packages in model_validation/.
No black boxes. Every formula is documented. Every number is traceable.
Institutional quality, open access. The same mathematics used at tier-1 banks, available to anyone.
SIMM-aligned risk taxonomy. Greeks follow ISDA SIMM conventions — IR01 not DV01, proper sensitivity aggregation.
Audit-ready. All market data snaps are timestamped and sourced. Calibration results are stored with full fit diagnostics.
| Instrument | Status |
|---|---|
| Vanilla IRS / OIS | ✅ Live |
| Basis Swap | ✅ Live |
| European Swaption | ✅ Live |
| Interest Rate Cap / Floor / Collar | ✅ Live |
| XCCY Swap | Sprint 10 |
| Bermudan Swaption | Sprint 11 |
FX spot/forward/options, CDS, credit options, wrong-way risk in CVA.
Equity swaps, equity options (Black-Scholes / Heston), commodity swaps and options.
Full market risk (VaR, SVaR, FRTB), CCR (PFE, SA-CCR, IMM), collateral management, PnL attribution.
Contextual chat over your book, AI-powered PnL explain, hedging recommendations, XVA commentary.
docs/Rijeka_Methodology_v1.1.pdf— curve construction, swap pricing, XVA waterfalldocs/EXOTIC_OPTIONS_ROADMAP.md— options coverage roadmapdocs/DEPLOY_CHECKLIST.md— deployment reference
MIT License — © 2026 Miko Devedzic / Rijeka
Built by someone who spent a career inside trading floor infrastructure — pricing systems, risk frameworks, and margin engines — and believed the tools deserved to be free.