A Variance Schedule

First, a quick note before we start doing arithmetic
📏
Why do we talk about “variance time” instead of “volatility time”?
  • Volatility is the standard deviation of returns.
  • Standard deviations are computed by taking the square root of the average of squared returns.
  • The average of squared returns is known as variance.
  • To compute such an average we divide by the number of returns in the sample.
  • Therefore, variance (not volatility) is proportional to the number of returns or time.
  • We must perform all operations (ie addition, multiplication, etc) in variance terms then we can simply take the square root to get back to volatility terms.
 
We established that:
  • A calendar-day model assigns each day of the year 1/365 of the variance.
  • A business-day model assigns each business day of the year 1/251 of the variance.
Visually, this is how variance is distributed according to each model:
notion image
 
  • The total variance is the same for each model but:
    • a business day model clusters the variance on 251 days, with each business day receiving 1/251 or .4% of the annual variance
    • a calendar-day model uniformly assigns .27% of the variance to each calendar day
 
We can zoom in on just January 2023 for a clearer picture:
notion image
 
Just as accrual accounting’s smoothing effect gives us a more accurate picture of a business’s performance (versus cash accounting’s lumpiness), we would be better served to specify our own calendar instead of defaulting to the overly basic assumptions of 365-day calendar and 251-day business models.
  • The calendar day model smooths variance too much by assigning the same amount of variance to a business day vs a weekend/holiday.
  • The business day model is too lumpy — it buckets a full year’s variance into just 251 days and pretends that zero variance time passes over a weekend.
 
In sum,
  • the calendar day model has time passing “too fast” over a weekend. The straddle doesn’t decay as much as the 365-day model predicts but it does decay, so the market is assigning a non-zero amount of variance time to weekends but not a full 1/365th.
  • the business day model has time pass “too slow” over a weekend. It acts as if zero variance time has passed but, again, the straddle does actually erode. If the weekend actually contained zero time then the straddle on Friday evening would be worth the same as the straddle on Monday morning.
 

Variance Schedules

 
We will construct a more realistic variance schedule. To do this let’s look at the naive calendar and business day models in a calendar format.
 
Recall the tenors of each model:
  • Calendar day model: 365 days
  • Business Day model: 251 days (365 less 104 weekend days less 10 holidays)
 
This is a sample of the calendars represented by each of the 2 models for January 2023:
notion image
 
The key columns to note are the time remaining columns. They normalize the number of days remaining under each counting convention to the number of days in the year.
 
The time remaining for the calendar day model declines linearly. For the business day model, it declines evenly on business days and not at all on weekends or holidays. We established all of this above this is just spelling it out in a schedule.
 
On my worksheet, the table is built for the entirety of 2023 with option expiry assumed to be the evening of December 31st.
 
This chart is the variance time remaining (in years) for each day in December:
notion image
(note the calendar time to expiry doesn’t go to zero — that’s because the spreadsheet assumes for each date it’s the morning, so on the morning of December 31st which is actually a holiday the calendar model thinks there’s still 1 day remaining)
 
Notice that the business day model shows less variance time to expiry for the whole month. Since the total variance represented by the straddle is agnostic to the model-days (the model-days only change the distribution of the variance not the total variance), it must follow that a business-day vol will imply a higher vol than a calendar model for the same given option price! (We will get to the conversion arithmetic soon)
 
🔑
By spelling out a schedule we unlock these abilities:
  1. We can easily compute the variance time remaining for any option.
  1. We can specify less naive schedules for how variance time passes across the calendar.
  1. We can transpose the “dirty” implied vol we observe in naive off-the-shelf model to a “clean” implied vol that can be compared with assets that have different schedules.
 

A Custom Variance Schedule

 
The easiest way to explain a custom variance schedule is to simply show you one. So far we have looked at 2 standard models:
  • Calendar day: 365-day model; each day is allocated equal variance
  • Business day: 251-day model; business days are given a weight of 1/251. Non-business days are given zero weight
A simple custom model, I’ll simply refer to as a variance day model.
  • Variance day model: business days receive a weight of 1.0 and non-business days are given a weight of .25
An important question is “What is this model’s day-count? I.e. how long is the 1-year ruler?”
notion image
 
We simply add back weekends and holidays using a weight of .25 and the tenor of the variance day model becomes 279.5
 
⚖️
Side Topic: Calibrating weights
As you dig deeper into the concept of variance time and volatility cleaning you will find this is a large topic. There is a familiar trade-off between ease of interpretability and customization.
 
This list of questions will outline the shape of the problem
  • How much weight do you attribute to the overnight vs the trading session?
  • Depending on the asset’s trading hours, what is the overnight?
  • For an ADR, does weight depend on whether the local market for the foreign listing is open?
  • How do even apportion weights to weekends vs business days? (hint: one common method is to study the differences in realized vols if you decomposed close-to-close vol into open-to-close vol + close-to-open vol. Don’t forget to do all your computations in variance space!)
  • What’s your process for revisiting the weights?
    • How do you assign weights to FOMC days or stock earnings or retail sales announcements?
    • If you trade ags, what’s a crop report day worth?
    • If a number is prone to leak early, does that change where you place the weights?
    • What about adjusting for what the market focuses on? For a decade, CPI releases were non-events.
    • During oil’s bear market in the wake of relentless fracking, rig count announcements on Fridays became a market-moving event — a number nobody batted an eye at 15 years ago.
    • If I’m sitting here asking these questions aloud on a blog, it should be no surprise that there are firms measuring implied vol down to the hour. And with the emergence of 0 DTEs this particular topic has never been more important…and if that’s not clear yet, it’ll be hammered home by the end of this post.
       
 
The side note on calibrating weights should make it clear that this is not the time to be hung up on my choice of weight. I’m showing you a template, but there’s plenty of room for creativity within that template.
 
Here’s a snapshot of a calendar comparing the 3 models: calendar day, business day, and variance day (which ascribes .25 weight to non-business days).
 
notion image
 
Direct your focus to the time remaining in years which normalizes each model’s day-til-expiry for its own day count (respectively 365, 251, 279.5). If the year started on a weekday each model would have 100% of its tenor until expiry and as soon as clock time started ticking the percentage of the year remaining would start diverging slightly.
 
Here’s the key insight repeated:
 
Each model is simply a tool, like a set of sunglasses, to observe a straddle price. But if each model has a different time until expiration, it will imply a unique implied volatility. For a given straddle (or option price, it’s just common for traders to think in straddles), the models with less time to expiration will necessarily imply a higher volatility than a model with more time until expiry.
 
  • Next section: you will learn to convert an implied volatility observed from one type of model to another model by Cleaning Implied Vols