From fefc3e2f91e2abb1b08abae980a42e1e3df0e922 Mon Sep 17 00:00:00 2001 From: Cal Corum Date: Fri, 20 Feb 2026 14:06:11 -0600 Subject: [PATCH] store: Fix: Win percentage parsing robustness and None default in ScorebugData --- ...obustness-and-none-default-in-sc-afbc47.md | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 graph/fixes/fix-win-percentage-parsing-robustness-and-none-default-in-sc-afbc47.md diff --git a/graph/fixes/fix-win-percentage-parsing-robustness-and-none-default-in-sc-afbc47.md b/graph/fixes/fix-win-percentage-parsing-robustness-and-none-default-in-sc-afbc47.md new file mode 100644 index 00000000000..f48e79eb352 --- /dev/null +++ b/graph/fixes/fix-win-percentage-parsing-robustness-and-none-default-in-sc-afbc47.md @@ -0,0 +1,34 @@ +--- +id: afbc470d-05a6-4f5a-8835-b3cdf6ecba8c +type: fix +title: "Fix: Win percentage parsing robustness and None default in ScorebugData" +tags: [major-domo, scorebug, win-probability, fix, parsing, discord-bot] +importance: 0.65 +confidence: 0.8 +created: "2026-02-20T20:06:11.768716+00:00" +updated: "2026-02-20T20:06:11.768716+00:00" +--- + +# Fix: Win Percentage Parsing Robustness + +## Problem +`ScorebugData.__init__` defaulted `win_percentage` to `50.0` when the field was absent or empty, causing the embed to show a misleading 50/50 probability bar instead of indicating unavailability. + +## Changes + +### `models/scorebug_data.py` (ScorebugData) +- Changed default: `data.get("win_percentage")` instead of `data.get("win_percentage", 50.0)` +- `win_percentage` is now `Optional[float]`, defaulting to `None` + +### `services/scorebug_service.py` +Parsing now handles edge cases: +- Empty string → `None` +- Decimal range `0.0–1.0` → multiply by 100 (sheet may give raw probability) +- Unparseable value → `None` with INFO log + +### `utils/scorebug_helpers.py` +- When `win_percentage is None`, embed shows "-# Win probability unavailable" instead of a bar +- Embed color logic guards against `None` comparison (no `TypeError` on `win_percentage > 50`) + +## Closes +Issue #39. Branch: `fix/scorebug-bugs`.