Synthetic W-2 Wage and Tax Statement Data

Synthetic training data — no real PII, fully coherent identities

Tax2025

Generate synthetic W-2 Wage and Tax Statements with realistic employer data, wage amounts, and tax withholdings — the single most common document in U.S. income verification. Each W-2 is tied to a coherent simulated identity whose wages, withholding, and state tax are internally consistent, and Box 3 respects the 2025 Social Security wage base.

45

Fields per document

1

Page

Tax

Category

What this document is

The W-2 Wage and Tax Statement is the annual wage report every U.S. employer issues to every employee and transmits to the Social Security Administration. It is the most universally recognized tax document in the country and the highest-volume single-page form in document AI: mortgage underwriting, tax preparation, income verification, and payroll onboarding all run through it. This is the 2025 revision, with a single Box 14 'Other' field rather than the 14a/14b split introduced for 2026.

Why generate synthetically

Every W-2 in existence contains a Social Security number, a full name, a home address, and an income figure — four of the most sensitive fields a document can carry, in one place. That makes real W-2 corpora both legally hazardous and practically unobtainable, which is why W-2 extraction accuracy in production is so often worse than vendors claim: the models were tuned on a few hundred hand-collected samples. Synthetic W-2s remove the constraint entirely, and give you tail cases — the wage-base cap, no-income-tax states, retirement-plan participation — in whatever proportion you need rather than whatever proportion you happened to collect.

What makes synthetic data useful

Each W-2 belongs to a simulated person with a job, an employer, a state of residence, and a benefits profile, so the numbers agree with each other the way a real statement does. Box 3 Social Security wages cap at the 2025 wage base, and the corpus contains high earners who hit that cap while their Box 5 Medicare wages continue past it — the internal inconsistency that is actually correct and that naive validation rules flag as an error. Box 17 state tax is zero for residents of states with no income tax rather than randomly small. Box 12 codes are drawn from the realistic distribution of elective deferrals, health coverage cost, and Roth contributions instead of uniformly.

Training challenges

The W-2's difficulty is density, not size: the boxes are small, numbered rather than named in some regions, and packed so tightly that a two-pixel bounding-box error moves a value into the wrong box. Just over half the fields are legitimately blank on a typical statement — allocated tips, dependent care benefits, nonqualified plans, the second state block, the locality block — so a model must distinguish an empty box from a zero, and an extractor that hallucinates plausible values into blank boxes will pass a spot check and fail in production. Box 12 is four label-plus-amount pairs where the label is a one- or two-letter code whose meaning changes the amount's semantics entirely, and codes D and DD look nothing alike semantically but sit in identical cells. The Box 13 checkboxes are among the smallest targets in the entire form library.

Generate synthetic W-2 Wage and Tax Statement data

Start with 500 free credits. No credit card required.

Generate Now

Who uses this data

Mortgage and consumer lending platforms that verify income from uploaded wage statements, tax preparation software ingesting client documents at scale, payroll and HR onboarding systems, and fraud teams training detectors on altered or fabricated W-2s. It is the first document almost every U.S. document-AI product needs and the last one any of them can legally source in volume.

Document complexity profile

45 fields on a single rendered page: 22 currency amounts, 18 text fields, 3 checkbox targets, and dedicated SSN and EIN identifier types. 45 annotation relations, one per field. Binding logic is deliberately light — 4 conditional bindings and 5 function calls at a maximum expression depth of 2 — because the wage figures come from the simulated employment record rather than being computed on the page. The extraction difficulty is entirely geometric: the densest field-per-square-inch layout of any single-page form we publish.

Key stats from our synthetic corpus

Quantitative characteristics of the W-2 Wage and Tax Statement documents our generator produces.

MetricValueDetail
Median Box 1 wages$42,900Across 641 eligible synthetic identities the median Box 1 wage is $42,900, with a p25–p75 range of $25,749 to $71,700 and a full span of $4,000 to $315,300. The distribution is deliberately right-skewed to match real wage data rather than centered on a training-convenient mean.
Social Security wage base cap$176,100Box 3 Social Security wages top out at exactly $176,100, the 2025 wage base, while Box 5 Medicare wages continue to $316,900 for the same high earners. Documents where Box 3 and Box 5 legitimately disagree are the case that trips rule-based validators, and the corpus contains them by construction.
Retirement plan participation57%57.1% of synthetic W-2s check the Box 13 retirement plan box. Box 13's checkboxes are the smallest targets on the form, and a 57/43 split gives a detector enough of both classes to learn the difference rather than defaulting to the majority.
Box 12 code distributionD 72% / E 18% / G 10%Box 12a codes are 71% D (401(k) elective deferrals), 17% E (403(b)), and 12% G (457(b)), populated on 57.1% of statements. Box 12b is 83% DD (employer-sponsored health coverage cost) and 17% C, populated on 49.8%. Code frequency in a natural corpus follows exactly this kind of skew, and uniform sampling teaches a model the wrong prior.
Blank field rate51%23 of the 45 annotated fields render blank on a typical statement, including the entire second state and locality blocks. Blank-versus-zero discrimination is the most commonly skipped evaluation in W-2 extraction and the most common source of production errors.

How this document co-occurs with others

Rates at which identities in our corpus that produce a W-2 Wage and Tax Statement also produce other documents.

CorrelationRateDetail
Following-year revision100%The same employees receive the 2026 revision with its Box 14a/14b split. Training on the pair is the cleanest available test of whether a model learned the W-2 or memorized one year's box positions.
Issuing employer's quarterly returns100%Every synthetic W-2 is issued by an employer that also files Form 941. Box 1 wages across an employer's W-2 set aggregate against that employer's quarterly wage totals — the canonical payroll reconciliation task.
Employee's personal return100%The wages on the W-2 flow to the employee's Form 1040. Generating both for the same identity produces the single most common multi-document bundle in consumer tax processing.
Withholding election on file100%The same employees have W-4s with their employer. Pairing the withholding election with the resulting Box 2 federal tax withheld is how onboarding and payroll IDP systems validate that an election was actually applied.

All stats above are corpus-derived: they were computed on a local synthetic corpus of 1,000 generated identities produced by SymageDocs' World Simulation Engine. No real employee, employer, or payroll data was used. `make corpus-stats` regenerates the shipped corpus_stats.json for the site's analytics form set, which carries the 2026 revision of this statement rather than the 2025 one; reproduce these figures with `python -m symagedocs.corpus_analysis --corpus-size 1000 --form-id irs_w2_single_page_2025`.

Frequently asked questions

What data format do synthetic W-2 documents include?
Each generated identity produces a rendered PDF plus a structured JSON annotation file with bounding boxes, field types, and ground-truth values for all 45 fields on the single page, including the boxes that render blank. COCO, YOLO, FUNSD, and BIO/NER exports come from the same job.
Which boxes are populated and which render blank?
Boxes 1 through 6 (wages, federal tax, Social Security wages and tax, Medicare wages and tax), the employee and employer identity blocks, Box 12a and 12b, the Box 13 retirement plan checkbox, and the first state block (15, 16, 17) carry values. Allocated tips, dependent care, nonqualified plans, Box 12c and 12d, the statutory-employee and sick-pay checkboxes, Box 14, the locality block, and the second state block render blank — matching how a typical single-state employee's statement actually arrives. Every one of those blank boxes is still annotated, so you can train and score blank-versus-zero discrimination.
How does this differ from the 2026 W-2 you also publish?
The 2026 revision splits Box 14 into 14a 'Other' and 14b for Treasury Tipped Occupation Codes, adding two fields, and uses the 2026 Social Security wage base. The 2025 revision has a single Box 14. Any production pipeline will see both layouts for years, so training on only the current year guarantees a regression on last year's documents — generate both and evaluate them separately.
Can I use this data commercially?
Yes. Every SSN, name, address, employer, and wage figure is synthetic, contains no real personal data, and is licensed for commercial use including model training, benchmarking, and redistribution inside your own products. No consent, no redaction, no data processing agreement.
Can I generate a full employer's worth of W-2s?
Yes. Generating W-2s alongside Form 941 for the same simulated employer gives you a set of employee statements whose Box 1 wages aggregate against the employer's quarterly returns, which is the reconciliation both payroll auditors and fraud models actually run.

Related Tax Forms