> ## Documentation Index
> Fetch the complete documentation index at: https://api.unusualwhales.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> API requests use the base URL https://api.unusualwhales.com and require a bearer token in the `Authorization` header (`Authorization: Bearer <API_KEY>`). Create and manage API tokens at https://unusualwhales.com/dashboard/api.
> For live market data inside an AI tool, use the Unusual Whales MCP server at https://unusualwhales.com/public-api/mcp.
> Instructions for agents using Unusual Whales tools: https://unusualwhales.com/skill.md

# interpolated-iv

> Implied volatility and expected move interpolated onto fixed day horizons

Topic
messages**1**
routing**single type**
encoding**protobuf**

## Messages on this topic

[all messages
InterpolatedIv
InterpolatedIv is the implied volatility and expected move calculated for a fixed horizon expressed in days. If a horizon lines up with a real option expiry the value is taken from an exact matching expiry (is\_exact = true) and otherwise interpolated between the two surrounding expiries (is\_exact = false). The interpolation is not linear in implied volatility. It is done in total variance space (volatility^2 \* time): the surrounding terms are converted to total variance, then interpolated linearly there and then via the square root rooted back to an implied volatility. The message itself does not carry the ticker: the Kafka message key is the ticker of the underlying.
6 fields→](/docs/kafka/types/InterpolatedIv.md)

All messages on this topic are of a single type.

## Consume the topic

```python Python theme={null}
from confluent_kafka import Consumer
from unusualwhales.schema_pb2 import InterpolatedIv

# CONFIG comes from the Connecting section of the Kafka overview.
consumer = Consumer(CONFIG | {"group.id": "my-interpolated-iv-consumer"})
consumer.subscribe(["interpolated-iv"])

while True:
    msg = consumer.poll(1.0)
    if msg is None or msg.error():
        continue

    event = InterpolatedIv()
    event.ParseFromString(msg.value())
    print(event)
```
