_CONFUSABLE covers the seven -teen/-ty pairs. Those are the classic case and worth having first, but the confusions that cost the most on a real phone line are in digit strings, and none of them are listed:
- "oh" and "zero" read back in a card or account number
- "a" and "eight", which is the same one-phoneme problem as fifteen/fifty
- "to", "two" and "too" where an amount or a quantity follows
- "double seven" and "seventy seven", and the same for any repeated digit, which is how a lot of people read numbers aloud
- letter confusions on a phone line: B, D, E, P, T, V and Z are famously indistinguishable over narrowband audio, and they turn up in reference codes and postcodes
A misheard reference code is not a small error. It routes the call to the wrong account and the agent proceeds with complete confidence, which is exactly the class of failure check_misheard is for.
Acceptance
- New pairs added with a comment explaining the acoustic reason, matching the style of the existing list
- A fixture call containing a misread account number produces a finding
- No new false positives on the existing
good_call.json fixture
Good first issue: additive, and the existing fixtures pin the current behaviour.
_CONFUSABLEcovers the seven -teen/-ty pairs. Those are the classic case and worth having first, but the confusions that cost the most on a real phone line are in digit strings, and none of them are listed:A misheard reference code is not a small error. It routes the call to the wrong account and the agent proceeds with complete confidence, which is exactly the class of failure
check_misheardis for.Acceptance
good_call.jsonfixtureGood first issue: additive, and the existing fixtures pin the current behaviour.