Two of these three records are bad — marcus is missing amount, riley's won't parse — but the run reports rejected=0. The except clause silently swallows them, so the drop report lies. Fix it so bad rows land in the rejected list instead of vanishing.
The break is on line 12 — but read the whole snippet first.