Explained variant of gradeLegFromActual. Returns a discriminated
union so callers can distinguish a clean grade (won/lost/push), a
pending leg, and an unparseable actual that hints at an upstream bug.
Use when the caller wants to surface the reason in UI ("settling…"
vs "data error") instead of treating both as "pending" generically.
Explained variant of gradeLegFromActual. Returns a discriminated union so callers can distinguish a clean grade (won/lost/push), a pending leg, and an unparseable actual that hints at an upstream bug.
Use when the caller wants to surface the reason in UI ("settling…" vs "data error") instead of treating both as "pending" generically.