{
  "product_id": "score-reliability-by-band",
  "semver": "1.0.0",
  "class": "evidence_pack",
  "ticker": "MULTI",
  "interval": "multi",
  "date_range": {
    "start": "2022-11-30",
    "end": "2026-08-07"
  },
  "row_count": 16,
  "columns": [
    {
      "name": "timeframe",
      "unit": "category",
      "description": "evaluation timeframe of the setups in this row"
    },
    {
      "name": "score_band",
      "unit": "category",
      "description": "score band, right-open; the model's setup score is 0-1"
    },
    {
      "name": "score_lo",
      "unit": "score",
      "description": "band lower edge (inclusive)"
    },
    {
      "name": "score_hi",
      "unit": "score",
      "description": "band upper edge (exclusive)"
    },
    {
      "name": "n",
      "unit": "count",
      "description": "setups in this band after de-duplication"
    },
    {
      "name": "n_tickers",
      "unit": "count",
      "description": "distinct tickers contributing to this band"
    },
    {
      "name": "hits",
      "unit": "count",
      "description": "setups that reached their required move inside the forward window (null when suppressed)"
    },
    {
      "name": "observed_hit_rate",
      "unit": "score",
      "description": "hits / n (null when suppressed)"
    },
    {
      "name": "mean_score",
      "unit": "score",
      "description": "mean setup score inside the band (null when suppressed)"
    },
    {
      "name": "mean_required_move_pct",
      "unit": "pct",
      "description": "mean move, in percent, a setup in this band had to travel to count as a hit. Read this before comparing rates across bands: the required move rises with the score, which is why crude rates fall across bands. The width-adjusted relationship is indistinguishable from zero (null when suppressed)"
    },
    {
      "name": "reportable",
      "unit": "bool",
      "description": "false = value fields suppressed; see reason"
    },
    {
      "name": "suppressed_reason",
      "unit": "category",
      "description": "why values are suppressed (sample size, ticker concentration, or band outside observed support)"
    }
  ],
  "sha256": "e9fa130e5316502ed6d1e94b2ffc753043db1a9ecffd5bc9d363b16387adeb27",
  "engine_version": "5aaaa00be392e3895b8f8b60f230405d76ea07da",
  "generated_at": "2026-08-12T06:19:39.771474+00:00",
  "license_id": "gs-evidence-1.0",
  "license_url": "https://greensandstrategies.com/licenses/gs-evidence-1.0.txt",
  "license_sha256": "825736144d81336fd941bdb8f37571a6512ae5317492f14bd00a1c53ec49499d",
  "price_usd": 0,
  "sample_url": "https://greensandstrategies.com/datasets/score-reliability-by-band/1.0.0/data.csv",
  "disclaimer": "Educational/entertainment statistics only. Not investment advice. This table describes the model's own historical behaviour on a curated research library; it is not transferable to live trading and is not a ranking of setups.",
  "description": "The model's own score-reliability table. One row per (timeframe, score band): how often setups in that band reached their required move, with the mean required move alongside \u2014 because the apparent decline in hit rate across bands tracks the required move, not setup quality. Bands with too little data or too much single-ticker concentration are suppressed rather than reported. Derived analytics only; contains no price series and cannot reconstruct one.",
  "source_report": "calibration_2026-08-11.json",
  "suppression": {
    "n_column": "n",
    "min_n": 25,
    "value_columns": [
      "hits",
      "observed_hit_rate",
      "mean_score",
      "mean_required_move_pct"
    ]
  },
  "download_url": "https://greensandstrategies.com/datasets/score-reliability-by-band/1.0.0/data.csv"
}