
What we've learned from building 25+ country tax modules
When we started, we thought the hard part was the technology.
Turns out, the hard part is understanding that "tax reporting" means something completely different in each country.
Here's what 25+ country modules taught us:
Lesson 1: There is no "standard" tax report
Early assumption: Build one flexible template, adjust rates per country.
Reality: Germany wants Anlage KAP format. Norway needs Skattemelding structure. France requires IFU compliance. Austria has different forms entirely.
The formats aren't just different—they're fundamentally incompatible.
Learning: Stop trying to build "one size fits all." Build country-native solutions from the ground up.
Lesson 2: The devil is in the definitions
What's a "dividend" seems obvious, right?
Except:
- US distinguishes qualified vs. ordinary
- France has the 40% abattement for certain dividends
- Germany treats certain fund distributions differently
- REITs are special cases almost everywhere (but differently)
Learning: You can't just map transactions to categories. You need jurisdiction-specific classification logic.
Lesson 3: Treaties are bilateral, not universal
We naively thought: "Learn the tax treaty rules once, apply everywhere."
Reality: The US-Germany treaty differs from US-Norway. France-Switzerland has different rules than France-Austria. Every bilateral relationship is unique.
We now maintain 300+ treaty relationships. Each one matters.
Learning: Tax treaty optimization requires a matrix, not a list.
Lesson 4: "Simple" countries don't exist
When a bank asks: "Can you add [Country X]? It should be simple."
Our internal response: laughs
Even countries with "straightforward" tax systems have:
- Specific reporting formats
- Unique capital gains calculations
- Special treatment for certain instruments
- Filing deadline requirements
- Local language expectations
Learning: Respect every jurisdiction's complexity. "Simple" is relative.
Lesson 5: Regulations change constantly
Building a country module isn't a one-time project.
France changed their flat tax system in 2018. US tax reform in 2017 altered dividend treatment. Countries update treaty agreements. Filing deadlines shift.
Each country requires ongoing maintenance, not just initial build.
Learning: Tax reporting is a subscription service to regulatory changes, not a one-time purchase.
What 25+ countries really means:
It's not 25 copies of the same thing with different tax rates.
It's:
→ 25 regulatory frameworks understood deeply
→ 25 reporting formats built natively
→ 300+ treaty relationships maintained
→ 25 ongoing relationships with local tax experts
→ 25 unique update schedules monitored
→ 25 different definitions of "good documentation"
Why this matters for banks:
When you serve clients across borders, you're not just dealing with currency conversion.
Getting it right isn't about being "pretty good" in 25 countries.
It's about being genuinely excellent in each one.