{
  "report_rows": [
    {
      "kpi": "Q2 Adjusted Organic Sales Growth",
      "prediction": "BEAT",
      "answer": "pred ~3.4% vs. cons 3.15%",
      "confidence": "MEDIUM"
    },
    {
      "kpi": "Q2 Adjusted EPS",
      "prediction": "BEAT",
      "answer": "pred ~$2.29 vs. cons $2.24",
      "confidence": "MEDIUM"
    },
    {
      "kpi": "Q2 Adjusted Operating Margin",
      "prediction": "IN-LINE",
      "answer": "pred ~24.5% vs. cons 24.65%",
      "confidence": "MEDIUM"
    }
  ],
  "guide_rows": [
    {
      "kpi": "FY2026 Adjusted EPS Guidance",
      "prediction": "BETTER",
      "answer": "guide ~$8.60-$8.90 (mid ~$8.75) vs. cons ~$8.60 (FY2026)",
      "confidence": "MEDIUM"
    },
    {
      "kpi": "FY2026 Organic Sales Growth Guidance",
      "prediction": "BETTER",
      "answer": "guide ~3.0-3.5% (mid ~3.2%) vs. cons ~3.0% (FY2026)",
      "confidence": "LOW"
    },
    {
      "kpi": "H2 2026 Organic Growth Cadence Commentary",
      "prediction": "BETTER",
      "answer": "guide ~3.5% vs. cons ~3.3% (H2 2026)",
      "confidence": "LOW"
    },
    {
      "kpi": "EPS Contingency Removal ($0.05-$0.15)",
      "prediction": "BETTER",
      "answer": "guide ~$0.00 residual contingency vs. cons ~$0.10 embedded (FY2026)",
      "confidence": "MEDIUM"
    }
  ],
  "day1_residual_pct": 2.0,
  "day1_confidence": "MEDIUM",
  "day5_residual_pct": 1.0,
  "day5_path": "FADE",
  "day5_rationale": "Beat-and-raise on growth/EPS plus a raised or narrowed EPS contingency should trigger an initial pop, but the stock has already rallied hard off the May low pricing in much of the 'acceleration' narrative, margin came in only in-line (with oil/tariff cost offset uncertainty persisting into H2) and the pre-buy-vs-organic-demand debate around Q1's order surge won't be fully resolved by one print. Sell-side will likely trim out-period margin/EPS assumptions modestly even after nudging FY26 EPS higher, capping follow-through and causing partial fade of the day-1 pop over the next week.",
  "day5_confidence": "LOW"
}