~6 min read
By Svetlana Toohey Published May 2026

Series: Top 10 AI Traps in Accounting — Trap #1
Not the dramatic kind.
No one called. No fire drill. No audit panic.
Just… numbers not tying.
You know — the quiet kind of wrong.
Everything looked fine in Excel.
($1,234.56)
Clean. Professional. Very accounting.
I ran it through Python.
And suddenly…
Naturally, the first thought:
“AI messed this up.”
Here’s what Python actually saw:
"($1,234.56)"
Not a number.
A string.
A very confident-looking string.
Excel showed me this:
| What I Saw | What It Meant |
|---|---|
($1,234.56) |
Negative number ✔ |
| Formatted beautifully | Easy to trust ✔ |
But under the hood?
$ → text, → text( ) → just parenthesesThere was no negative number. Just vibes.
AI did exactly what it was supposed to do.
It assumed: “If you gave me a column of numbers, they are probably numbers.”
Reasonable. Incorrect. Very Excel of me.
This isn’t an AI problem.
This is an accounting habit problem.
We’ve been trained for years to trust what we see:
But in Python?
If it’s not explicitly a number, it’s not a number.
No interpretation. No assumptions. No “I know what you meant.”
def clean_accounting_number(series):
return (
series.astype(str)
.replace(r'[\$,]', '', regex=True) # Remove $ and commas
.replace(r'\((.*?)\)', r'-\1', regex=True) # (123) → -123
.astype(float)
)
Translation:
$, ,)(123) → -123This logic is packaged as a reusable PythonMuse Skill:
skill-accounting-number-normalization
You can also find it in the PythonMuse Workflow Kit.
If your data comes from Excel:
Export to CSV or re-save as CSV before using it in Python.
Why? Because CSV strips out a lot of Excel’s “presentation magic.”
It won’t fix everything — you’ll still need to clean data — but:
We keep saying: “AI isn’t reliable yet.”
But sometimes:
And the issue is: we handed them Excel’s presentation layer and called it data.
Excel is amazing.
But Excel is also:
It makes data look clean… even when it’s not.
If you’ve read “AI Can’t Work With Our Excel Files”… or Can It?, you already know the instruction layer matters. This is the data discipline side of the same problem.
And if you’re building an audit-ready workflow, the raw-layer principle from The Workings Layer Method applies here too: always preserve the original. Never overwrite source data. Transform in a separate step.
If you’re moving into Python + AI workflows:
Stop asking:
“Why did AI get it wrong?”
Start asking:
“What assumptions did Excel teach me that aren’t real?”
AI didn’t fail. It just didn’t know you were speaking accounting.
We don’t have an AI problem.
We have a data discipline gap.
And honestly? That’s good news.
Because that’s something we can fix.
This article has a companion Skill you can drop into any project:
Accounting Number Normalization →
Also available in the PythonMuse Workflow Kit on GitHub.
Series: Top 10 AI Traps in Accounting — Trap #1: Parentheses Are Not Negatives
A note on how this article was made. This article started with me. The experience, the problem, and the fix are mine — I shared what actually happened and how I solved it. ChatGPT helped me shape that into a structured draft. GitHub Copilot (Claude Sonnet 4.6) then built the final article, the companion Skill, and all visual assets — working from my direction and feedback at each step. I reviewed every output, pushed back on things I didn’t like (the title, font sizes, branding), and made all final content decisions. That process — bringing your own experience, using AI to build and iterate, and staying in the editorial seat throughout — is exactly what this series is about.
| *By Svetlana Toohey | PythonMuse | GitHub* |