{
  "schemaVersion": "weekly-preforecast-v2-web-1",
  "generatedAt": "2026-09-21",
  "status": "experimental_shadow_challenger",
  "statusLabel": "실험 모델 · 운영 전환 전",
  "target": "암퇘지·탕박·등외 제외·제주 제외 전체의 거래두수 가중 주간 평균 돈가(원/kg)",
  "forecastRule": "목표 ISO 주가 시작되기 전에 직전 완료 주까지만 사용하며, 목표 주 가격·거래두수와 주중 보정은 사용하지 않음",
  "latest": {
    "targetWeek": "2026-W39",
    "weekStart": "2026-09-21",
    "originCutoff": "2026-09-18",
    "previousActual": 7005.34,
    "v1OperatingPrediction": 6854.57,
    "v2Prediction": 6539.46,
    "v2Change": -465.88,
    "v2ChangePct": -6.65,
    "planningRange80": {
      "lower": 6321.71,
      "upper": 6757.21,
      "radius": 217.75,
      "empiricalCoverageFrom2024": 79.43
    }
  },
  "samePeriodComparison": {
    "status": "ok",
    "weeks": 45,
    "first_week": "2025-W44",
    "last_week": "2026-W38",
    "operating_v1_mape": 2.297,
    "v2_primary_mape": 2.1355,
    "naive_mape": 2.5669,
    "skill_v2_vs_operating_v1": 7.03,
    "skill_v2_vs_naive": 16.81,
    "paired_mape_improvement_pp": 0.1616,
    "paired_block_bootstrap_95_ci_pp": [
      -0.1853,
      0.47
    ],
    "paired_block_bootstrap": {
      "samples": 20000,
      "circular_block_weeks": 4,
      "fraction_positive": 0.8315,
      "statistically_clear_at_95_pct": false
    },
    "v2Wins": 27,
    "v1WinsOrTies": 18
  },
  "caseCheck": {
    "week": "2026-W35",
    "previousActual": 6474.25,
    "operatingV1": 6445,
    "v2": 6620.06,
    "actual": 6625.93,
    "v2Error": -5.86,
    "v2Ape": 0.09,
    "planningRange80": {
      "label": "80% empirical planning range",
      "nominal_coverage_pct": 80,
      "lower": 6397.84,
      "upper": 6842.29,
      "radius": 222.23,
      "calibration_weeks": 104,
      "method": "rolling 104-week symmetric absolute-error split conformal"
    },
    "independentEvidence": false,
    "note": "W35가 피처 설계의 계기였으므로 독립 검증 성적으로 사용하지 않음"
  },
  "periodComparison": [
    {
      "period": "development_2018_2023",
      "label": "2018~2023 개발",
      "weeks": 297,
      "naiveMape": 4.0864,
      "v1Mape": 3.9257,
      "v2Mape": 3.6299,
      "v1DirectionAccuracy": 57.9,
      "v2DirectionAccuracy": 68.7
    },
    {
      "period": "selection_2024",
      "label": "2024 검증",
      "weeks": 53,
      "naiveMape": 2.9191,
      "v1Mape": 2.5921,
      "v2Mape": 2.7179,
      "v1DirectionAccuracy": 67.9,
      "v2DirectionAccuracy": 67.9
    },
    {
      "period": "holdout_2025_to_pre_case",
      "label": "2025~2026-W34",
      "weeks": 88,
      "naiveMape": 2.4589,
      "v1Mape": 2.2479,
      "v2Mape": 2.1324,
      "v1DirectionAccuracy": 60.2,
      "v2DirectionAccuracy": 70.5
    },
    {
      "period": "full_pre_case",
      "label": "전체(W35 제외)",
      "weeks": 438,
      "naiveMape": 3.6182,
      "v1Mape": 3.4272,
      "v2Mape": 3.2187,
      "v1DirectionAccuracy": 59.6,
      "v2DirectionAccuracy": 68.9
    }
  ],
  "intervalDiagnostics": {
    "status": "historical_prequential_diagnostic_not_probability_guarantee",
    "method": "rolling 104-week symmetric absolute-error split conformal",
    "nominal_coverage_pct": 80,
    "full_pre_case": {
      "weeks": 334,
      "empirical_coverage_pct": 82.93,
      "mean_total_width": 494.13,
      "mean_total_width_pct_actual": 9.43
    },
    "from_2024_to_pre_case": {
      "weeks": 141,
      "empirical_coverage_pct": 79.43,
      "mean_total_width": 429.86,
      "mean_total_width_pct_actual": 7.51
    },
    "from_2025_to_pre_case": {
      "weeks": 88,
      "empirical_coverage_pct": 82.95,
      "mean_total_width": 452.69,
      "mean_total_width_pct_actual": 7.62
    },
    "recent_43_pre_case": {
      "weeks": 43,
      "empirical_coverage_pct": 81.4,
      "mean_total_width": 466.68,
      "mean_total_width_pct_actual": 7.75
    }
  },
  "model": {
    "name": "V2-Safe",
    "primaryModel": "ridge_v2_safe",
    "family": "StandardScaler + Ridge regression on next-week return",
    "ridgeAlpha": 100.0,
    "targetWeekObservationsUsed": false,
    "featureGroups": [
      "직전 1~13주 가격 흐름과 거래두수 변화",
      "과거 같은 ISO 주차의 계절 변화",
      "사전에 확정된 공휴일 강도와 월 경계"
    ],
    "excludedWithoutVintage": [
      "목표 주 가격·거래두수",
      "주중 보정값",
      "판촉·급식·날씨·질병·재고의 사후 확정 정보",
      "발표 시점을 복원할 수 없는 임시공휴일"
    ]
  },
  "limitations": [
    "W35 motivated the feature design and is reported only as a case check, not selection evidence.",
    "Calendar rows are reconstructed from the final holiday calendar; announcement vintages are not stored.",
    "School-meal, retailer-promotion, weather-forecast, inventory, and shipment vintages are not yet available and are excluded.",
    "The production V1 code evolved, so stored operating validation forecasts are used for the recent common-period comparison."
  ],
  "comparisonRows": [
    {
      "week": "2025-W44",
      "actual": 5944.0,
      "v1": 5938.0,
      "v2": 5973.13,
      "v1Ape": 0.1,
      "v2Ape": 0.49,
      "winner": "v1"
    },
    {
      "week": "2025-W45",
      "actual": 5823.0,
      "v1": 5853.0,
      "v2": 6016.8,
      "v1Ape": 0.52,
      "v2Ape": 3.33,
      "winner": "v1"
    },
    {
      "week": "2025-W46",
      "actual": 5699.0,
      "v1": 5721.0,
      "v2": 5851.4,
      "v1Ape": 0.39,
      "v2Ape": 2.67,
      "winner": "v1"
    },
    {
      "week": "2025-W47",
      "actual": 5761.0,
      "v1": 5647.0,
      "v2": 5717.6,
      "v1Ape": 1.98,
      "v2Ape": 0.75,
      "winner": "v2"
    },
    {
      "week": "2025-W48",
      "actual": 6062.0,
      "v1": 5715.0,
      "v2": 5801.81,
      "v1Ape": 5.72,
      "v2Ape": 4.29,
      "winner": "v2"
    },
    {
      "week": "2025-W50",
      "actual": 5991.0,
      "v1": 5948.0,
      "v2": 5888.52,
      "v1Ape": 0.72,
      "v2Ape": 1.71,
      "winner": "v1"
    },
    {
      "week": "2025-W51",
      "actual": 5826.0,
      "v1": 5934.0,
      "v2": 5811.24,
      "v1Ape": 1.85,
      "v2Ape": 0.25,
      "winner": "v2"
    },
    {
      "week": "2025-W52",
      "actual": 5572.0,
      "v1": 5776.0,
      "v2": 5550.53,
      "v1Ape": 3.66,
      "v2Ape": 0.39,
      "winner": "v2"
    },
    {
      "week": "2026-W01",
      "actual": 5519.0,
      "v1": 5474.0,
      "v2": 5467.86,
      "v1Ape": 0.82,
      "v2Ape": 0.93,
      "winner": "v1"
    },
    {
      "week": "2026-W02",
      "actual": 5392.0,
      "v1": 5492.0,
      "v2": 5614.38,
      "v1Ape": 1.85,
      "v2Ape": 4.12,
      "winner": "v1"
    },
    {
      "week": "2026-W03",
      "actual": 5219.0,
      "v1": 5363.0,
      "v2": 5406.21,
      "v1Ape": 2.76,
      "v2Ape": 3.59,
      "winner": "v1"
    },
    {
      "week": "2026-W04",
      "actual": 5218.0,
      "v1": 5213.0,
      "v2": 5147.51,
      "v1Ape": 0.1,
      "v2Ape": 1.35,
      "winner": "v1"
    },
    {
      "week": "2026-W05",
      "actual": 5599.0,
      "v1": 5250.0,
      "v2": 5258.34,
      "v1Ape": 6.23,
      "v2Ape": 6.08,
      "winner": "v2"
    },
    {
      "week": "2026-W06",
      "actual": 5726.0,
      "v1": 5646.0,
      "v2": 5779.22,
      "v1Ape": 1.4,
      "v2Ape": 0.93,
      "winner": "v2"
    },
    {
      "week": "2026-W07",
      "actual": 5294.0,
      "v1": 5781.0,
      "v2": 5719.45,
      "v1Ape": 9.2,
      "v2Ape": 8.04,
      "winner": "v2"
    },
    {
      "week": "2026-W08",
      "actual": 5197.0,
      "v1": 5217.0,
      "v2": 5124.63,
      "v1Ape": 0.38,
      "v2Ape": 1.39,
      "winner": "v1"
    },
    {
      "week": "2026-W09",
      "actual": 5482.0,
      "v1": 5385.0,
      "v2": 5535.98,
      "v1Ape": 1.77,
      "v2Ape": 0.98,
      "winner": "v2"
    },
    {
      "week": "2026-W10",
      "actual": 5424.0,
      "v1": 5491.0,
      "v2": 5519.0,
      "v1Ape": 1.24,
      "v2Ape": 1.75,
      "winner": "v1"
    },
    {
      "week": "2026-W11",
      "actual": 5282.0,
      "v1": 5436.0,
      "v2": 5475.56,
      "v1Ape": 2.92,
      "v2Ape": 3.66,
      "winner": "v1"
    },
    {
      "week": "2026-W12",
      "actual": 5490.0,
      "v1": 5302.0,
      "v2": 5350.09,
      "v1Ape": 3.42,
      "v2Ape": 2.55,
      "winner": "v2"
    },
    {
      "week": "2026-W13",
      "actual": 5370.0,
      "v1": 5565.0,
      "v2": 5670.58,
      "v1Ape": 3.63,
      "v2Ape": 5.6,
      "winner": "v1"
    },
    {
      "week": "2026-W14",
      "actual": 5529.0,
      "v1": 5387.0,
      "v2": 5444.24,
      "v1Ape": 2.57,
      "v2Ape": 1.53,
      "winner": "v2"
    },
    {
      "week": "2026-W15",
      "actual": 5950.0,
      "v1": 5592.0,
      "v2": 5659.64,
      "v1Ape": 6.02,
      "v2Ape": 4.88,
      "winner": "v2"
    },
    {
      "week": "2026-W16",
      "actual": 6478.0,
      "v1": 6081.0,
      "v2": 6148.99,
      "v1Ape": 6.13,
      "v2Ape": 5.08,
      "winner": "v2"
    },
    {
      "week": "2026-W17",
      "actual": 6618.0,
      "v1": 6541.0,
      "v2": 6699.02,
      "v1Ape": 1.16,
      "v2Ape": 1.22,
      "winner": "v1"
    },
    {
      "week": "2026-W18",
      "actual": 6624.0,
      "v1": 6630.0,
      "v2": 6664.72,
      "v1Ape": 0.09,
      "v2Ape": 0.61,
      "winner": "v1"
    },
    {
      "week": "2026-W19",
      "actual": 6480.0,
      "v1": 6577.0,
      "v2": 6519.1,
      "v1Ape": 1.5,
      "v2Ape": 0.6,
      "winner": "v2"
    },
    {
      "week": "2026-W20",
      "actual": 6570.0,
      "v1": 6373.0,
      "v2": 6512.43,
      "v1Ape": 3.0,
      "v2Ape": 0.88,
      "winner": "v2"
    },
    {
      "week": "2026-W21",
      "actual": 6598.0,
      "v1": 6603.0,
      "v2": 6609.96,
      "v1Ape": 0.08,
      "v2Ape": 0.18,
      "winner": "v1"
    },
    {
      "week": "2026-W22",
      "actual": 6390.0,
      "v1": 6601.0,
      "v2": 6597.39,
      "v1Ape": 3.3,
      "v2Ape": 3.25,
      "winner": "v2"
    },
    {
      "week": "2026-W23",
      "actual": 6542.0,
      "v1": 6399.0,
      "v2": 6335.52,
      "v1Ape": 2.19,
      "v2Ape": 3.16,
      "winner": "v1"
    },
    {
      "week": "2026-W24",
      "actual": 6626.0,
      "v1": 6567.0,
      "v2": 6665.02,
      "v1Ape": 0.89,
      "v2Ape": 0.59,
      "winner": "v2"
    },
    {
      "week": "2026-W25",
      "actual": 6601.0,
      "v1": 6684.0,
      "v2": 6673.91,
      "v1Ape": 1.26,
      "v2Ape": 1.1,
      "winner": "v2"
    },
    {
      "week": "2026-W26",
      "actual": 6261.0,
      "v1": 6570.0,
      "v2": 6541.78,
      "v1Ape": 4.94,
      "v2Ape": 4.48,
      "winner": "v2"
    },
    {
      "week": "2026-W27",
      "actual": 6303.0,
      "v1": 6270.0,
      "v2": 6297.99,
      "v1Ape": 0.52,
      "v2Ape": 0.08,
      "winner": "v2"
    },
    {
      "week": "2026-W28",
      "actual": 6481.0,
      "v1": 6335.0,
      "v2": 6371.4,
      "v1Ape": 2.25,
      "v2Ape": 1.69,
      "winner": "v2"
    },
    {
      "week": "2026-W29",
      "actual": 6388.0,
      "v1": 6534.0,
      "v2": 6455.62,
      "v1Ape": 2.29,
      "v2Ape": 1.06,
      "winner": "v2"
    },
    {
      "week": "2026-W30",
      "actual": 6309.0,
      "v1": 6330.0,
      "v2": 6324.01,
      "v1Ape": 0.33,
      "v2Ape": 0.24,
      "winner": "v2"
    },
    {
      "week": "2026-W31",
      "actual": 6256.0,
      "v1": 6331.0,
      "v2": 6308.57,
      "v1Ape": 1.2,
      "v2Ape": 0.84,
      "winner": "v2"
    },
    {
      "week": "2026-W32",
      "actual": 6429.0,
      "v1": 6262.0,
      "v2": 6367.78,
      "v1Ape": 2.6,
      "v2Ape": 0.95,
      "winner": "v2"
    },
    {
      "week": "2026-W33",
      "actual": 6451.0,
      "v1": 6452.0,
      "v2": 6488.82,
      "v1Ape": 0.02,
      "v2Ape": 0.59,
      "winner": "v1"
    },
    {
      "week": "2026-W34",
      "actual": 6474.0,
      "v1": 6448.0,
      "v2": 6427.21,
      "v1Ape": 0.4,
      "v2Ape": 0.72,
      "winner": "v1"
    },
    {
      "week": "2026-W36",
      "actual": 7022.0,
      "v1": 6623.0,
      "v2": 6695.94,
      "v1Ape": 5.68,
      "v2Ape": 4.64,
      "winner": "v2"
    },
    {
      "week": "2026-W37",
      "actual": 7142.0,
      "v1": 6938.0,
      "v2": 6944.76,
      "v1Ape": 2.86,
      "v2Ape": 2.76,
      "winner": "v2"
    },
    {
      "week": "2026-W38",
      "actual": 7005.0,
      "v1": 6903.0,
      "v2": 7010.92,
      "v1Ape": 1.46,
      "v2Ape": 0.08,
      "winner": "v2"
    }
  ],
  "license": "https://www.kogl.or.kr/info/licenseType1.do",
  "source": {
    "name": "축산물품질평가원_축산물등급판정정보",
    "url": "https://www.data.go.kr/data/15058822/openapi.do"
  }
}
