volatility / wire operation
Event-volatility decomposition (earnings)
totalfinance.volatility.event
Decompose pre-event implied volatility into base + event variance and the implied one-day event move (the earnings-move read): eventMove = √max(0, atmVolatility²·timeToExpiryYears − baseVolatility²·timeToExpiryYears). Optionally reports the variance risk premium when `realizedVolatility` is supplied.
| Pack / profiles | volatility / default, full, options, strategies |
|---|---|
| Default discovery | Included |
| Required capabilities | None |
| Effects / authorization | none / none |
| Cost / cancellation | small / Do not assume inline interruption |
| Handle-eligible inputs | None |
| Idempotency | not-applicable |
Input schema
{
"type": "object",
"properties": {
"atmVolatility": {
"type": "number",
"exclusiveMinimum": 0,
"description": "Total ATM implied volatility into the event (decimal)"
},
"baseVolatility": {
"type": "number",
"description": "Baseline (non-event) vol, e.g. post-event or far-month IV (decimal, ≥ 0)"
},
"timeToExpiryYears": {
"type": "number",
"exclusiveMinimum": 0,
"description": "Time to expiry in years, e.g. 5/365"
},
"realizedVolatility": {
"type": "number",
"exclusiveMinimum": 0,
"description": "ANNUALIZED realized volatility (decimal, e.g. 0.18 — a per-bar σ × √252 on daily bars) — adds the variance risk premium"
}
},
"additionalProperties": false,
"required": [
"atmVolatility",
"baseVolatility",
"timeToExpiryYears"
]
}Output schema
{
"type": "object",
"properties": {
"value": {
"description": "The computed result"
},
"assumptions": {
"type": "object",
"description": "Every applied convention, echoed"
},
"diagnostics": {
"type": "object",
"description": "Engine/method/warnings (+ convergence where iterative)"
}
},
"required": [
"value",
"assumptions",
"diagnostics"
]
}