The fact that the loop is doing "find first driver matching these strange criteria" seems most obviously obscured by the pattern of assigning a value, then killing the loop or not. This strikes me as the part that makes the algorithm tedious to test, since it forces us to use a collection to test the intricacies of the inner conditions.
Once we isolate "find first driver matching condition" from computing the condition for each driver, I consider the rest a question of personal taste. Specification pattern, composition of filters, something like that. Whatever you find easier to follow.
FWIW, both big chain grocery stores where I live (in Canada) mark the taxes charged on each item, albeit only with a single-character code that's explained nearer the bottom of the receipt. I'm surprised that it's legal anywhere in our respective countries to withhold that information.
And indeed, even though you can see the nontaxable items clearly on the receipt, that's not made clear at the shelves where the prices are posted. That's where they really need to show the price including taxes.
Some liquor stores in Canada, for example, show both prices: before and after taxes. I'll let you guess which price is rendered in the smaller font.
Tried a Typematrix. At the time, I was a roving freelancer who frequently worked with other people at their machines, so I decided that it was safer to stick with a conventional layout.
Having Enter on the thumb was interesting, but I never got used to it.
I'm sorry that you find yourself in an environment where you struggle to freely be yourself. I can strongly relate to this. I feel like I have to be constantly on guard and protect myself from people and it's a shitty way to live.
Standing up for yourself often feels uncomfortable in the moment, but you are very likely to regret not doing it. Whichever of the various tricks in the comments you feel comfortable trying or have hope will help, go for it.