BankNifty options

Every pattern tested

27 pre-registered ideas: confirmed first, then unproven, then rejected, then the ones that could not be honestly tested at all. Switch to Analyst in the header for the full statistics behind every one.

Or read one family at a time, with its own chart: Calendar · Expiry · Positioning · Volatility

decay final three days Confirmed

What was actually tested (written down before the result was seen)An ATM straddle loses value as expiry approaches. Measured over the dte=3-to-dte=1 window specifically (a single 2-session step, despite the name): the final session into expiry (dte=1 to dte=0) and expiry day itself are unmeasurable UNDER A CALENDAR-DAY CLOCK, where dte=0 gives ttm=0 and no ATM quote solves (null at dte=0, 527 of 527 rows). Under a trading-day clock 378 of those rows do solve; coverage there is 71.7% and correlates with larger, more liquid cycles, so the decay measured is conditional on the contract still quoting at settlement.

This repeats, and it kept repeating on data it was not found on.

Happened 361 times in 16 years — about 23 times a year.

It worked 166 times out of 166.

It held up on the years used to find it, and then held up again on later years it had never been tested against.

priorlower familyexpiry
n (in-sample)195 n (out-of-sample)166
effect IS-41.7% effect OOS-41.4%
baseline IS0.0% baseline OOS0.0%
went predicted direction (IS)99.5% went predicted direction (OOS)100.0%
p (IS)<0.001 p (OOS)<0.001
q-value (BH)q = <0.001 chain coverage58.2%
95% CI (OOS, excess over baseline) [-42.7%, -40.2%]
regimeneffectmatched
R148-42.2%100.0%
R2308-41.5%99.7%
R36-39.2%100.0%

verdict reason: significant in and out of sample; awaiting FDR

decay mid cycle Confirmed

What was actually tested (written down before the result was seen)Mid-cycle (10-20 days to expiry) an ATM straddle decays more slowly than near expiry.

This repeats, and it kept repeating on data it was not found on.

Happened 2,153 times in 16 years — about 138 times a year.

It worked 1,153 times out of 1,242.

It held up on the years used to find it, and then held up again on later years it had never been tested against.

Only 47.7% of the option contracts involved had a usable, screened price on the days this happened, so this rests on a thin slice of the market.

priorlower familyexpiry
n (in-sample)911 n (out-of-sample)1,242
effect IS-11.8% effect OOS-10.5%
baseline IS-0.0% baseline OOS-0.0%
went predicted direction (IS)92.8% went predicted direction (OOS)92.8%
p (IS)<0.001 p (OOS)<0.001
q-value (BH)q = <0.001 chain coverage47.7%
95% CI (OOS, excess over baseline) [-10.9%, -10.0%]
regimeneffectmatched
R1428-11.9%93.2%
R21,573-10.8%92.8%
R3154-10.8%91.6%

verdict reason: significant in and out of sample; awaiting FDR

monthly final two days Confirmed

What was actually tested (written down before the result was seen)Monthly expiries also decay in their final measurable session -- the same dte=2-to-dte=1 window, for the same reason (no ATM quote is computed on expiry day; atm_straddle is null at dte=0, 527 of 527 rows) -- and the comparison with weeklies is meaningful only if both are measured the same way.

This repeats, and it kept repeating on data it was not found on.

Happened 149 times in 16 years — about 10 times a year.

It worked 55 times out of 55.

It held up on the years used to find it, and then held up again on later years it had never been tested against.

priorlower familyexpiry
n (in-sample)94 n (out-of-sample)55
effect IS-27.6% effect OOS-27.1%
baseline IS-0.0% baseline OOS-0.0%
went predicted direction (IS)100.0% went predicted direction (OOS)100.0%
p (IS)<0.001 p (OOS)<0.001
q-value (BH)q = <0.001 chain coverage57.2%
95% CI (OOS, excess over baseline) [-29.0%, -25.1%]
regimeneffectmatched
R152-27.9%100.0%
R290-27.0%100.0%
R37-27.8%100.0%

verdict reason: significant in and out of sample; awaiting FDR

weekly final two days Confirmed

What was actually tested (written down before the result was seen)Weekly expiries decay in their final measurable session. Measured over the dte=2-to-dte=1 window specifically (a single 1-session step, not two, despite the name): dte=1-to-expiry and expiry day itself are unmeasurable UNDER A CALENDAR-DAY CLOCK (ttm=0 there, so nothing solves); a trading-day clock does measure them. The comparison with monthlies is meaningful only if both are measured the same way.

This repeats, and it kept repeating on data it was not found on.

Happened 302 times in 16 years — about 19 times a year.

It worked 174 times out of 176.

It held up on the years used to find it, and then held up again on later years it had never been tested against.

Almost all of the evidence for this (300 of 303 times) comes from the era when weekly BankNifty expiries existed. Weekly expiries were abolished, so this cannot be used today.

priorlower familyexpiry
n (in-sample)126 n (out-of-sample)176
effect IS-30.7% effect OOS-28.3%
baseline IS-0.0% baseline OOS-0.0%
went predicted direction (IS)98.4% went predicted direction (OOS)98.9%
p (IS)<0.001 p (OOS)<0.001
q-value (BH)q = <0.001 chain coverage59.3%
95% CI (OOS, excess over baseline) [-29.6%, -27.0%]
regimeneffectmatched
R11-30.1%100.0%
R2300-29.3%98.7%
R32-23.8%100.0%

verdict reason: significant in and out of sample; awaiting FDR

vrp positive on average Confirmed

What was actually tested (written down before the result was seen)Implied volatility tends to exceed the market's own trailing 20-session realised volatility, so options are priced above the volatility the market has recently been showing, on average.

This repeats, and it kept repeating on data it was not found on.

Happened 3,741 times in 16 years — about 240 times a year.

It worked 829 times out of 1,608.

It held up on the years used to find it, and then held up again on later years it had never been tested against.

Only 47.6% of the option contracts involved had a usable, screened price on the days this happened, so this rests on a thin slice of the market.

priorhigher familyvolatility
n (in-sample)2,133 n (out-of-sample)1,608
effect IS2.3% effect OOS3.1%
baseline IS-0.0% baseline OOS0.0%
went predicted direction (IS)51.9% went predicted direction (OOS)51.6%
p (IS)<0.001 p (OOS)<0.001
q-value (BH)q = <0.001 chain coverage47.6%
95% CI (OOS, excess over baseline) [2.2%, 4.1%]
regimeneffectmatched
R11,2591.3%49.8%
R22,0673.7%53.6%
R34201.5%48.6%

verdict reason: significant in and out of sample; awaiting FDR

january iv higher Candidate

What was actually tested (written down before the result was seen)January carries elevated implied volatility relative to the rest of the year, ahead of the Budget.

This is not proven to repeat.

Happened 335 times in 16 years — about 21 times a year.

It went the expected way 86 times out of 147.

It looked real on the years used to find it, but did not hold up on later years it had never been tested against. Treat it as not proven.

The range of plausible values includes zero, which means the effect could be real or could be nothing at all.

Only 48.6% of the option contracts involved had a usable, screened price on the days this happened, so this rests on a thin slice of the market.

priorhigher familycalendar
n (in-sample)188 n (out-of-sample)147
effect IS6.0% effect OOS5.1%
baseline IS2.1% baseline OOS3.3%
went predicted direction (IS)55.3% went predicted direction (OOS)58.5%
p (IS)0.0035 p (OOS)0.2609
q-value (BH)q = 0.2609 chain coverage48.6%
95% CI (OOS, excess over baseline) [-1.4%, 5.1%]
regimeneffectmatched
R11235.0%55.3%
R21706.8%55.9%
R3422.6%64.3%

verdict reason: held in sample, not out of sample (p=0.261)

budget day iv crush Rejected

What was actually tested (written down before the result was seen)Implied volatility collapses immediately after the Union Budget, once the event risk it was pricing has passed.

This does not repeat.

Happened 16 times in 16 years — about once a year.

It went the expected way 5 times out of 7.

This happened too rarely to test at all -- there is not enough data to say whether it repeats or not, in either direction. It did not pass: only 7 out-of-sample events, need 30

This has been seen only 2 times in the current era, since weekly expiries were abolished, too few to know whether it still holds now that weekly expiries are gone.

The range of plausible values is wide, so the size of the effect is much less certain than its direction.

Only 7 recent examples, which is a small number to draw a confident conclusion from.

priorlower familycalendar
n (in-sample)9 n (out-of-sample)7
effect IS9.9% effect OOS-7.9%
baseline IS3.1% baseline OOS3.4%
went predicted direction (IS)66.7% went predicted direction (OOS)71.4%
p (IS)0.2218 p (OOS)0.0633
q-value (BH)q = 0.0791 chain coverage57.1%
95% CI (OOS, excess over baseline) [-17.1%, -5.0%]
regimeneffectmatched
R16-4.3%83.3%
R2810.0%50.0%
R32-10.1%100.0%

verdict reason: only 7 out-of-sample events, need 30

friday iv lower Rejected

What was actually tested (written down before the result was seen)Implied volatility falls on Fridays as the weekend's non-trading days are discounted out of the premium.

This shows up in the data -- but in the opposite direction from what was predicted.

Happened 745 times in 16 years — about 48 times a year.

It went the expected way 68 times out of 318.

This is not a case of no evidence: the data shows a real, statistically decisive effect, consistently across regimes -- but in the opposite direction from what was predicted before the data was checked. A pre-registered prediction that turns out backwards is rejected on its own declared terms, however strong the underlying effect. What was actually found: out-of-sample effect +0.0565 (baseline -0.0088, excess +0.0653) contradicts the declared prior 'lower'

Only 48.8% of the option contracts involved had a usable, screened price on the days this happened, so this rests on a thin slice of the market.

priorlower familycalendar
n (in-sample)427 n (out-of-sample)318
effect IS4.2% effect OOS5.6%
baseline IS-0.8% baseline OOS-0.9%
went predicted direction (IS)25.3% went predicted direction (OOS)21.4%
p (IS)<0.001 p (OOS)<0.001
q-value (BH)q = <0.001 chain coverage48.8%
95% CI (OOS, excess over baseline) [5.5%, 7.7%]
regimeneffectmatched
R12513.2%27.9%
R24105.9%19.3%
R3844.4%32.1%

verdict reason: out-of-sample effect +0.0565 (baseline -0.0088, excess +0.0653) contradicts the declared prior 'lower'

march quarter end iv higher Rejected

What was actually tested (written down before the result was seen)Financial-year end in March raises implied volatility on a bank index.

This does not repeat.

Happened 309 times in 16 years — about 20 times a year.

It went the expected way 73 times out of 131.

There is no evidence this repeats. It did not pass: not significant in sample (p=0.840)

The range of plausible values is wide, so the size of the effect is much less certain than its direction.

Only 48.2% of the option contracts involved had a usable, screened price on the days this happened, so this rests on a thin slice of the market.

priorhigher familycalendar
n (in-sample)178 n (out-of-sample)131
effect IS2.1% effect OOS14.2%
baseline IS2.4% baseline OOS2.3%
went predicted direction (IS)52.8% went predicted direction (OOS)55.7%
p (IS)0.8396 p (OOS)<0.001
q-value (BH)q = <0.001 chain coverage48.2%
95% CI (OOS, excess over baseline) [5.3%, 19.7%]
regimeneffectmatched
R11181.4%50.8%
R215610.6%53.8%
R33511.9%65.7%

verdict reason: not significant in sample (p=0.840)

monday iv higher Rejected

What was actually tested (written down before the result was seen)Implied volatility rises on Mondays, as the weekend gap risk is priced back in.

This shows up in the data -- but in the opposite direction from what was predicted.

Happened 755 times in 16 years — about 48 times a year.

It went the expected way 106 times out of 325.

This is not a case of no evidence: the data shows a real, statistically decisive effect, consistently across regimes -- but in the opposite direction from what was predicted before the data was checked. A pre-registered prediction that turns out backwards is rejected on its own declared terms, however strong the underlying effect. What was actually found: out-of-sample effect -0.0169 (baseline +0.0081, excess -0.0250) contradicts the declared prior 'higher'

Only 48.2% of the option contracts involved had a usable, screened price on the days this happened, so this rests on a thin slice of the market.

priorhigher familycalendar
n (in-sample)430 n (out-of-sample)325
effect IS-1.4% effect OOS-1.7%
baseline IS0.1% baseline OOS0.8%
went predicted direction (IS)34.0% went predicted direction (OOS)32.6%
p (IS)<0.001 p (OOS)<0.001
q-value (BH)q = <0.001 chain coverage48.2%
95% CI (OOS, excess over baseline) [-3.1%, -1.8%]
regimeneffectmatched
R1259-1.4%35.5%
R2408-1.7%31.9%
R388-1.4%34.1%

verdict reason: out-of-sample effect -0.0169 (baseline +0.0081, excess -0.0250) contradicts the declared prior 'higher'

forward drifts toward max pain Rejected

What was actually tested (written down before the result was seen)When the forward sits more than 1% above max pain in the last week of a cycle, it drifts back down toward it.

This does not repeat.

Happened 155 times in 16 years — about 10 times a year.

It went the expected way 22 times out of 53.

There is no evidence this repeats. It did not pass: not significant in sample (p=0.500)

The range of plausible values includes zero, which means the effect could be real or could be nothing at all.

priordown familyexpiry
n (in-sample)102 n (out-of-sample)53
effect IS0.2% effect OOS0.5%
baseline IS0.0% baseline OOS0.2%
went predicted direction (IS)48.0% went predicted direction (OOS)41.5%
p (IS)0.4997 p (OOS)0.3987
q-value (BH)q = 0.3987 chain coverage53.2%
95% CI (OOS, excess over baseline) [-0.8%, 1.3%]
regimeneffectmatched
R1680.1%51.5%
R2760.5%39.5%
R3110.2%54.5%

verdict reason: not significant in sample (p=0.500)

forward drifts up to max pain Rejected

What was actually tested (written down before the result was seen)The mirror case: a forward more than 1% below max pain in the last week drifts back up toward it.

This does not repeat.

Happened 128 times in 16 years — about 8 times a year.

It went the expected way 33 times out of 53.

There is no evidence this repeats. It did not pass: not significant in sample (p=0.083)

The range of plausible values includes zero, which means the effect could be real or could be nothing at all.

priorup familyexpiry
n (in-sample)75 n (out-of-sample)53
effect IS-0.3% effect OOS0.6%
baseline IS0.1% baseline OOS0.2%
went predicted direction (IS)42.7% went predicted direction (OOS)62.3%
p (IS)0.0833 p (OOS)0.2901
q-value (BH)q = 0.3481 chain coverage54.9%
95% CI (OOS, excess over baseline) [-1.1%, 1.8%]
regimeneffectmatched
R150-1.1%34.0%
R2670.8%59.7%
R3110.7%72.7%

verdict reason: not significant in sample (p=0.083)

pcr oi high precedes rise Rejected

What was actually tested (written down before the result was seen)An extreme put-call open-interest ratio -- read from the nearest-listed contract with 7-45 days to expiry, not a blend across whatever else is listed that day -- marks excess bearishness, and the forward rises over the following week.

This does not repeat.

Happened 392 times in 16 years — about 25 times a year.

It went the expected way 91 times out of 160.

There is no evidence this repeats. It did not pass: not significant in sample (p=0.109)

The range of plausible values includes zero, which means the effect could be real or could be nothing at all.

Only 44.5% of the option contracts involved had a usable, screened price on the days this happened, so this rests on a thin slice of the market.

priorup familypositioning
n (in-sample)232 n (out-of-sample)160
effect IS0.5% effect OOS0.4%
baseline IS0.2% baseline OOS0.1%
went predicted direction (IS)60.8% went predicted direction (OOS)56.9%
p (IS)0.1087 p (OOS)0.2225
q-value (BH)q = 0.2225 chain coverage44.5%
95% CI (OOS, excess over baseline) [-0.1%, 0.8%]
regimeneffectmatched
R11210.6%60.3%
R22210.4%57.5%
R3520.4%61.5%

verdict reason: not significant in sample (p=0.109)

pcr oi low precedes fall Rejected

What was actually tested (written down before the result was seen)An unusually low put-call open-interest ratio -- read from the nearest-listed contract with 7-45 days to expiry, not a blend -- marks excess bullishness, and the forward falls over the following week.

This does not repeat.

Happened 348 times in 16 years — about 22 times a year.

It went the expected way 60 times out of 125.

There is no evidence this repeats. It did not pass: not significant in sample (p=0.859)

The range of plausible values includes zero, which means the effect could be real or could be nothing at all.

Only 47.0% of the option contracts involved had a usable, screened price on the days this happened, so this rests on a thin slice of the market.

priordown familypositioning
n (in-sample)223 n (out-of-sample)125
effect IS0.2% effect OOS-0.4%
baseline IS0.2% baseline OOS0.2%
went predicted direction (IS)43.0% went predicted direction (OOS)48.0%
p (IS)0.8589 p (OOS)0.0686
q-value (BH)q = 0.2058 chain coverage47.0%
95% CI (OOS, excess over baseline) [-1.2%, 0.1%]
regimeneffectmatched
R11130.2%37.2%
R2216-0.1%47.2%
R319-0.3%63.2%

verdict reason: not significant in sample (p=0.859)

pcr volume high precedes rise Rejected

What was actually tested (written down before the result was seen)The same reading (the nearest-listed 7-45 DTE contract, not a blend), taken from traded volume rather than open interest, carries the same signal.

This does not repeat.

Happened 418 times in 16 years — about 27 times a year.

It went the expected way 96 times out of 181.

There is no evidence this repeats. It did not pass: not significant in sample (p=0.590)

The range of plausible values includes zero, which means the effect could be real or could be nothing at all.

Only 45.4% of the option contracts involved had a usable, screened price on the days this happened, so this rests on a thin slice of the market.

priorup familypositioning
n (in-sample)237 n (out-of-sample)181
effect IS0.3% effect OOS-0.2%
baseline IS0.2% baseline OOS0.2%
went predicted direction (IS)58.2% went predicted direction (OOS)53.0%
p (IS)0.5898 p (OOS)0.1671
q-value (BH)q = 0.2225 chain coverage45.4%
95% CI (OOS, excess over baseline) [-0.7%, 0.0%]
regimeneffectmatched
R11210.1%52.1%
R22370.3%58.2%
R361-0.5%54.1%

verdict reason: not significant in sample (p=0.590)

skew inverted precedes iv rise Rejected

What was actually tested (written down before the result was seen)Negative put skew -- calls dearer than puts, unusual for an index -- precedes a rise in implied volatility.

This shows up in the data -- but in the opposite direction from what was predicted.

Happened 209 times in 16 years — about 13 times a year.

It went the expected way 53 times out of 118.

This is not a case of no evidence: the data shows a real, statistically decisive effect, consistently across regimes -- but in the opposite direction from what was predicted before the data was checked. A pre-registered prediction that turns out backwards is rejected on its own declared terms, however strong the underlying effect. What was actually found: out-of-sample effect +0.0280 (baseline +0.0294, excess -0.0014) contradicts the declared prior 'higher'

This has been seen only 2 times in the current era, since weekly expiries were abolished, too few to know whether it still holds now that weekly expiries are gone.

The range of plausible values includes zero, which means the effect could be real or could be nothing at all.

Only 32.1% of the option contracts involved had a usable, screened price on the days this happened, so this rests on a thin slice of the market.

priorhigher familyvolatility
n (in-sample)91 n (out-of-sample)118
effect IS8.6% effect OOS2.8%
baseline IS2.1% baseline OOS2.9%
went predicted direction (IS)58.2% went predicted direction (OOS)44.9%
p (IS)<0.001 p (OOS)0.9296
q-value (BH)q = 0.9296 chain coverage32.1%
95% CI (OOS, excess over baseline) [-4.3%, 5.5%]
regimeneffectmatched
R1423.0%50.0%
R21665.8%50.0%
R329.3%100.0%

verdict reason: out-of-sample effect +0.0280 (baseline +0.0294, excess -0.0014) contradicts the declared prior 'higher'

wednesday iv lower Excluded

What was actually tested (written down before the result was seen)Midweek sessions show no weekend effect and implied volatility drifts down with ordinary time decay.

This was not tested.

Not tested. This is not a rejection — the statistics needed to test it honestly are not available, so it was never run against the data. Reason on record: measures implied volatility, which is not directly observed but computed from an option's price using an assumed clock; this analysis counts calendar days while the market trades on business days; a zero-structure simulation containing no market behaviour at all -- constant true volatility, exact Black-76 prices on a random walk, no weekday effect planted -- reproduces this pattern's published effect almost exactly (simulated -1.25% vs published -1.97%) using only that calendar-day clock; and the effect weakens to insignificance (-1.97% to -0.45%, p 0.0001 to 0.067) under a trading-day clock, on the real data. Not tested -- not rejected on evidence.

No hit rate, frequency or range is given for this row because none was ever computed — treat every number here as absent, never as zero.

prior (as registered)lower familycalendar

No effect size, hit rate, p-value or confidence interval is shown here because none was ever computed — this hypothesis was not run, not run-and-rejected. Every number that would normally sit in this box is absent, never zero.

iv rises into expiry week Excluded

What was actually tested (written down before the result was seen)Implied volatility rises as expiry approaches, because a shrinking time base inflates the volatility implied by a given premium.

This was not tested.

Not tested. This is not a rejection — the statistics needed to test it honestly are not available, so it was never run against the data. Reason on record: measures implied volatility, which is not directly observed but computed from an option's price using an assumed clock; this analysis counts calendar days while the market trades on business days (dte=7 is 4.76 trading sessions, dte=3 is 2.88); a zero-structure simulation containing no market behaviour at all -- constant true volatility, exact Black-76 prices on a random walk, no weekday or dte effect planted -- reproduces this pattern's published effect almost exactly (simulated +14.16% vs published +14.14%) using only that calendar-day clock; and the effect weakens to insignificance (+14.14% to +0.23%, p 0.0001 to 0.58) and reverses sign under a trading-day clock, on the real data. Not tested -- not rejected on evidence.

No hit rate, frequency or range is given for this row because none was ever computed — treat every number here as absent, never as zero.

prior (as registered)higher familyexpiry

No effect size, hit rate, p-value or confidence interval is shown here because none was ever computed — this hypothesis was not run, not run-and-rejected. Every number that would normally sit in this box is absent, never zero.

oi surge precedes iv rise Excluded

What was actually tested (written down before the result was seen)A day-on-day open-interest increase above 15% precedes a rise in implied volatility.

This was not tested.

Not tested. This is not a rejection — the statistics needed to test it honestly are not available, so it was never run against the data. Reason on record: selects a day-on-day total_oi increase above 15%, but total_oi is per-contract and accumulates over a contract's life, so an ordinary day's change already exceeds that threshold: measured median day-on-day change in this pattern's own 7-45 DTE band is +20.4%, 75th percentile +75.2%, 95th percentile +333.3%. A +15% move is therefore not a surge, it is below a typical day, and this threshold fires on 56.3% of eligible rows -- 198 of those from a prior day of exactly zero open interest, an artificial infinite percentage change rather than a real spike. Retuning the threshold to describe the data was considered and rejected as fitting the answer rather than testing the hypothesis; its mirror pattern, oi_unwind_precedes_iv_fall, is excluded for the same underlying reason. Not tested -- not rejected on evidence.

No hit rate, frequency or range is given for this row because none was ever computed — treat every number here as absent, never as zero.

prior (as registered)higher familypositioning

No effect size, hit rate, p-value or confidence interval is shown here because none was ever computed — this hypothesis was not run, not run-and-rejected. Every number that would normally sit in this box is absent, never zero.

oi unwind precedes iv fall Excluded

What was actually tested (written down before the result was seen)A day-on-day open-interest fall beyond 15% marks position unwinding and precedes a fall in implied volatility.

This was not tested.

Not tested. This is not a rejection — the statistics needed to test it honestly are not available, so it was never run against the data. Reason on record: selects a day-on-day total_oi fall beyond 15%, but total_oi is per-contract and accumulates over a contract's life, so an ordinary day's change already exceeds that threshold in either direction: measured median day-on-day change in this pattern's own 7-45 DTE band is +20.4%, 75th percentile +75.2%, 95th percentile +333.3%. Against that distribution this threshold fires only 66 times across 16 years, and on every one of those 66 rows the contract's own ATM implied volatility is null -- the threshold mostly catches contracts already too thin to have a screened price at all, which is also why none of the 66 selections ever attaches to a scoreable outcome: this hypothesis has zero events, in or out of sample, and was never actually tested against a single observation. Retuning the threshold to describe the data was considered and rejected as fitting the answer rather than testing the hypothesis. Not tested -- not rejected on evidence.

No hit rate, frequency or range is given for this row because none was ever computed — treat every number here as absent, never as zero.

prior (as registered)lower familypositioning

No effect size, hit rate, p-value or confidence interval is shown here because none was ever computed — this hypothesis was not run, not run-and-rejected. Every number that would normally sit in this box is absent, never zero.

iv reverts from high rank Excluded

What was actually tested (written down before the result was seen)When the nearest-listed contract's (7-45 DTE) ATM implied volatility is in the top decile of its own trailing year -- a single representative contract, not a blend across whatever else is listed that day -- it falls over the following week.

This was not tested.

Not tested. This is not a rejection — the statistics needed to test it honestly are not available, so it was never run against the data. Reason on record: selects on atm_iv's own trailing-year rank (top decile) and then measures atm_iv's own subsequent change: the event is chosen because a quantity is unusually high, and the same quantity's subsequent change is then measured. An unusually extreme value tends to be followed by a less extreme one purely by chance, so this design finds an apparent effect even in data with no relationship at all. Testing it honestly needs a null that reproduces that tendency, which this harness does not implement. Not tested -- not rejected on evidence.

No hit rate, frequency or range is given for this row because none was ever computed — treat every number here as absent, never as zero.

prior (as registered)lower familyvolatility

No effect size, hit rate, p-value or confidence interval is shown here because none was ever computed — this hypothesis was not run, not run-and-rejected. Every number that would normally sit in this box is absent, never zero.

iv reverts from low rank Excluded

What was actually tested (written down before the result was seen)When the nearest-listed contract's (7-45 DTE) ATM implied volatility is in the bottom decile of its own trailing year -- a single representative contract, not a blend across whatever else is listed that day -- it rises over the following week.

This was not tested.

Not tested. This is not a rejection — the statistics needed to test it honestly are not available, so it was never run against the data. Reason on record: selects on atm_iv's own trailing-year rank (bottom decile) and then measures atm_iv's own subsequent change: the event is chosen because a quantity is unusually low, and the same quantity's subsequent change is then measured. An unusually extreme value tends to be followed by a less extreme one purely by chance, so this design finds an apparent effect even in data with no relationship at all. Testing it honestly needs a null that reproduces that tendency, which this harness does not implement. Not tested -- not rejected on evidence.

No hit rate, frequency or range is given for this row because none was ever computed — treat every number here as absent, never as zero.

prior (as registered)higher familyvolatility

No effect size, hit rate, p-value or confidence interval is shown here because none was ever computed — this hypothesis was not run, not run-and-rejected. Every number that would normally sit in this box is absent, never zero.

skew extreme reverts Excluded

What was actually tested (written down before the result was seen)When 25-delta put skew exceeds twice its trailing six-month median, it narrows over the following fortnight.

This was not tested.

Not tested. This is not a rejection — the statistics needed to test it honestly are not available, so it was never run against the data. Reason on record: selects on skew_25d's own value against its own trailing rolling median and then measures skew_25d's own subsequent change: the event is chosen because a quantity is unusually far from its own recent typical level, and the same quantity's subsequent change is then measured. An unusually extreme value tends to be followed by a less extreme one purely by chance, so this design finds an apparent effect even in data with no relationship at all. Testing it honestly needs a null that reproduces that tendency, which this harness does not implement. Not tested -- not rejected on evidence.

No hit rate, frequency or range is given for this row because none was ever computed — treat every number here as absent, never as zero.

prior (as registered)lower familyvolatility

No effect size, hit rate, p-value or confidence interval is shown here because none was ever computed — this hypothesis was not run, not run-and-rejected. Every number that would normally sit in this box is absent, never zero.

straddle cheap after low iv Excluded

What was actually tested (written down before the result was seen)A straddle bought when the nearest-listed contract's (7-45 DTE) implied volatility sits in the bottom decile of its own trailing year -- a single representative contract, not a blend -- gains value over the following week.

This was not tested.

Not tested. This is not a rejection — the statistics needed to test it honestly are not available, so it was never run against the data. Reason on record: selects on atm_iv's own trailing-year rank and measures atm_straddle: the two are formally different quantities, but not empirically different ones -- in the 7-45 DTE band this pattern selects on, period-over-period fractional change in atm_straddle correlates 0.876 with fractional change in atm_iv, because an ATM straddle's price at this tenor is dominated by vega exposure to implied volatility. Selecting on an unusually low atm_iv reading and then measuring atm_straddle's own subsequent change is therefore almost the same test as selecting on and measuring atm_iv itself: an unusually extreme value tends to be followed by a less extreme one purely by chance, so this design finds an apparent effect even in data with no relationship at all. Testing it honestly needs a null that reproduces that tendency, which this harness does not implement. Not tested -- not rejected on evidence.

No hit rate, frequency or range is given for this row because none was ever computed — treat every number here as absent, never as zero.

prior (as registered)higher familyvolatility

No effect size, hit rate, p-value or confidence interval is shown here because none was ever computed — this hypothesis was not run, not run-and-rejected. Every number that would normally sit in this box is absent, never zero.

term inversion precedes iv fall Excluded

What was actually tested (written down before the result was seen)When near-dated implied volatility exceeds far-dated by more than 3 points, the near-dated figure falls back.

This was not tested.

Not tested. This is not a rejection — the statistics needed to test it honestly are not available, so it was never run against the data. Reason on record: uses a same-date cross-sectional aggregate (the far expiry's implied volatility on the same session), and the lookahead guard truncates by row position, so it cannot distinguish 'the session was split in half' from 'the detector read the future'. Untestable under the current guard, therefore not tested -- not rejected on evidence.

No hit rate, frequency or range is given for this row because none was ever computed — treat every number here as absent, never as zero.

prior (as registered)lower familyvolatility

No effect size, hit rate, p-value or confidence interval is shown here because none was ever computed — this hypothesis was not run, not run-and-rejected. Every number that would normally sit in this box is absent, never zero.

vrp extreme reverts Excluded

What was actually tested (written down before the result was seen)When implied volatility exceeds realised by more than 8 points, the gap closes over the following fortnight.

This was not tested.

Not tested. This is not a rejection — the statistics needed to test it honestly are not available, so it was never run against the data. Reason on record: selects on vrp (= atm_iv - rv_cc_20) exceeding 0.08 and then measures atm_iv's own subsequent change: vrp is not a different quantity from the outcome, it contains it, so an extreme vrp reading is partly an extreme atm_iv reading. An unusually extreme value tends to be followed by a less extreme one purely by chance, so this design finds an apparent effect even in data with no relationship at all. Testing it honestly needs a null that reproduces that tendency, which this harness does not implement. Not tested -- not rejected on evidence.

No hit rate, frequency or range is given for this row because none was ever computed — treat every number here as absent, never as zero.

prior (as registered)lower familyvolatility

No effect size, hit rate, p-value or confidence interval is shown here because none was ever computed — this hypothesis was not run, not run-and-rejected. Every number that would normally sit in this box is absent, never zero.

vrp negative precedes iv rise Excluded

What was actually tested (written down before the result was seen)When realised volatility exceeds implied -- the market underpricing movement that already happened -- implied volatility rises to catch up.

This was not tested.

Not tested. This is not a rejection — the statistics needed to test it honestly are not available, so it was never run against the data. Reason on record: selects on vrp (= atm_iv - rv_cc_20) being negative and then measures atm_iv's own subsequent change: vrp is not a different quantity from the outcome, it contains it, so a negative-vrp reading is partly a low-atm_iv reading. An unusually extreme value tends to be followed by a less extreme one purely by chance, so this design finds an apparent effect even in data with no relationship at all. Testing it honestly needs a null that reproduces that tendency, which this harness does not implement. Not tested -- not rejected on evidence.

No hit rate, frequency or range is given for this row because none was ever computed — treat every number here as absent, never as zero.

prior (as registered)higher familyvolatility

No effect size, hit rate, p-value or confidence interval is shown here because none was ever computed — this hypothesis was not run, not run-and-rejected. Every number that would normally sit in this box is absent, never zero.