FATCA / CRS Tax Reporting Pipeline

Classify residency once, then project it into 1099, FATCA, and CRS filings

FATCA / CRS Tax Reporting Pipeline Classify residency once, then project it into 1099, FATCA, and CRS filings 01 / Sources 02 / Classify 03 / Compute 04 / Generate 05 / Submit Self-Cert · W-9 / W-8 / CRS · 01 / Sources · declared Self-Cert W-9 / W-8 / CRS declared Account Data · indicia + income · 01 / Sources · source Account Data indicia + income source Residency · reportable set · 02 / Classify · per jurisdiction Residency reportable set per jurisdiction Withholding Engine · summed records · 03 / Compute · at payment Withholding Engine summed records at payment 1099 + FATCA · flat + XML · 04 / Generate · US 1099 + FATCA flat + XML US CRS XML · by jurisdiction · 04 / Generate · OECD CRS XML by jurisdiction OECD Tax Authority · ack + corrections · 05 / Submit · async Tax Authority ack + corrections async self-certification declared residence indicia + income observed reportable accounts residency set US reportable 1099 / FATCA CRS reportable flat rows 1099 + FATCA files encrypted upload CRS messages encrypted upload Legend primary data policy / PII async batch data store

One classification, many files

  • • Residency is derived once as a set of reportable jurisdictions
  • • Every downstream file is a projection of that same set
  • • 1099, FATCA, and CRS share the classifier instead of re-deriving it

Withholding is a separate axis

  • • Withholding is booked at payment time, not at year end
  • • Reporting sums the immutable withholding records already written
  • • Recomputing would disagree with what was actually withheld

Corrections need stable identifiers

  • • Each account entry carries a stable document reference
  • • Regeneration diffs against the filed baseline
  • • The diff yields correct / void / new actions