Symptom
Records wrongly divided by 100 were logged as "restored." Six days later, 103 records from a different store were still holding the wrong values.
Cause
The restore covered the store where the problem was first spotted, not the full range the bad conversion had touched. ★★★ If you don't know the scope a bulk conversion was applied to, you don't know the scope of the repair either.
★★★ And multiplying by 100 does not undo it
It looks reversible. It isn't.
Fix
Re-fetch everything from the source of truth, not from a backup.
row["twd"] = live[handle] # rewrite, don't invert
★★ When the source of truth lives in an external system, that is your best backup. Your own backups mix timestamps; the upstream API is the correct answer as of right now. Don't repair the local copy — discard it and re-pull.
★ Rules for bulk conversion
twd_raw) — more reliable than an inverse★★★ A write we believed was reversible turned out not to be. The judgment "this is recoverable" rested on assuming we knew the blast radius — and that assumption was wrong.