Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

A policy backstop can be modeled in code as a clock with four inputs: a trigger that starts it, a lag before it takes effect, a coverage amount it can absorb, and the object it targets. The “twenty-day window” discussed in Feng Yu’s September 17, 2026 post, “The Twenty-Day Window: Pricing the Policy Residual,” is the author’s own estimate of how long liquidation pressure stayed open around March 2020. It is not a constant to hard-code. In a well-built model, the window length is an output of the inputs and the cascade dynamics, and the twenty-day figure is one result to test.

What the author proposes

Yu’s post, a secondary piece marked as AI-assisted and reviewed by its author, treats a policy intervention as a timed backstop inside a market stress test. The proposed notation is f(trigger_t, lag_t, coverage, object). The author then races this policy clock against modeled margin cascades and dealer hedging flows. Those parameters are design suggestions from the post, not calibrated causal relationships, so the first job in code is to make each one operational.

Input Question it answers What the code must define
Trigger Which observable state activates the policy? A specific series, threshold, and evaluation date, such as a closing-price drawdown measured on daily closes.
Lag How long after activation does the intervention become effective? Whether the count uses calendar or trading days, and whether it starts at the announcement date or the effective date.
Coverage How much of the relevant flow can the policy absorb? A unit you can measure, such as dollars of notional or a share of observed daily volume, with an explicit cap.
Object Which market mechanism does the policy target? A named channel the cascade model actually contains, so the policy term can be switched on or off.

The official March 2020 record

The Federal Open Market Committee’s statements establish dates and policy actions. The table below lists only what those releases state.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Date Official action Figures stated in the release
March 15, 2020 Lowered the target range for the federal funds rate to 0–0.25%, and said the Committee would increase holdings of Treasury securities and agency mortgage-backed securities (MBS). At least $500 billion in Treasury securities and at least $200 billion in agency MBS, over coming months.
March 23, 2020 Said purchases of Treasury securities and agency MBS would continue “in the amounts needed to support smooth market functioning and effective transmission of monetary policy to broader financial conditions.” The policy directive was effective that day. No fixed total; the amount was tied to need rather than a stated sum.

The domestic policy directive of March 23, 2020 states: “The Committee directs the Desk to increase the System Open Market Account holdings of Treasury securities and agency mortgage-backed securities (MBS) in the amounts needed to support the smooth functioning of markets for Treasury securities and agency MBS.” These releases establish when the policy was announced and what it said it would do. They do not establish that the March 23 action stopped a liquidation cascade, caused a market bottom, or closed a twenty-day window. Those are the author’s hypotheses and need independent evidence.

#1 Best Overall
Sale
Modeling the Environment, Second Edition
  • Used Book in Good Condition

Building the clock in code

Build the model in this order, so that policy inputs, observed outcomes, and assumptions never blur together:

  1. Define the trigger as a measurable state. Name the series, the threshold, and the evaluation frequency. A trigger that depends on a judgment call cannot be replayed.
  2. Fix the lag convention. Store the trigger date, announcement date, and effective date as separate fields. Then compute the lag in one calendar, stated in the code, for example trading days on an exchange calendar.
  3. Bound coverage in units. Express coverage as a capped amount of the flow the cascade model tracks, and record the source of the denominator.
  4. Tag the object. Each policy term should name the mechanism it acts on, so a sensitivity run can remove that term and leave everything else unchanged.
  5. Load the market data with its definition. If you use the S&P 500 series from FRED, note that it is a daily market-close price index, that it excludes dividends, and that it is subject to revision. State whether your backtest uses price returns or total returns.

A minimal skeleton keeps the policy timing explicit. It is an illustration of structure, not a tested or calibrated model:

from dataclasses import dataclass
from datetime import date

@dataclass(frozen=True)
class BackstopClock:
    trigger_date: date      # first day the shock state is observed
    announce_date: date     # date the policy was publicly announced
    effective_date: date    # first day the policy is operative
    coverage_usd: float     # capped notional the policy can absorb
    target: str             # mechanism label, for example "price" or "flow"

    def lag_calendar_days(self) -> int:
        return (self.effective_date - self.trigger_date).days

# The window length is produced by the cascade simulation, not set here.
# Do not hard-code twenty days; sweep lag and coverage and record the result.

Comparing the price and flow objects

The post distinguishes policy objects it calls “price” and “flow.” Use the comparison below to specify each term in your model. The axes come from the author’s stated parameters and are not the result of a comparative test showing that either type always works or fails.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Axis Price-type object Flow-type object
Mechanism to define The price channel the cascade model should contain, stated explicitly in the model. The transaction or purchase flow channel the cascade model should contain, stated explicitly in the model.
Speed to effect Set as a lag parameter and tested across a range rather than assumed. Set as a lag parameter and tested across a range rather than assumed.
Amount covered A capped notional or a share of observed volume, with the denominator stated. A capped notional or a share of observed flow, with the denominator stated.
Test of effect Run the cascade with and without this term under identical shocks. Run the cascade with and without this term under identical shocks.

Testing whether the window holds

A model that produces a twenty-day window has shown that its assumptions can produce one. It has not shown that the policy caused the window to close. Before reporting any result, check the following:

  • Observable start: the trigger can be replayed from data available on the trigger date.
  • Counterfactual: the same shock sequence is run with and without the policy term, and the difference is the only thing attributed to policy.
  • Sensitivity: the lag and coverage parameters are swept across ranges, and the change in window length and tail losses is reported for each.
  • Uncertainty: results are shown as ranges across parameter settings, not as a single point estimate.
  • Data identity: the index, the price or total-return basis, and the revision status are recorded alongside the results.
  • Labeling: a simulated window is labeled as simulated and is never presented as an observed market result unless it has been tested against documented observations.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

What still needs independent checking

The post is a secondary, AI-assisted piece reviewed by its author. Its detailed price-path assertions, its description of “twenty days” as an empirical calibration, and its claims about margin and dealer mechanisms have not been independently verified against primary market data. Treat them as the author’s claims and check them against your own data before building on them. Where the post and the official record differ, the official record governs the dates and actions, and the author’s account governs only the interpretation it explicitly labels as its own.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.