{
  "slug": "decision-brief",
  "baseline_sha256": "1412d63a2e454fe0decdf710f48a7c38e6384b3208f553d6521b04efb1447f6e",
  "preview_sha256": "18b8f4f8bf9eddc649e17de08bd932257f5da7163654a69cc1e3eded1b26eda6",
  "source_text_nodes": 60,
  "numeric_occurrences": 27,
  "source_records": {
    "criteria": [
      [
        "Modelled revenue, FY27",
        [
          "+$180k",
          "+$310k",
          "+$240k"
        ]
      ],
      [
        "Support load",
        [
          "+40 tickets / month",
          "+12 tickets / month",
          "+25 tickets / month"
        ]
      ],
      [
        "Time to ship",
        [
          "3 weeks",
          "5 weeks",
          "4 weeks"
        ]
      ],
      [
        "Churn risk",
        [
          "HighStops work mid-task",
          "LowNothing is interrupted",
          "MediumThe grace period ends"
        ]
      ],
      [
        "Time to revert",
        [
          "1 week",
          "2 weeks",
          "3 weeks"
        ]
      ]
    ],
    "options": [
      "Criterion",
      "A \u00b7 Hard cap with upgrade prompt",
      "B \u00b7 Metered overageRecommended",
      "C \u00b7 Soft cap with 7-day grace"
    ],
    "rejections": [
      "A \u00b7 Hard cap with an upgrade prompt Cheapest, fastest, and the only option guaranteeing no unbilled usage \u2014 a real argument. It is also the only one that stops a customer mid-export. Two of our four largest accounts would have hit the cap in July, and neither can close procurement in a day.",
      "C \u00b7 Soft cap with a seven-day grace The compromise, and it collects most of B's revenue. But a grace period still ends, and it ends on a Tuesday for somebody. It also needs its own notifications \u2014 so it costs nearly what B costs and keeps A's problem."
    ],
    "asks": [
      "Approve Option B and a five-week build starting 22 September.",
      "Accept that the first invoice carrying overage lands on 3 February, not in January.",
      "Name a rollback owner who is not the person building it \u2014 the revert is two weeks and needs someone free to call it."
    ],
    "deadline": [
      "Decision needed by19 SeptemberIf it slips past the 26th the January release is out and this becomes an April decision."
    ],
    "risk_marks": [
      [
        "on",
        "on",
        "on"
      ],
      [
        "on",
        "",
        ""
      ],
      [
        "on",
        "on",
        ""
      ]
    ]
  },
  "preview_records": {
    "criteria": [
      [
        "Modelled revenue, FY27",
        [
          "+$180k",
          "+$310k",
          "+$240k"
        ]
      ],
      [
        "Support load",
        [
          "+40 tickets / month",
          "+12 tickets / month",
          "+25 tickets / month"
        ]
      ],
      [
        "Time to ship",
        [
          "3 weeks",
          "5 weeks",
          "4 weeks"
        ]
      ],
      [
        "Churn risk",
        [
          "HighStops work mid-task",
          "LowNothing is interrupted",
          "MediumThe grace period ends"
        ]
      ],
      [
        "Time to revert",
        [
          "1 week",
          "2 weeks",
          "3 weeks"
        ]
      ]
    ],
    "options": [
      "Criterion",
      "A \u00b7 Hard cap with upgrade prompt",
      "B \u00b7 Metered overageRecommended",
      "C \u00b7 Soft cap with 7-day grace"
    ],
    "rejections": [
      "A \u00b7 Hard cap with an upgrade prompt Cheapest, fastest, and the only option guaranteeing no unbilled usage \u2014 a real argument. It is also the only one that stops a customer mid-export. Two of our four largest accounts would have hit the cap in July, and neither can close procurement in a day.",
      "C \u00b7 Soft cap with a seven-day grace The compromise, and it collects most of B's revenue. But a grace period still ends, and it ends on a Tuesday for somebody. It also needs its own notifications \u2014 so it costs nearly what B costs and keeps A's problem."
    ],
    "asks": [
      "Approve Option B and a five-week build starting 22 September.",
      "Accept that the first invoice carrying overage lands on 3 February, not in January.",
      "Name a rollback owner who is not the person building it \u2014 the revert is two weeks and needs someone free to call it."
    ],
    "deadline": [
      "Decision needed by19 SeptemberIf it slips past the 26th the January release is out and this becomes an April decision."
    ],
    "risk_marks": [
      [
        "on",
        "on",
        "on"
      ],
      [
        "on",
        "",
        ""
      ],
      [
        "on",
        "on",
        ""
      ]
    ]
  },
  "checks": {
    "frozen_hash_matches_inventory": true,
    "inventory_nodes_match_source": true,
    "text_node_multiset_equal": true,
    "numeric_multiset_equal": true,
    "phrases": {
      "p": true,
      "h1": true,
      "h2": true,
      "h3": true,
      "footer": true,
      "td": true,
      "th": true,
      "code": true
    },
    "keyed_records_equal": true,
    "hrefs_equal": true,
    "code_bytes_equal": true,
    "svg_data_equal": true,
    "inline_style_data_equal": true
  },
  "missing_text_nodes": {},
  "unexpected_text_nodes": {},
  "additional_labels": [
    "Source phone option labels A \u00b7 Hard cap / B \u00b7 Metered overage / C \u00b7 Soft cap repeat once per criterion (15 labels, as in Current). Appended \u00b7 Recommended to each of five B labels: five explicit mobile recommendation repetitions; not a data score. Existing matrix heading moved into the table caption with no extra copy."
  ],
  "all_pass": true
}
