{"schemaVersion":1,"kind":"daily-thesis","asOf":"2026-07-17","sourceSchemaVersion":3,"sourceUrl":"/data/daily-thesis.json","methodologyUrl":"/methodology/#daily-thesis","integrity":{"algorithm":"sha256","canonicalization":"SHA-256 of UTF-8 JSON.stringify(payload)","payloadSha256":"213d783c5380c35e54f921e8143e4647687387196ce021b3799f2f69a5836723"},"payload":{"schemaVersion":3,"asOf":"2026-07-17","temporalCoverage":{"publicationDate":"2026-07-17","latestCompleteObservationDate":"2026-07-16","latestConstituentObservationDate":"2026-07-17","capturedAt":1784337341},"methodologyUrl":"/methodology/#daily-thesis","anomaly":{"dimension":"creditHygLqdRatio","componentId":"creditHygLqdRatio","label":"HYG/LQD","value":0.740517,"unit":"ratio","zScore":2.146998,"absoluteZScore":2.146998,"percentileRank":98.016,"sampleSize":252,"observationDate":"2026-07-17","direction":"risk_on","sentence":"HYG/LQD printed 0.740517, 2.15 standard deviations above its prior 252-observation mean, the largest absolute state-vector z-score.","source":"Yahoo Finance adjusted closes","sourceUrl":"https://finance.yahoo.com/","formula":"HYG adjusted close divided by LQD adjusted close.","methodologyUrl":"/methodology/#confluence-engine"},"confluence":{"thresholdAbsoluteZ":0.5,"rule":"Transform each mapped component z-score into risk direction and count absolute component z-scores below 0.50 as no vote. Cross-asset COT has no single risk-direction mapping and receives no vote.","sentence":"2 components agree with the risk-on direction, 3 disagree, and 4 have no vote.","agree":[{"componentId":"regimeComposite","label":"Regime composite","representativeDimension":"regimeComposite","representativeLabel":"Regime composite","componentZScore":0.913716,"riskAdjustedZScore":0.913716,"dimensionsUsed":1,"observationDate":"2026-07-17","vote":"agree","source":"FRED and Yahoo Finance","sourceUrl":"https://fred.stlouisfed.org/","formula":"Equal-weight mean of the finite volatility, breadth, credit, 2s10s, and dollar leg scores.","methodologyUrl":"/methodology/#confluence-engine"},{"componentId":"breadth","label":"Breadth","representativeDimension":"breadth","representativeLabel":"RSP/SPY breadth","componentZScore":0.72003,"riskAdjustedZScore":0.72003,"dimensionsUsed":1,"observationDate":"2026-07-17","vote":"agree","source":"Yahoo Finance adjusted closes","sourceUrl":"https://finance.yahoo.com/","formula":"RSP/SPY ratio deviation from its trailing 90-session mean, multiplied by 100.","methodologyUrl":"/methodology/#confluence-engine"}],"disagree":[{"componentId":"curve2s10sBps","label":"2s10s","representativeDimension":"curve2s10sBps","representativeLabel":"2s10s Treasury curve","componentZScore":-1.770312,"riskAdjustedZScore":-1.770312,"dimensionsUsed":1,"observationDate":"2026-07-17","vote":"disagree","source":"US Treasury spread via FRED","sourceUrl":"https://fred.stlouisfed.org/series/T10Y2Y","formula":"10-year Treasury yield minus 2-year Treasury yield, multiplied by 100.","methodologyUrl":"/methodology/#confluence-engine"},{"componentId":"curve5s30sBps","label":"5s30s","representativeDimension":"curve5s30sBps","representativeLabel":"5s30s Treasury curve","componentZScore":-1.527697,"riskAdjustedZScore":-1.527697,"dimensionsUsed":1,"observationDate":"2026-07-16","vote":"disagree","source":"US Treasury DGS30 minus DGS5 via FRED","sourceUrl":"https://fred.stlouisfed.org/series/DGS30","formula":"30-year Treasury yield minus 5-year Treasury yield, multiplied by 100.","methodologyUrl":"/methodology/#confluence-engine"},{"componentId":"dollarIndex","label":"Broad dollar","representativeDimension":"dollarIndex","representativeLabel":"Broad dollar index","componentZScore":0.568449,"riskAdjustedZScore":-0.568449,"dimensionsUsed":1,"observationDate":"2026-07-17","vote":"disagree","source":"Federal Reserve via FRED","sourceUrl":"https://fred.stlouisfed.org/series/DTWEXBGS","formula":"Federal Reserve nominal broad US dollar index level.","methodologyUrl":"/methodology/#confluence-engine"}],"noVote":[{"componentId":"vixTermStructurePct","label":"VIX term structure slope","representativeDimension":"vixTermStructurePct","representativeLabel":"VIX3M/VIX slope","componentZScore":0.251071,"riskAdjustedZScore":0.251071,"dimensionsUsed":1,"observationDate":"2026-07-16","vote":"no_vote","source":"CBOE indices via FRED","sourceUrl":"https://fred.stlouisfed.org/","formula":"(CBOE 3-month volatility index divided by VIX minus 1) multiplied by 100.","methodologyUrl":"/methodology/#confluence-engine"},{"componentId":"netGex","label":"Net GEX","representativeDimension":null,"representativeLabel":null,"componentZScore":null,"riskAdjustedZScore":null,"dimensionsUsed":0,"observationDate":null,"vote":"no_vote","source":"CBOE delayed options","sourceUrl":"https://www.cboe.com/delayed_quotes/","formula":"Sum of gamma times open interest times 100 times spot squared times 1%, with calls positive and puts negative.","methodologyUrl":"/methodology/#confluence-engine"},{"componentId":"maxPainDistancePct","label":"Max pain distance","representativeDimension":null,"representativeLabel":null,"componentZScore":null,"riskAdjustedZScore":null,"dimensionsUsed":0,"observationDate":null,"vote":"no_vote","source":"CBOE delayed options","sourceUrl":"https://www.cboe.com/delayed_quotes/","formula":"(Front-expiry max-pain strike minus spot) divided by spot, multiplied by 100.","methodologyUrl":"/methodology/#confluence-engine"},{"componentId":"cotCommercialPercentile","label":"COT commercial percentile","representativeDimension":"cotCommercialPercentile.YM","representativeLabel":"COT commercial percentile (YM)","componentZScore":-0.033915,"riskAdjustedZScore":null,"dimensionsUsed":16,"observationDate":"2026-07-14","vote":"no_vote","source":"CFTC Legacy Futures-Only","sourceUrl":"https://publicreporting.cftc.gov/resource/6dca-aqww.json","formula":"Commercial net position percentile within the trailing 52 published weekly observations, computed per contract.","methodologyUrl":"/methodology/#confluence-engine"}]},"analog":{"sentence":"Across n=50 analogs, SPX +21-session returns had a -0.10% median, 48.0% positive hit rate, and -2.75% worst decile; ES had a -0.29% median, 48.0% positive hit rate, and -2.85% worst decile.","sampleSize":50,"methodologyUrl":"/methodology/#analog-engine","artifactUrl":"/data/analog-engine.json","formula":"Cosine distance over shared finite dimensions after each date is standardized against only its prior 252 sessions.","distributions":{"SPX":{"oneDay":{"n":50,"hitRate":46,"hitRateInterval95":[32.969652,59.601129],"median":-0.107107,"worstDecile":-1.339487,"minimum":-2.452207,"maximum":1.458833,"histogram":[{"lower":-2.452207,"upper":-2.061103,"count":1},{"lower":-2.061103,"upper":-1.669999,"count":1},{"lower":-1.669999,"upper":-1.278895,"count":4},{"lower":-1.278895,"upper":-0.887791,"count":3},{"lower":-0.887791,"upper":-0.496687,"count":6},{"lower":-0.496687,"upper":-0.105583,"count":10},{"lower":-0.105583,"upper":0.285521,"count":11},{"lower":0.285521,"upper":0.676625,"count":10},{"lower":0.676625,"upper":1.067729,"count":2},{"lower":1.067729,"upper":1.458833,"count":2}]},"fiveDay":{"n":50,"hitRate":52,"hitRateInterval95":[38.511745,65.202865],"median":0.247609,"worstDecile":-2.006988,"minimum":-4.549337,"maximum":4.150291,"histogram":[{"lower":-4.549337,"upper":-3.679374,"count":1},{"lower":-3.679374,"upper":-2.809411,"count":1},{"lower":-2.809411,"upper":-1.939449,"count":5},{"lower":-1.939449,"upper":-1.069486,"count":4},{"lower":-1.069486,"upper":-0.199523,"count":7},{"lower":-0.199523,"upper":0.67044,"count":14},{"lower":0.67044,"upper":1.540403,"count":5},{"lower":1.540403,"upper":2.410365,"count":10},{"lower":2.410365,"upper":3.280328,"count":2},{"lower":3.280328,"upper":4.150291,"count":1}]},"twentyOneDay":{"n":50,"hitRate":48,"hitRateInterval95":[34.797135,61.488255],"median":-0.099859,"worstDecile":-2.75379,"minimum":-5.02385,"maximum":10.757029,"histogram":[{"lower":-5.02385,"upper":-3.445762,"count":2},{"lower":-3.445762,"upper":-1.867674,"count":7},{"lower":-1.867674,"upper":-0.289586,"count":13},{"lower":-0.289586,"upper":1.288502,"count":11},{"lower":1.288502,"upper":2.866589,"count":7},{"lower":2.866589,"upper":4.444677,"count":4},{"lower":4.444677,"upper":6.022765,"count":2},{"lower":6.022765,"upper":7.600853,"count":1},{"lower":7.600853,"upper":9.178941,"count":1},{"lower":9.178941,"upper":10.757029,"count":2}]}},"ES":{"oneDay":{"n":50,"hitRate":46,"hitRateInterval95":[32.969652,59.601129],"median":-0.150091,"worstDecile":-1.175946,"minimum":-2.514351,"maximum":1.403136,"histogram":[{"lower":-2.514351,"upper":-2.122602,"count":1},{"lower":-2.122602,"upper":-1.730854,"count":0},{"lower":-1.730854,"upper":-1.339105,"count":3},{"lower":-1.339105,"upper":-0.947356,"count":4},{"lower":-0.947356,"upper":-0.555607,"count":5},{"lower":-0.555607,"upper":-0.163859,"count":12},{"lower":-0.163859,"upper":0.22789,"count":12},{"lower":0.22789,"upper":0.619639,"count":9},{"lower":0.619639,"upper":1.011387,"count":2},{"lower":1.011387,"upper":1.403136,"count":2}]},"fiveDay":{"n":50,"hitRate":54,"hitRateInterval95":[40.398871,67.030348],"median":0.374938,"worstDecile":-1.807209,"minimum":-4.617569,"maximum":4.085852,"histogram":[{"lower":-4.617569,"upper":-3.747227,"count":1},{"lower":-3.747227,"upper":-2.876885,"count":1},{"lower":-2.876885,"upper":-2.006543,"count":3},{"lower":-2.006543,"upper":-1.136201,"count":5},{"lower":-1.136201,"upper":-0.265859,"count":8},{"lower":-0.265859,"upper":0.604484,"count":11},{"lower":0.604484,"upper":1.474826,"count":8},{"lower":1.474826,"upper":2.345168,"count":10},{"lower":2.345168,"upper":3.21551,"count":1},{"lower":3.21551,"upper":4.085852,"count":2}]},"twentyOneDay":{"n":50,"hitRate":48,"hitRateInterval95":[34.797135,61.488255],"median":-0.292979,"worstDecile":-2.850412,"minimum":-4.392993,"maximum":10.436782,"histogram":[{"lower":-4.392993,"upper":-2.910015,"count":5},{"lower":-2.910015,"upper":-1.427038,"count":5},{"lower":-1.427038,"upper":0.05594,"count":16},{"lower":0.05594,"upper":1.538917,"count":9},{"lower":1.538917,"upper":3.021894,"count":3},{"lower":3.021894,"upper":4.504872,"count":7},{"lower":4.504872,"upper":5.987849,"count":1},{"lower":5.987849,"upper":7.470827,"count":1},{"lower":7.470827,"upper":8.953805,"count":1},{"lower":8.953805,"upper":10.436782,"count":2}]}}}},"falsifier":{"sentence":"The read is invalid if HYG/LQD records at or below 0.725445, the z=0.00 level from the prior n=252 observations, on its next daily print.","operator":"at_or_below","thresholdValue":0.725445,"thresholdZScore":0,"currentValue":0.740517,"unit":"ratio","cadence":"daily","observationCount":252,"evidence":{"source":"Yahoo Finance adjusted closes","sourceUrl":"https://finance.yahoo.com/","formula":"HYG adjusted close divided by LQD adjusted close.","methodologyUrl":"/methodology/#confluence-engine"}},"comparison":{"status":"available","previousAsOf":"2026-07-16","previousArtifactUrl":"/data/machine/v1/archive/2026-07-16/daily-thesis.53464cea1ce313daaa945d4793320031e3d68d3603d368be102da315615cf0f3.json","currentArtifactUrl":"/data/daily-thesis.json","summary":"5 observable changes since the prior completed thesis.","changes":[{"id":"anomaly-z","kind":"anomaly","label":"HYG/LQD moved","detail":"The standardized reading moved from +2.45 sigma to +2.15 sigma."},{"id":"activation-breadth","kind":"activation","label":"Breadth activated","detail":"The component moved from no vote to supportive."},{"id":"deactivation-vixTermStructurePct","kind":"deactivation","label":"VIX term structure slope lost its vote","detail":"The component moved below the published vote threshold or lost sufficient coverage."},{"id":"falsifier-level","kind":"falsifier","label":"Invalidation level changed","detail":"The threshold moved from 0.725403 to 0.725445 ratio."},{"id":"coverage-date","kind":"coverage","label":"Complete observation window advanced","detail":"2026-07-14 became 2026-07-16."}]},"downloads":{"thesis":"/data/daily-thesis.json","confluence":"/data/confluence-vector.json","analogs":"/data/analog-engine.json","falsification":"/data/falsification-ledger.json"}}}
