{
  "schema_version": "publication_handoff_v1",
  "producer": {
    "name": "strategy-lab publication-handoff",
    "renderer_implementation_identity": "d37a243cb17f2b7e6cf46dda4cc0c9122ae920255bbf63fde4c99c1a86357c3b"
  },
  "run": {
    "run_id": "research_c003_btcusdt_volatility_managed_replay_89f6974",
    "manifest_sha256": "c51f7a4bc0f6cd7bb83d80cdeccefb05bc582b2ac1fd8b8fd433b1a1264edc10",
    "artifact_index_sha256": "0f4abb40575579082e8110738cb97f4c696e28dfb2e81ef5abb78b6629b587d3",
    "replay_of": {
      "parent_run_id": "research_c003_btcusdt_volatility_managed",
      "parent_manifest_sha256": "ef7a3334554f558eb363c362f105586a2de82cf738aacb49afba09b9e0abc8b6",
      "parent_result_sha256": "01a13c586496ad4d8994e4629fb3e39c46f78fb26ffdf99bf5393c92aa4aa34d",
      "parent_numerical_implementation_identity": "00a5bf492685c08c64e1fdc5149464917cd01595a1ec16d04c0dc03eb919e249",
      "comparison_sha256": "1931ce36dfc1ba3186f25f27310a2897a05f69419ca410cb17f42939a69c0822"
    }
  },
  "research": {
    "research_id": "research_c003_btcusdt_volatility_managed",
    "approved_research_identity": "da3f4d8eeeb618be488a04aa49bb3832b8383b1022ce0fda949c69e46f26f1e2",
    "source_material": {
      "media_type": "text/markdown",
      "sha256": "ac9d6e6e0a2f50b6769add0d423fa31890ce16611e888083be9429be8f4e55ec"
    },
    "source": {
      "title": "Conditional Volatility Targeting",
      "author": "Dion Bongaerts, Xiaowei Kang, and Mathijs A. van Dijk",
      "date": "2020",
      "url": "https://doi.org/10.1080/0015198X.2020.1790853"
    },
    "research_context": {
      "classification": "ORIGINAL_HYPOTHESIS_VALIDATION",
      "research_question": "For BTCUSDT, does Candidate 003's frozen capped realized-volatility-ratio weighted exposure meet the pre-registered primary excess-return-and-drawdown criterion against identically costed buy-and-hold?",
      "substitutions": [
        {
          "type": "MARKET_PROXY_CHANGED",
          "detail": "Candidate 003 is an original BTCUSDT Spot hypothesis; the cited equity-market volatility-management literature is motivation only and did not specify this market or rule."
        }
      ]
    }
  },
  "family": {
    "family_identity": "edd5ba25c76f662f0c6ed541e7a4a03976f578ce32c5d987f786fa7737266e91",
    "mechanism": "realized_vol_ratio_weight",
    "symbol": "BTCUSDT",
    "interval": "1d",
    "exposure": "long_cash_weighted",
    "execution": "next_daily_open",
    "accounting": "fractional_weight_rebalance_terminal_liquidation_v1",
    "benchmark": "identically_costed_buy_and_hold",
    "evaluation_start_utc": "2019-07-01",
    "evaluation_end_exclusive_utc": "2026-09-01",
    "evaluation_days": 2619,
    "maximum_warmup_days": 366,
    "primary_cost_bps_per_leg": 15,
    "diagnostic_cost_bps_per_leg": [
      20,
      25
    ],
    "decision_rule": {
      "type": "primary_plus_robustness",
      "version": "family_rule_v1",
      "k": 0,
      "n": 3,
      "primary_member_id": "btc_short_window_30"
    },
    "members": [
      {
        "order": 1,
        "id": "btc_short_window_15",
        "decision_role": "robustness",
        "member_criterion_version": "excess_return_drawdown_v1",
        "parameters": [
          {
            "name": "short_window",
            "value": 15
          },
          {
            "name": "long_window",
            "value": 365
          },
          {
            "name": "decision_weekday_utc",
            "value": 7
          }
        ],
        "warmup_days": 366,
        "required_first_bar_utc": "2018-06-30",
        "numerical_specification_identity": "6538c8ffa6c24e04d5ce9b6e7734da209cd8d0f68ef7ab76f674f449efa638b7",
        "source_description": "Candidate 003 original hypothesis. Bongaerts, Kang, and van Dijk motivate only state conditioning and the possible failure of conventional volatility targeting; they did not propose this rule.",
        "source_excerpt": "Literature motivation only; Candidate 003's capped 365-day-normalized realized-volatility-ratio rule is original to this test.",
        "cost_rationale": "Frozen pre-evaluation assumptions: 15 bps per executed leg for the primary and 20/25 bps per executed leg for non-gating diagnostics; each is a per-leg, not round-trip, charge.",
        "date_selection_reason": "The shared 366-day warmup, evaluation interval, and terminal-support candle remain below the existing 3,000-row family-coverage ceiling. 2019-07-01 is Monday, so the first target uses completed Sunday 2019-06-30 warmup data and executes at Monday's open; the date follows pre-existing capacity/calendar constraints, not observed returns.",
        "prior_inspection": "known"
      },
      {
        "order": 2,
        "id": "btc_short_window_30",
        "decision_role": "primary",
        "member_criterion_version": "excess_return_drawdown_v1",
        "parameters": [
          {
            "name": "short_window",
            "value": 30
          },
          {
            "name": "long_window",
            "value": 365
          },
          {
            "name": "decision_weekday_utc",
            "value": 7
          }
        ],
        "warmup_days": 366,
        "required_first_bar_utc": "2018-06-30",
        "numerical_specification_identity": "9e10e542e638d0421570484ff92e17708149e69ef4e89a72ff89368bbacdbff4",
        "source_description": "Candidate 003 original hypothesis. Bongaerts, Kang, and van Dijk motivate only state conditioning and the possible failure of conventional volatility targeting; they did not propose this rule.",
        "source_excerpt": "Literature motivation only; Candidate 003's capped 365-day-normalized realized-volatility-ratio rule is original to this test.",
        "cost_rationale": "Frozen pre-evaluation assumptions: 15 bps per executed leg for the primary and 20/25 bps per executed leg for non-gating diagnostics; each is a per-leg, not round-trip, charge.",
        "date_selection_reason": "The shared 366-day warmup, evaluation interval, and terminal-support candle remain below the existing 3,000-row family-coverage ceiling. 2019-07-01 is Monday, so the first target uses completed Sunday 2019-06-30 warmup data and executes at Monday's open; the date follows pre-existing capacity/calendar constraints, not observed returns.",
        "prior_inspection": "known"
      },
      {
        "order": 3,
        "id": "btc_short_window_60",
        "decision_role": "robustness",
        "member_criterion_version": "excess_return_drawdown_v1",
        "parameters": [
          {
            "name": "short_window",
            "value": 60
          },
          {
            "name": "long_window",
            "value": 365
          },
          {
            "name": "decision_weekday_utc",
            "value": 7
          }
        ],
        "warmup_days": 366,
        "required_first_bar_utc": "2018-06-30",
        "numerical_specification_identity": "7385d2be345e3849e98e1811084f1a443a1e3d5f615d1edffc4088852262670d",
        "source_description": "Candidate 003 original hypothesis. Bongaerts, Kang, and van Dijk motivate only state conditioning and the possible failure of conventional volatility targeting; they did not propose this rule.",
        "source_excerpt": "Literature motivation only; Candidate 003's capped 365-day-normalized realized-volatility-ratio rule is original to this test.",
        "cost_rationale": "Frozen pre-evaluation assumptions: 15 bps per executed leg for the primary and 20/25 bps per executed leg for non-gating diagnostics; each is a per-leg, not round-trip, charge.",
        "date_selection_reason": "The shared 366-day warmup, evaluation interval, and terminal-support candle remain below the existing 3,000-row family-coverage ceiling. 2019-07-01 is Monday, so the first target uses completed Sunday 2019-06-30 warmup data and executes at Monday's open; the date follows pre-existing capacity/calendar constraints, not observed returns.",
        "prior_inspection": "known"
      }
    ]
  },
  "dataset": {
    "provider": "Binance Public Data",
    "market": "Spot",
    "symbol": "BTCUSDT",
    "interval": "1d",
    "capture_source": "Binance Public Data Spot monthly kline archives plus daily kline archives for the trailing partial month",
    "rows": 2986,
    "first_open_utc": "2018-06-30T00:00:00Z",
    "terminal_open_utc": "2026-09-01T00:00:00Z",
    "normalized_bars_sha256": "43c0b328bf7a10fb08c81adc60acd1341bcb6361b22835b9fad433e7357c22be",
    "capture_manifest_sha256": "03445aa26f004fbc11cb9ec65f8f2846b5b86a39bfca4226f71be43a4977616f",
    "source_attribution_sha256": "f5171dc14e495061d31f6d4106d7be890b307fba135400ed029c62cd503439d2",
    "pre_run_provenance_sha256": "f7f00dde39f9b005e62f9a24a2e15bee66de2d0edc096861f95d15d44395d908",
    "research_plan_sha256": "078f3b56beca9bc4e4db283c41acf2ffab5ccdc6a69af01ab7a3e23a24abd1cd",
    "retained_provider_archives": 100,
    "normalizer_identity": "00a5bf492685c08c64e1fdc5149464917cd01595a1ec16d04c0dc03eb919e249"
  },
  "results": {
    "outcome": "DID_NOT_MEET_CRITERIA",
    "completion": "COMPLETE",
    "reason": "The named primary member did not meet its criterion; robustness members cannot rescue it.",
    "met_criteria_members": 0,
    "did_not_meet_criteria_members": 3,
    "inconclusive_members": 0,
    "evaluation_failed_members": 0,
    "missing_members": 0,
    "members": [
      {
        "id": "btc_short_window_15",
        "status": "EVALUATED",
        "scientific_outcome": "DID_NOT_MEET_CRITERIA",
        "reason": "At least one drawdown-inclusive member condition was not met: positive mean excess log return, positive one-sided 95% lower bound, and strictly improved maximum drawdown are all required.",
        "operational_error": "",
        "primary": {
          "cost_bps_per_leg": 15,
          "strategy": {
            "cumulative_return_percent": "623.147825",
            "annualized_return_percent": "31.748958",
            "simple_return_sharpe": "0.775297",
            "log_return_sharpe": "0.480369",
            "maximum_drawdown_percent": "-75.546203",
            "exposure_days": 2619,
            "turnover_legs": 135,
            "closed_trades": 1,
            "mean_risky_weight_decimal": "0.9406275814632904",
            "de_risked_time_share_decimal": "0.2596410843833524",
            "realized_traded_quote_notional_usdt": "89.15332267907552"
          },
          "benchmark": {
            "cumulative_return_percent": "621.809355",
            "annualized_return_percent": "31.714946",
            "simple_return_sharpe": "0.762112",
            "log_return_sharpe": "0.444536",
            "maximum_drawdown_percent": "-76.629251",
            "exposure_days": 2619,
            "turnover_legs": 2,
            "closed_trades": 1
          }
        },
        "hac": {
          "lag_days": 20,
          "mean_daily_excess_log_return": "7.073727916948773e-07",
          "one_sided_95_lower_bound": "-0.00012105475361203662",
          "standard_error": "7.402611661525298e-05"
        },
        "drawdown_criterion": {
          "strategy_maximum_drawdown_percent": "-75.546203",
          "benchmark_maximum_drawdown_percent": "-76.629251",
          "strictly_improved": true
        },
        "diagnostic_costs": [
          {
            "cost_bps_per_leg": 20,
            "strategy": {
              "cumulative_return_percent": "616.149056",
              "annualized_return_percent": "31.570508",
              "simple_return_sharpe": "0.772909",
              "log_return_sharpe": "0.478020",
              "maximum_drawdown_percent": "-75.572737",
              "exposure_days": 2619,
              "turnover_legs": 135,
              "closed_trades": 1,
              "mean_risky_weight_decimal": "0.9406275814632904",
              "de_risked_time_share_decimal": "0.2596410843833524",
              "realized_traded_quote_notional_usdt": "88.60421596268435"
            },
            "benchmark": {
              "cumulative_return_percent": "621.087904",
              "annualized_return_percent": "31.696590",
              "simple_return_sharpe": "0.761883",
              "log_return_sharpe": "0.444310",
              "maximum_drawdown_percent": "-76.629251",
              "exposure_days": 2619,
              "turnover_legs": 2,
              "closed_trades": 1
            }
          },
          {
            "cost_bps_per_leg": 25,
            "strategy": {
              "cumulative_return_percent": "609.218004",
              "annualized_return_percent": "31.392300",
              "simple_return_sharpe": "0.770520",
              "log_return_sharpe": "0.475671",
              "maximum_drawdown_percent": "-75.599243",
              "exposure_days": 2619,
              "turnover_legs": 135,
              "closed_trades": 1,
              "mean_risky_weight_decimal": "0.9406275814632904",
              "de_risked_time_share_decimal": "0.2596410843833524",
              "realized_traded_quote_notional_usdt": "88.05903239326364"
            },
            "benchmark": {
              "cumulative_return_percent": "620.367173",
              "annualized_return_percent": "31.678237",
              "simple_return_sharpe": "0.761654",
              "log_return_sharpe": "0.444084",
              "maximum_drawdown_percent": "-76.629251",
              "exposure_days": 2619,
              "turnover_legs": 2,
              "closed_trades": 1
            }
          }
        ]
      },
      {
        "id": "btc_short_window_30",
        "status": "EVALUATED",
        "scientific_outcome": "DID_NOT_MEET_CRITERIA",
        "reason": "At least one drawdown-inclusive member condition was not met: positive mean excess log return, positive one-sided 95% lower bound, and strictly improved maximum drawdown are all required.",
        "operational_error": "",
        "primary": {
          "cost_bps_per_leg": 15,
          "strategy": {
            "cumulative_return_percent": "566.065359",
            "annualized_return_percent": "30.247798",
            "simple_return_sharpe": "0.754894",
            "log_return_sharpe": "0.455284",
            "maximum_drawdown_percent": "-76.477244",
            "exposure_days": 2619,
            "turnover_legs": 136,
            "closed_trades": 1,
            "mean_risky_weight_decimal": "0.9468652493906748",
            "de_risked_time_share_decimal": "0.29935089728904163",
            "realized_traded_quote_notional_usdt": "44.14798413282916"
          },
          "benchmark": {
            "cumulative_return_percent": "621.809355",
            "annualized_return_percent": "31.714946",
            "simple_return_sharpe": "0.762112",
            "log_return_sharpe": "0.444536",
            "maximum_drawdown_percent": "-76.629251",
            "exposure_days": 2619,
            "turnover_legs": 2,
            "closed_trades": 1
          }
        },
        "hac": {
          "lag_days": 20,
          "mean_daily_excess_log_return": "-3.068852643112217e-05",
          "one_sided_95_lower_bound": "-0.00014578129510848105",
          "standard_error": "6.99714350210412e-05"
        },
        "drawdown_criterion": {
          "strategy_maximum_drawdown_percent": "-76.477244",
          "benchmark_maximum_drawdown_percent": "-76.629251",
          "strictly_improved": true
        },
        "diagnostic_costs": [
          {
            "cost_bps_per_leg": 20,
            "strategy": {
              "cumulative_return_percent": "562.285437",
              "annualized_return_percent": "30.144532",
              "simple_return_sharpe": "0.753504",
              "log_return_sharpe": "0.453919",
              "maximum_drawdown_percent": "-76.491647",
              "exposure_days": 2619,
              "turnover_legs": 136,
              "closed_trades": 1,
              "mean_risky_weight_decimal": "0.9468652493906748",
              "de_risked_time_share_decimal": "0.29935089728904163",
              "realized_traded_quote_notional_usdt": "43.985558441197874"
            },
            "benchmark": {
              "cumulative_return_percent": "621.087904",
              "annualized_return_percent": "31.696590",
              "simple_return_sharpe": "0.761883",
              "log_return_sharpe": "0.444310",
              "maximum_drawdown_percent": "-76.629251",
              "exposure_days": 2619,
              "turnover_legs": 2,
              "closed_trades": 1
            }
          },
          {
            "cost_bps_per_leg": 25,
            "strategy": {
              "cumulative_return_percent": "558.526943",
              "annualized_return_percent": "30.041347",
              "simple_return_sharpe": "0.752115",
              "log_return_sharpe": "0.452555",
              "maximum_drawdown_percent": "-76.506043",
              "exposure_days": 2619,
              "turnover_legs": 136,
              "closed_trades": 1,
              "mean_risky_weight_decimal": "0.9468652493906748",
              "de_risked_time_share_decimal": "0.29935089728904163",
              "realized_traded_quote_notional_usdt": "43.82382961135392"
            },
            "benchmark": {
              "cumulative_return_percent": "620.367173",
              "annualized_return_percent": "31.678237",
              "simple_return_sharpe": "0.761654",
              "log_return_sharpe": "0.444084",
              "maximum_drawdown_percent": "-76.629251",
              "exposure_days": 2619,
              "turnover_legs": 2,
              "closed_trades": 1
            }
          }
        ]
      },
      {
        "id": "btc_short_window_60",
        "status": "EVALUATED",
        "scientific_outcome": "DID_NOT_MEET_CRITERIA",
        "reason": "At least one drawdown-inclusive member condition was not met: positive mean excess log return, positive one-sided 95% lower bound, and strictly improved maximum drawdown are all required.",
        "operational_error": "",
        "primary": {
          "cost_bps_per_leg": 15,
          "strategy": {
            "cumulative_return_percent": "445.301572",
            "annualized_return_percent": "26.666638",
            "simple_return_sharpe": "0.705581",
            "log_return_sharpe": "0.405338",
            "maximum_drawdown_percent": "-76.975222",
            "exposure_days": 2619,
            "turnover_legs": 134,
            "closed_trades": 1,
            "mean_risky_weight_decimal": "0.9462155942804118",
            "de_risked_time_share_decimal": "0.3207331042382589",
            "realized_traded_quote_notional_usdt": "26.16547756599785"
          },
          "benchmark": {
            "cumulative_return_percent": "621.809355",
            "annualized_return_percent": "31.714946",
            "simple_return_sharpe": "0.762112",
            "log_return_sharpe": "0.444536",
            "maximum_drawdown_percent": "-76.629251",
            "exposure_days": 2619,
            "turnover_legs": 2,
            "closed_trades": 1
          }
        },
        "hac": {
          "lag_days": 20,
          "mean_daily_excess_log_return": "-0.00010707219076482143",
          "one_sided_95_lower_bound": "-0.00021469105407173915",
          "standard_error": "6.542762319001943e-05"
        },
        "drawdown_criterion": {
          "strategy_maximum_drawdown_percent": "-76.975222",
          "benchmark_maximum_drawdown_percent": "-76.629251",
          "strictly_improved": false
        },
        "diagnostic_costs": [
          {
            "cost_bps_per_leg": 20,
            "strategy": {
              "cumulative_return_percent": "443.198919",
              "annualized_return_percent": "26.598455",
              "simple_return_sharpe": "0.704642",
              "log_return_sharpe": "0.404418",
              "maximum_drawdown_percent": "-76.980752",
              "exposure_days": 2619,
              "turnover_legs": 134,
              "closed_trades": 1,
              "mean_risky_weight_decimal": "0.9462155942804118",
              "de_risked_time_share_decimal": "0.3207331042382589",
              "realized_traded_quote_notional_usdt": "26.10128899847397"
            },
            "benchmark": {
              "cumulative_return_percent": "621.087904",
              "annualized_return_percent": "31.696590",
              "simple_return_sharpe": "0.761883",
              "log_return_sharpe": "0.444310",
              "maximum_drawdown_percent": "-76.629251",
              "exposure_days": 2619,
              "turnover_legs": 2,
              "closed_trades": 1
            }
          },
          {
            "cost_bps_per_leg": 25,
            "strategy": {
              "cumulative_return_percent": "441.104325",
              "annualized_return_percent": "26.530308",
              "simple_return_sharpe": "0.703703",
              "log_return_sharpe": "0.403498",
              "maximum_drawdown_percent": "-76.986282",
              "exposure_days": 2619,
              "turnover_legs": 134,
              "closed_trades": 1,
              "mean_risky_weight_decimal": "0.9462155942804118",
              "de_risked_time_share_decimal": "0.3207331042382589",
              "realized_traded_quote_notional_usdt": "26.037289065530377"
            },
            "benchmark": {
              "cumulative_return_percent": "620.367173",
              "annualized_return_percent": "31.678237",
              "simple_return_sharpe": "0.761654",
              "log_return_sharpe": "0.444084",
              "maximum_drawdown_percent": "-76.629251",
              "exposure_days": 2619,
              "turnover_legs": 2,
              "closed_trades": 1
            }
          }
        ]
      }
    ]
  },
  "implementation": {
    "numerical_implementation_identity": "ea40ffd363513438be476f257ee33894f8c21cb47befb717c86ae6bc10acc307",
    "renderer_implementation_identity": "d37a243cb17f2b7e6cf46dda4cc0c9122ae920255bbf63fde4c99c1a86357c3b",
    "environment_identity": "047c23e23c52a10b0400986440cc310bb9a00b59091de695ba6f0134aed570f5",
    "executable_sha256": "9bfd5fe0b43f441a79d0c57d920950b3ad9da7c9032fa81bc9f3471fa8f5a72e",
    "main_module_version": "(devel)",
    "vcs_revision": "",
    "vcs_modified": null
  },
  "interpretation_limits": [
    {
      "code": "HISTORICAL_HYPOTHETICAL",
      "statement": "Results are historical hypothetical simulations under the frozen execution, cost, benchmark and accounting assumptions. They do not establish execution feasibility or future profitability."
    },
    {
      "code": "HISTORICAL_DATA_NOT_UNSEEN",
      "statement": "The evaluation period is historical market data that was publicly accessible before the study was frozen; it is not genuinely unseen or future data, whatever the research classification."
    },
    {
      "code": "DEPENDENT_FAMILY_MEMBERS",
      "statement": "Members evaluated on one BTCUSDT series with overlapping lookbacks are strongly dependent. The frozen family rule is a declared decision rule, not a calibrated family-level confidence test, and individual HAC bounds do not establish a family-wise error rate."
    },
    {
      "code": "ALL_MEMBERS_REPORTED",
      "statement": "Every frozen member is reported in declared order, including unfavorable, inconclusive and operationally failed members. No member may be selected, promoted or reordered after observing results, and diagnostic costs cannot change the primary-cost outcome."
    },
    {
      "code": "FIDELITY_OPERATOR_DECLARED",
      "statement": "The research classification and declared substitutions are operator-approved disclosures. Strategy Lab validates their structure and internal consistency but does not verify them against the source material."
    }
  ],
  "artifacts": [
    {
      "path": "input.json",
      "role": "submitted_input",
      "sha256": "85e03de171489cf89c93fc3d5d7d8b7099cc8136116ccd92f71f1cf060b02f8b"
    },
    {
      "path": "assessment.md",
      "role": "assessment",
      "sha256": "561bcd37156923e7a65554d9ac56565575fe82706fdc32dd55c5debb2ab156fa"
    },
    {
      "path": "request.json",
      "role": "run_request",
      "sha256": "20a22483f854c2af4f98be113240792b9fb0e476483a020f5e51a5f9dc291572"
    },
    {
      "path": "family.json",
      "role": "resolved_family",
      "sha256": "a93885e3db4fc5c443d281134a5f7408d7083e4298914574d3b588f3d6f1a9ca"
    },
    {
      "path": "dataset/capture-manifest.json",
      "role": "captured_source_manifest",
      "sha256": "03445aa26f004fbc11cb9ec65f8f2846b5b86a39bfca4226f71be43a4977616f"
    },
    {
      "path": "dataset/source-attribution.json",
      "role": "captured_source_attribution",
      "sha256": "f5171dc14e495061d31f6d4106d7be890b307fba135400ed029c62cd503439d2"
    },
    {
      "path": "dataset/pre-run-provenance.json",
      "role": "captured_pre_run_provenance",
      "sha256": "f7f00dde39f9b005e62f9a24a2e15bee66de2d0edc096861f95d15d44395d908"
    },
    {
      "path": "dataset/plan/research-plan.json",
      "role": "captured_research_plan",
      "sha256": "078f3b56beca9bc4e4db283c41acf2ffab5ccdc6a69af01ab7a3e23a24abd1cd"
    },
    {
      "path": "dataset/bars.json",
      "role": "normalized_dataset",
      "sha256": "43c0b328bf7a10fb08c81adc60acd1341bcb6361b22835b9fad433e7357c22be"
    },
    {
      "path": "dataset.json",
      "role": "dataset_binding",
      "sha256": "f73fd0c5b47712b5767d446adda8aadfd2b8620bb97c9c34da23e6d5bdee91ad"
    },
    {
      "path": "build-provenance.json",
      "role": "build_provenance",
      "sha256": "24e3624551a4290e0736c5423fe5a435f9dabb2498c3bb9a87826377e3a4b733"
    },
    {
      "path": "result.json",
      "role": "evaluation_result",
      "sha256": "0b7bfa6b431aa5f7108914227c6430b6161bed627155445876aacb161231eb75"
    },
    {
      "path": "report.md",
      "role": "factual_report",
      "sha256": "7ccdfe8a98181b301549c141fd09b60756f9e987f5178d4c516f1c26b41078be"
    },
    {
      "path": "lineage.json",
      "role": "replay_lineage",
      "sha256": "55963b31829648991f950dd734ecc6419a34b9c13cb240fe9a84e165f64e2164"
    },
    {
      "path": "comparison.json",
      "role": "factual_replay_comparison",
      "sha256": "1931ce36dfc1ba3186f25f27310a2897a05f69419ca410cb17f42939a69c0822"
    }
  ]
}
