{
  "records": [
    {
      "id": "fc_20260313_1833_U",
      "forecast_time": "2026-03-13 18:33 UTC",
      "review_time": "2026-03-13 20:02 UTC",
      "forecast_price": 71210.3,
      "actual_price": 71152.8,
      "council_signal": "neutral",
      "council_confidence": 0.64,
      "predictions": {
        "4h": {
          "predicted": "up",
          "target": 71800.0,
          "probability": 0.55,
          "actual_price": 71152.8,
          "direction_correct": true,
          "brier": 0.20249999999999996
        },
        "8h": {
          "predicted": "up",
          "target": 72000.0,
          "probability": 0.54,
          "actual_price": 71152.8,
          "direction_correct": true,
          "brier": 0.21159999999999995
        },
        "24h": {
          "predicted": "up",
          "target": 72300.0,
          "probability": 0.53,
          "actual_price": 71152.8,
          "direction_correct": true,
          "brier": 0.22089999999999999
        }
      },
      "composite_score": 0.7442836374675349,
      "lesson": "가장 중요한 교훈은 ‘레인지 상단 접근 가능성’과 ‘실제 방향성 상승’은 다르게 평가해야 한다는 점입니다. 지지가 유지된다고 해서 곧바로 상승 예측으로 연결하지 말고, 돌파 동력 부재가 보이면 기본 시나리오를 ‘횡보 우세’로 두고 상승은 조건부 시나리오로 격하하는 것이 더 정확합니다."
    },
    {
      "id": "fc_20260313_2234_U",
      "forecast_time": "2026-03-13 22:34 UTC",
      "review_time": "2026-03-14 00:02 UTC",
      "forecast_price": 70658.8,
      "actual_price": 70765.7,
      "council_signal": "bearish",
      "council_confidence": 0.68,
      "predictions": {
        "4h": {
          "predicted": "down",
          "target": 70100,
          "probability": 0.59,
          "actual_price": 70765.7,
          "direction_correct": true,
          "brier": 0.16810000000000003
        },
        "8h": {
          "predicted": "down",
          "target": 69800,
          "probability": 0.55,
          "actual_price": 70765.7,
          "direction_correct": true,
          "brier": 0.20249999999999996
        },
        "24h": {
          "predicted": "sideways",
          "target": 70500,
          "probability": 0.52,
          "actual_price": 70765.7,
          "direction_correct": true,
          "brier": 0.2304
        }
      },
      "composite_score": 0.8205225971527638,
      "lesson": "저항 인근에서의 약세 해석만으로 단기 하락을 우선시하지 말고, 실제로는 '저항 유지 속 횡보'와 '지지 재시험 하락'을 더 명확히 분리해 확률 배분해야 한다. 특히 가격이 이미 좁은 밴드 안에 있을 때는 방향 예측보다 박스권 지속 가능성을 기본값으로 두는 것이 더 견고하다."
    },
    {
      "id": "fc_20260314_0003_U",
      "forecast_time": "2026-03-14 00:03 UTC",
      "review_time": "2026-03-14 04:04 UTC",
      "forecast_price": 70737.9,
      "actual_price": 71053.0,
      "council_signal": "bearish",
      "council_confidence": 0.69,
      "predictions": {
        "4h": {
          "predicted": "down",
          "target": 70280.0,
          "probability": 0.56,
          "actual_price": 71053.0,
          "direction_correct": false,
          "brier": 0.31360000000000005
        },
        "8h": {
          "predicted": "sideways",
          "target": 70450.0,
          "probability": 0.52,
          "actual_price": 71053.0,
          "direction_correct": true,
          "brier": 0.2304
        },
        "24h": {
          "predicted": "up",
          "target": 71600.0,
          "probability": 0.55,
          "actual_price": 71053.0,
          "direction_correct": true,
          "brier": 0.20249999999999996
        }
      },
      "composite_score": 0.7821013285857038,
      "lesson": "가장 중요한 교훈은 단기 약세 시그널이 있더라도 상위 시간대의 구조적 축적·회복 시그널이 살아 있으면, '즉각적인 지지 재시험'을 기본 시나리오로 두기보다 '하방 실패 후 고점 유지' 가능성을 더 비중 있게 반영해야 한다는 점입니다. 특히 4h 방향 예측에서는 레벨 터치 가능성과 종가 방향성을 구분해 평가해야 합니다."
    },
    {
      "id": "fc_20260314_0756_U",
      "forecast_time": "2026-03-14 07:56 UTC",
      "review_time": "2026-03-14 08:05 UTC",
      "forecast_price": 70538.6,
      "actual_price": 70590.2,
      "council_signal": "bullish",
      "council_confidence": 0.68,
      "predictions": {
        "4h": {
          "predicted": "sideways",
          "target": 70480,
          "probability": 0.51,
          "actual_price": 70590.2,
          "direction_correct": true,
          "brier": 0.24009999999999998
        },
        "8h": {
          "predicted": "up",
          "target": 71680,
          "probability": 0.57,
          "actual_price": 70590.2,
          "direction_correct": true,
          "brier": 0.18490000000000004
        },
        "24h": {
          "predicted": "up",
          "target": 72880,
          "probability": 0.62,
          "actual_price": 70590.2,
          "direction_correct": true,
          "brier": 0.1444
        }
      },
      "composite_score": 0.7822461098188321,
      "lesson": "단기 박스권이 확인된 뒤에는 '돌파 가능성'보다 '박스 지속 가능성'을 기본값으로 더 강하게 두어야 합니다. 특히 상단 공급 흡수 확인 전에는 8h~24h 상방 연장 시나리오의 확률을 과도하게 높이기보다, 횡보 지속과 돌파 실패를 동등하거나 더 우세한 경로로 반영하는 것이 중요합니다."
    },
    {
      "id": "fc_20260314_1830_U",
      "forecast_time": "2026-03-14 18:30 UTC",
      "review_time": "2026-03-15 00:05 UTC",
      "forecast_price": 70592.1,
      "actual_price": 71174.4,
      "elapsed_hours": 5.6,
      "horizons_evaluated": [
        "4h"
      ],
      "council_signal": "bullish",
      "council_confidence": 0.64,
      "predictions": {
        "4h": {
          "predicted": "sideways",
          "target": 70980,
          "probability": 0.58,
          "actual_price": 71174.4,
          "direction_correct": false,
          "brier": 0.3364
        }
      },
      "composite_score": 0.5327200000000001,
      "lesson": "가장 중요한 교훈은 음수 펀딩과 상단 근접 저항이 동시에 존재할 때는 '저항에서 눌림'보다 '저항 돌파형 숏 스퀴즈'의 비대칭성을 더 높게 평가해야 한다는 점입니다. 즉, 내부 분석에서 돌파 트리거와 숏 연료를 확인했다면, 단순 박스권 분류보다 돌파 시나리오의 우선순위를 더 높이거나 최소한 방향 판정을 중립이 아닌 약상방으로 조정할 필요가 있습니다."
    }
  ],
  "aggregate": {
    "total": 5,
    "direction_4h": 0.6,
    "direction_8h": 1.0,
    "direction_24h": 1.0,
    "avg_brier": 0.22217692307692305,
    "calibration": {
      "90+": {
        "count": 0,
        "actual_pct": 0.0
      },
      "70-89": {
        "count": 0,
        "actual_pct": 0.0
      },
      "50-69": {
        "count": 13,
        "actual_pct": 0.8461538461538461
      }
    }
  }
}