This page condenses the theory in README.md and links each formula to the
production code (see metrics/). It is intended for analysts who want a quick
refresher on how the dashboard turns JSDA and JPX data into implied probabilities.
1. Ingestion
Scheduled jobs download JSDA bond quotes and JPX JSCC settlement rates into
data/market_data.json (see README “Project Structure”).
2. Processing
process_market_data ( metrics/calculations.py ) normalizes
tenors, derives the BoJ rate distribution, and attaches credit metrics.
3. Presentation
The Flask route / wires the processed payload to the charts in
templates/index.html, yielding the dashboard views.
Following the README derivation, the expected overnight rate over the policy period satisfies
E[r] = (r_post (D_pre + D_post) - r_pre D_pre) / D_post, where
r_post is the OIS quote spanning the next decision window, r_pre is
today’s 1D rate, and D_* measure days before/after the meeting. The helper
calculate_implied_rate inside calculate_rate_probabilities
interpolates the necessary term structure point to evaluate this identity.
With a 25 bps policy increment, the hike probability is
p = (E[r] - r_pre) / 0.25. Positive p maps to the “hike” bar, negative
values are treated as cuts, and everything is clipped to 0–100% to build the stacked scenario
chart shown on the dashboard tab.
The README’s “Probability of Default” section is implemented in
metrics/credit.py. Government bonds are used to interpolate a term-matched
risk-free curve, which is subtracted from each corporate yield to form a spread
s.
Using a 10% recovery assumption (LGD = 90%), the hazard rate for issuer
i is lambda_i = s_i / (1 - R). Assuming a constant hazard rate, the
default probability over horizon T is PD_i(T) = 1 - exp(-lambda_i T).
The resulting 1Y/3Y/5Y metrics populate the “Default Probs” table, sorted by 5-year risk.
extract_jgb_curve samples tradeable government issues, groups them by years to
maturity, and interpolates to standard tenors (1D to 40Y). The resulting array is injected as
data.jgb_curve, letting the front-end plot government yields alongside OIS rates
for quick sanity checks on term premia.