Skip to content

Investigate central-mass CDF validation to avoid far-tail false failures #100

@tyrneh

Description

@tyrneh

Summary

CDF validation currently checks the full derived probability grid, including extreme extrapolated tails. In live-data examples, tiny finite-difference or fitting issues at far-tail strikes can fail the whole probability materialization even when the economically relevant central distribution is well behaved.

One possible improvement: validate the central 99% of the implied distribution for hard failures, while treating far-tail violations as diagnostics or warnings unless they are severe.

Motivation

A live GME README example failed on the furthest fitted expiry (2027-01-15) during CDF materialization:

CalculationError: Failed to compute CDF: Direct CDF is materially below zero.

The fitted vol slice itself succeeded. The failure came from a tiny raw-CDF breach at the far-left boundary:

raw CDF minimum: -1.69e-05
current lower-bound threshold: -1.00e-05
failing strike: 0.01
observed strikes: 3 to 65
post-IV survival domain: 8 to 50
resolved probability domain: 0.01 to 1560

The issue disappeared with a denser fixed native grid:

auto / 2500 points: fails
4000 points: passes
8000 points: passes
12000 points: passes

This suggests the failure is a numerical far-tail artifact caused by a very wide extrapolated domain and finite-difference sensitivity, not a failure of the central fitted distribution.

Proposed direction

Investigate changing direct-CDF validation so that:

  • hard failures focus on the central probability mass, e.g. the central 99% distribution;
  • extreme-tail CDF bound violations are still recorded in metadata and warning diagnostics;
  • severe tail violations still fail, especially if they imply material negative probability mass or large violations near observed strikes;
  • validation distinguishes between observed/fit-supported regions and extrapolated tail regions.

Design questions

  • How should the central 99% region be identified when the raw CDF is the object under validation?
  • Should the threshold be configurable, e.g. central_mass=0.99?
  • Should central-mass validation use raw CDF, minimally cleaned CDF, PDF-integrated CDF, or a two-pass approach?
  • What tail diagnostics should be exposed so users can still audit model risk?
  • Should the validation region be based on probability mass, observed strike support, or both?

Why this matters

The current behavior is conservative, but can make live examples brittle. From a user perspective, a tiny issue at a strike like 0.01, far outside observed quotes and economically irrelevant for most queries, should probably not block querying or plotting the central distribution.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions