W-2 PDFからすべての項目を抽出 — 連邦・州の各ボックスを別々の列に解決
W-2では、同じフォーム行にラベル文字と数値が混在し、連邦セクションと州セクションに同じ「Box 1」ラベルが異なる金額で存在します。テンプレートベースのOCRではこれらが1列に混同されますが、本AIはセクションの文脈を理解し、「連邦賃金 Box 1」と「州賃金 Box 16」を区別して、1枚あたり5〜10秒で抽出します。
Enterprise-grade security · TLS 1.3 encrypted
W-2フォームから抽出できる項目
必要な列名を入力するだけ — AIは各W-2の値を、ボックス番号だけでなく意味と所属セクションを理解して見つけ出します。同じ列定義は、ADP、Paychex、Gusto、QuickBooks Payroll、スキャンした紙のコピーなど、あらゆるW-2で機能します。
雇用主・従業員情報
連邦賃金・税金(ボックス1~6)
州・地方賃金 + ボックス12コード
これは網羅的なリストではありません — W-2に含まれる任意のフィールド名を入力してください。AIがドキュメントを読み取り、指定された項目を見つけ出します。
W-2の見た目は統一されているのに、ボックス単位の抽出が難しい理由
すべてのW-2はIRSが定めた同じレイアウトに従っています。上部に雇用者ブロック、その下に従業員ブロック、連邦賃金・社会保障・メディケアの番号付きボックス、下部に州に関するセクションがあります。この書式は雇用者間で一貫しています。課題はレイアウトの違いではなく、同じ視覚パターンが同一フォーム内の異なる2つのセクションに現れ、異なる意味と異なる金額を示すことです。
問題点
W-2の各ボックスには、小さなラベル文字(a、b、c…)、説明テキスト、数値が1行にまとめて印刷されています。例えば、Box 1には「1 Wages, tips, other compensation」に続いて金額が記載され、Box 2には「2 Federal income tax withheld」と表示されます。スキャンしたW-2を従来のOCRエンジンで読み取ると、「1 Wages tips other compensation 75231.00 2 Federal income tax withheld 11348.75」のようにフラットなテキストとして処理されます。ラベル、ボックス番号、金額の関連性が失われ、後続のツールは各ボックスの値の終わりと次のラベルの始まりを推測するしかありません。これが、汎用のPDF変換ツールでスキャンしたW-2をExcelにインポートすると列がずれる理由です。変換ツールは「1」と「$75,231.00」のペアが1つのデータであることを認識できないのです。
これが抽出の最大の落とし穴です。W-2には、フォーム中央の連邦賃金セクション(Box 1~14)と下部の州賃金セクション(Box 15~20)があります。どちらのセクションも、金額ボックスにラベルが付随しており、構造は同一です。つまり、小さなボックス内の文字、ラベル、金額の順に並んでいます。ある州に住み別の州で働く従業員の場合、Box 1の連邦賃金が$75,000、Box 16の勤務州の州賃金が$28,000となることがあります。「wages」というテキストパターンやボックス番号「1」のみに依存するテンプレートベースのOCRツールは、どのセクションを読んでいるのか区別できず、最初に見つけた「wages」の値を無差別に抽出します。連邦の数値を取得して「州」とラベル付けしたり、その逆をしたりすると、エラー表示もなく誤った税務申告につながります。税理士はr/taxprosで この問題を正確に指摘しています。W-2に連邦セクションと州セクションの両方に値が含まれている場合、抽出ツールが「所得の一部を見逃したり、異なる所得額を表示したりする」という問題です。
年間に2つの州で働いた従業員は、下部に州ごとの賃金セクションが2つ重なったW-2を受け取ります。各セクションは同じボックス番号(15、16、17)を使用しますが、州ID、賃金合計、源泉徴収額が異なります。1つの州セクションを処理する座標ベースの抽出テンプレートでは、2つ目を完全に見逃します。ボックス番号だけで照合するツールはBox 16を2回抽出し、どちらの値がどの州に属するか判別できません。
カスタム列抽出で解決する方法
カスタム列抽出 — ImageToTable.aiの中核機能 — は、W-2を一次元の文字列として扱いません。人間の税理士と同じように、空間的なレイアウトを理解して帳票を読み取ります。小さな枠内の数字表記、その隣の説明ラベル、さらにその隣の数値は、一つの「ボックス-値」ペアとしてまとめて読み取られます。「Box 1 Wages」という列を定義すると、AIは「1」のボックスマーカーを見つけ、その行を横にたどって隣のドル金額を読み取り、そのペアを1つのデータセルとして出力します。「Box 2 Federal Tax」という列には、次の行にある「2」のマーカーとペアになった値が割り当てられます。Box 1やBox 3の値ではありません。各ボックスは、OCRテキストの流れの中での数値境界を正規表現で推測するのではなく、帳票上の空間的な位置によって独立して識別されます。
AIは、連邦賃金セクションが帳票の上部中央にあり、州賃金セクションはその下に水平な境界線で区切られて配置されていることを理解します。「Box 1 Wages」(連邦セクション用)と「Box 16 State Wages」(州セクション用)のように別々の列を定義すると、AIは各値を帳票の該当セクション内で見つけます。最初に見つかった「賃金」の値や、座標アンカーに最も近い値を返すわけではありません。連邦セクションを読み取ってボックス「1」の横の金額を探し、州セクションを別途読み取ってボックス「16」の横の金額を探します。2つの値は、出力Excelの異なる2つの列に格納されます。混同や上書きは発生しません。このセクションコンテキストによる読み取りにより、$75,000の連邦賃金が下流の税務申告で誤って州賃金として報告されるのを防ぎます。
カリフォルニア州とオレゴン州のセクションがあるW-2の場合、「State 1 ID」「State 1 Wages (Box 16)」「State 1 Tax (Box 17)」「State 2 ID」「State 2 Wages (Box 16)」「State 2 Tax (Box 17)」のような列を定義します。AIは各州セクションを独立して読み取り、正しいState ID(Box 15の2文字略称)を対応する賃金と税の値に関連付けます。各州のデータは正しい列グループに入力されます。カリフォルニア州の賃金はState 1列に、オレゴン州の賃金はState 2列に、抽出後の手動での並べ替えは不要です。地方税ボックス(18-20)が存在する場合も、同じアプローチが適用されます。
W-2 PDFの山から1枚の照合スプレッドシートへ:仕組み
複数クライアントの給与照合、年末調整、W-3提出、従業員オンボーディングのデータ入力でW-2を処理する場合、アップロードから検証済み出力までのワークフローは次のとおりです。連邦・州の判別機能が組み込まれています。
W-2 PDFをアップロード — 1名分でも50名分でも、デジタルでもスキャンでも
ADP、Paychex、Gusto、QuickBooks Payroll、Paylocityなどの給与システムから出力されたW-2 PDF、または従業員から受け取った紙のW-2をスキャンしたものをドロップするだけ。対応形式はPDF、JPG、PNG、WebP。W-3提出前に全従業員分のW-2を処理する場合は、すべてのファイルを一度にアップロードしてください。バッチ処理で1ジョブ内の全ファイルを処理し、各従業員のフォームが統合出力の1行になります。リモート勤務の従業員からW-2を収集するには、コレクションリンクを生成 — 共有可能なURLで、各従業員が短い確認コードを入力するだけでW-2 PDFを直接処理キューにアップロードでき、相手側の登録やログインは不要です。
必要な列名を入力 — AIが連邦値と州値を自動で区別
必要なフィールドを入力:「従業員名」「従業員SSN」「雇用主名」「雇用主EIN」「Box 1 賃金」「Box 2 連邦税」「Box 3 社会保障賃金」「Box 4 社会保障税」「Box 5 メディケア賃金」「Box 6 メディケア税」「Box 15 州ID」「Box 16 州賃金」「Box 17 州税」。AIが各W-2のレイアウトを読み取り、連邦セクションのBox 1の値を「Box 1 賃金」列に、州セクションのBox 16の値を「Box 16 州賃金」列に返します — 混同することはありません。複数州のW-2の場合は、2つ目の州列グループを追加:「州2 ID」「州2 賃金(Box 16)」「州2 税(Box 17)」。「計算列」を追加して、「FICAチェック(Box 4 + Box 6)」で社会保障とメディケアの源泉徴収が期待通りの率か確認したり、「賃金チェック(Box 3 - Box 5)」で社会保障賃金とメディケア賃金の差を検出したりできます。毎年の確定申告シーズンの処理のために、ログイン後に列設定をテンプレートとして保存できます。
統合Excelをダウンロード — 各従業員が1行、各ボックス値が正しい列に
各W-2が出力スプレッドシートの1行になります。データはリクエスト通りに整理:従業員名が1列、雇用主EINが別の列、Box 1 賃金とBox 2 連邦税が隣り合わせ、社会保障とメディケアのボックスがグループ化、州レベルの値は独自の列グループに。80名分の従業員W-2をバッチ処理した場合、80行(従業員1名につき1行)で、リクエストしたすべてのフィールドが整列します。ファイルはXLSX、CSV、JSONでエクスポート可能で、QuickBooks、Drake Tax、UltraTax、ProSeriesなどの税務申告ソフトウェアへのインポートや、給与システムの集計合計とのW-3照合にすぐに使用できます。
最適な使用シーンと結果確認が必要なケース
最適な使用シーン
標準IRS形式のW-2(給与計算会社発行)。 ADP、Paychex、Gusto、QuickBooks Payroll、PaylocityなどのデジタルPDFから高精度に抽出可能。IRSが定めるW-2形式は給与計算システムに関わらず同一で、フォームレイアウトが固定されているため、プロバイダーごとにテンプレートを用意しなくても、列名の抽出が同じように機能します。
単一州および複数州のW-2。 州セクションが1つのW-2も、Box 15~17が州ごとに繰り返される3州対応W-2も、同様に正確に抽出できます。AIが各州セクションを個別に読み取り、各州IDとその賃金・税額を紐付けます。地方税ボックス(18~20)がある場合も対応します。
W-2/W-3作成のための従業員一括処理。 全従業員のW-2を一度にアップロード。各従業員のフォームが出力Excelの1行になり、W-3照合、税務申告ソフトへのインポート、HRISへの従業員データ移行にすぐ使えます。従業員自身にアップロードしてもらう場合は、コレクションリンクを送信することも可能です。
注意が必要なケース
修正W-2c(訂正前・訂正後の列が並んだ形式) 修正W-2cは標準のW-2とは異なるレイアウトで、各ボックスに「列A(以前の報告額)」と「列B(訂正額)」が表示されます。AIは両方の値を抽出しますが、列名を明示的に指定しない限り、自動的に「訂正前」「訂正後」とラベル付けはしません。提出前に、どの列の値が出力されたかを必ず確認してください。
従業員控えのSSNが一部マスクされているケース 一部の給与計算サービスでは、従業員発行の控えでSSNの最初の5桁を伏せ字にしています(XXX-XX-1234)。抽出では表示されている数字のみ取得します。申告や本人確認で完全なSSNが必要な場合は、雇用主控えなど別の情報源から入手してください。本ツールはマスクされた数字を復元・推測しません。
極端に傾いた、または低解像度でスキャンされたW-2 フラットベッドスキャナで200dpi以上でスキャンした紙のW-2は安定して抽出できます。斜めから撮影した写真、ボックス部分に影が入った暗い場所でのスマホ写真、コピーを重ねた書類は、特にボックス番号の「3」と「8」や「5」と「6」の判別が難しくなり、精度が低下する可能性があります。可能な限り200dpi以上でスキャンし、スマホで撮影する場合は、フォームの真上から均一な照明で撮影してください。
よくある質問
連邦のBox 1と州のBox 16は、同じ数字とアルファベットのパターンで表示されていますが、AIはどのように区別するのですか?
これはW-2フォームにおける抽出の核心的な課題です。標準的なW-2には、連邦賃金欄(Box 1~14)と州賃金欄(Box 15~20)がページの異なる2つの領域に印刷されています。どちらの欄も、ボックスラベルとそれに続く金額で構成され、視覚的なパターン(小さな数字、ラベル、金額)は同一です。AIはボックス番号だけで抽出するのではなく、フォームの二次元構造を読み取ります。連邦欄はフォームの上部中央、州欄はその下にあることを認識しています。列名として「Box 1 Wages」と入力すると、AIは連邦欄を読み、Box 1の横にある金額を探します。「Box 16 State Wages」と入力すると、州欄を読み、Box 16の横にある金額を探します。これら2つの値は全く異なる数字である可能性があり、それぞれ異なる列に出力されます。「wages」という文字列を探したり、ボックスの座標でマッチングするテンプレートベースのOCRツールではこの区別ができず、しばしば2つの値を混同します。
同じW-2に複数のコードがある場合、すべてのBox 12の入力項目を抽出できますか?
はい。W-2には最大4つのBox 12入力項目(a、b、c、dと表示)を含めることができ、それぞれが1~2文字のコードと金額で同じ行に構成されています。「Box 12a Code」「Box 12a Amount」「Box 12b Code」「Box 12b Amount」などの列を定義すると、AIは各コード文字とそれに対応する金額を1つの単位として読み取り、両方を正しい出力列に振り分けます。これは一般的なBox 12コードすべてで機能します。D(401(k)選択的繰延)、E(403(b)選択的繰延)、DD(雇用主負担の健康保険料)、およびAA(指定ロス拠出)やBB(指定ロス403(b)拠出)などのあまり一般的でないコードにも対応します。W-2にBox 12の入力項目が2つしかない場合、その従業員の出力行では12cと12dの列は空欄となり、無関係なデータが取り込まれることはありません。
手書きまたは一部手書きのW-2フォームにも対応していますか?
AIはW-2フォーム上の手書き数字を読み取りますが、精度は手書きの明瞭さに依存します。ペンで明確に印刷されたブロック体の数字は比較的正確に抽出できます。Box 1に「$42,500」と明確に書かれていれば、$42,500として読み取られます。小さく密集した手書き文字、筆記体の数字、または隣接するボックス欄にはみ出した数字は、精度が低下する可能性があります。手書きのW-2の場合は、Box 1 Wages、Box 2 Federal Tax、Box 3 Social Security Wages、Box 16 State Wagesを元のフォームと照合してください。これらは税務申告において最も影響の大きい項目です。フォームのグリッド線は、AIが手書きの値がどのボックスに属するかを区別するのに役立つため、白紙に手書きされたメモよりも、きれいに記入されたW-2フォームの方が信頼性高く抽出できます。
50名以上の従業員のW-2を一括処理し、出力で各従業員を個別の行として取得できますか?
はい — これがほとんどのユーザーがW-2を大規模に処理する方法です。従業員ごとに1つのW-2ファイル(例:50名の従業員に50のPDF)をアップロードするか、全従業員のW-2を1つに連結した複数ページのPDFをアップロードしてください。列を一度定義するだけで — 従業員名、従業員SSN、雇用主EIN、ボックス1賃金、ボックス2連邦税、ボックス3社会保障賃金、ボックス4社会保障税、ボックス5メディケア賃金、ボックス6メディケア税、ボックス16州賃金、ボックス17州税 — AIが各従業員のフォームを個別に抽出します。出力は1つの統合Excelファイルで、従業員ごとに1行、すべてのフィールドが整列されます。複数州のW-2を持つ従業員の場合、その行には定義した追加の州の列が含まれます。統合されたスプレッドシートはW-3調整にすぐに使用できます:ボックス1賃金列を合計して給与システムの合計と比較し、ボックス2連邦税列を合計して941預金と比較し、個々の従業員に異常値がないかスポットチェックします。
機密性の高いW-2データ — 社会保障番号、雇用主EIN — は処理中に安全ですか?
はい。すべてのW-2ファイルのアップロードとデータ転送はTLS 1.3暗号化接続を介して行われます。ファイルは隔離された環境で処理され、変換完了後にサーバーから自動的に削除されます。お客様の文書を保持したり、抽出したデータにアクセスしたり、アップロードされたコンテンツをAIモデルのトレーニングに使用したりすることはありません。このツールはお客様のデータを処理のために第三者サービスに送信することはありません — すべての抽出は当社のインフラストラクチャ内で行われます。数百のクライアントW-2を処理する会計事務所の場合、各クライアントのデータは処理ジョブごとに分離され、完了時に消去されます。組織が追加のコンプライアンス文書を必要とする場合は、データ処理契約についてサポートチームにお問い合わせください。