Zum Hauptinhalt springen

Daten aus W-2-Formulare extrahieren

Das IRS Form W-2 weist den Jahreslohn eines Arbeitnehmers und die einbehaltenen Steuern aus und ist eines der am stärksten strukturierten Dokumente im amerikanischen Finanzwesen, was genau der Grund ist, warum die Überführung in Daten immer noch Schwierigkeiten bereitet. Eine Steuerberatungskanzlei, die im Februar Mandanten aufnimmt, erhält W-2-Formulare zu Tausenden: saubere, von ADP heruntergeladene PDFs, Handyfotos einer Papierkopie und von einem Arbeitgeber gefaxte Scans. Jedes trägt dieselben nummerierten Boxen, und die Zahlen fließen direkt in ein Form 1040 ein. Box 1 ist der der Bundeseinkommensteuer unterliegende Lohn, Box 2 ist die einbehaltene Bundessteuer, Box 3 und Box 5 sind die Bemessungsgrundlagen für Social Security und Medicare, und Box 15 bis 17 enthalten den Landeslohn und die Landeseinkommensteuer für jeden Bundesstaat, in dem der Arbeitnehmer beschäftigt war. Die Schwierigkeit ist, dass das starre Layout nur auf dem Papier starr ist. Ein gescanntes W-2 verzieht sich und das Boxraster verschiebt sich, sodass eine naive Extraktion den Betrag aus Box 2 in Box 1 liest. Box 12 enthält bis zu vier codierte Einträge (Code D für eine 401(k)-Einzahlung, Code DD für die Krankenversicherung des Arbeitgebers, Code W für ein HSA), und der einbuchstabige Code muss mit seinem Betrag verknüpft bleiben. Ein Arbeitnehmer mit zwei Landeszeilen hat zwei Zeilen Box 15 bis 17, die nicht zu einer zusammenfallen dürfen. Die Arbeitgeber-Identifikationsnummer in Box b folgt einem strikten Format aus zwei Ziffern gefolgt von sieben Ziffern, was eine nützliche Konsistenzprüfung darstellt. Talonic liest das W-2 anhand seiner Boxnummern statt anhand der Pixelposition, sodass der Lohn aus Box 1 und die einbehaltene Steuer aus Box 2 auch bei einem verzogenen Scan in den richtigen Feldern landen. Box-12-Codes werden als Code-Betrag-Paare erfasst, und mehrere Landeszeilen bleiben getrennte Datensätze, sodass die Steuererklärung mit sauberen Daten erstellt werden kann.

Was aus W-2-Formulare extrahiert wird

Name des ArbeitnehmersSarah Mitchell
Arbeitgeber-EIN (Box b)12-3456789
Box 1 Arbeitslohn$78,400.00
Box 2 einbehaltene Bundessteuer$11,260.00
Box 3 Sozialversicherungslohn$78,400.00
Box 5 Medicare-Lohn$78,400.00
Box 12 CodesD: $6,000.00; DD: $14,200.00
Box 15 BundesstaatCA
Box 16 Lohn nach Bundesstaat$78,400.00
Box 17 Bundesstaatliche Einkommensteuer$4,120.00

So funktioniert die Extraktion für W-2-Formulare

W-2-Formulare kommen als PDFs von Lohnabrechnungsanbietern, Arbeitgeber-Ausdrucke und Handyfotos an, und das offizielle IRS-Layout ist konsistent genug, dass die Box-Nummer der richtige Anker ist, nicht die Position. Talonic liest das Formular anhand der W-2-Box-Zuordnung in der Field Registry, die jeden Wert an seine nummerierte Box statt an seine Position bindet. So werden Box-1-Lohn und Box-2-Quellensteuer auch bei einem schiefen oder gedrehten Scan korrekt zugeordnet. Box-12-Einträge werden als Code-Betrag-Paare erfasst (Code D, Code DD, Code W), sodass ein einzelner Buchstabencode nie von seinem Dollarbetrag getrennt wird. Mehrere Bundesstaatszeilen in Box 15 bis 17 werden als separate Bundesstaat-Datensätze geführt. Das Format der Arbeitgeber-Identifikationsnummer in Box b wird validiert. Jeder Wert wird mit einem Konfidenzwert und Pixel-Region-Herkunftsnachweis gemäß DIN SPEC 91491 zurückgegeben, sodass ein Sachbearbeiter eine Box vor der Einreichung mit dem Quell-W-2 abgleichen kann.

Beispielextraktion

Ein gescanntes IRS-Formular W-2 mit zwei Bundesstaatszeilen

{
  "tax_year": 2025,
  "employee_name": "Sarah Mitchell",
  "employee_ssn_last4": "1042",
  "employer_name": "Northgate Logistics Inc.",
  "employer_ein": "12-3456789",
  "box_1_wages": 78400,
  "box_2_federal_withholding": 11260,
  "box_3_ss_wages": 78400,
  "box_4_ss_tax": 4860.8,
  "box_5_medicare_wages": 78400,
  "box_6_medicare_tax": 1136.8,
  "box_12": [
    {
      "code": "D",
      "amount": 6000
    },
    {
      "code": "DD",
      "amount": 14200
    }
  ],
  "state_lines": [
    {
      "state": "CA",
      "box_16_wages": 78400,
      "box_17_tax": 4120
    }
  ]
}

Häufig gestellte Fragen

Liest es den W-2 anhand der Box-Nummer?

Ja. Jeder Wert wird an seine nummerierte Box gebunden, nicht an seine Pixelposition. Das sorgt dafür, dass Box-1-Lohn und Box-2-Quellensteuer bei einem schiefen oder gedrehten Scan korrekt bleiben, während ein positionsbasierter Extraktor sie vertauschen würde.

Wie werden Box-12-Codes erfasst?

Box 12 wird als Array von Code-Betrag-Paaren zurückgegeben, sodass Code D für eine 401(k)-Beitragszahlung und Code DD für arbeitgeberfinanzierte Krankenversicherung jeweils ihren eigenen Betrag behalten, statt zu einer einzigen Zahl zusammenzufallen.

Was ist mit Mitarbeitern, die in mehr als einem Bundesstaat tätig waren?

Jeder Satz aus Box 15 bis 17 wird als separater Bundesstaat-Datensatz erfasst, sodass ein Mitarbeiter, der in zwei Bundesstaaten gearbeitet hat, zwei Zeilen für Lohn und Steuer erhält statt einer zusammengeführten Summe.

Autorenhinweis

Geprüft von Talonic engineering, schema review · zuletzt geprüft am 2026-06-13