1. Your EFW2 file
Usually a .txt, .dat or .w2 file exported from payroll or tax software: 512-character lines starting RA, RE, RW, RO, RS, RT, RU or RF.
Choose a file or paste the text, then click Validate.
Result
Employers
| Line | Tax year | EIN | Employees | Box 1 wages | Box 2 federal tax | Box 3 SS wages | Box 5 Medicare wages |
|---|
Rebuild the totals
The model, and what it leaves out
- Records are 512 characters. The file is RA (submitter), then for each employer an RE, its RW employee wage lines (with optional RO and RS), and an RT total, then an optional RU and a final RF.
- RT totals must equal the count and the sums of Boxes 1 to 7 over that employer's RW lines; RF must equal the count of all RW lines.
- SSNs are rejected for area 000, 666 or 900-999, group 00, serial 0000, one repeated digit, and the famous sample numbers. This says nothing about whether a number and name match SSA's records.
- Wage base and rates: Box 3 plus Box 7 may not exceed the Social Security wage base for the tax year ($184,500 for 2026, $176,100 for 2025, $168,600 for 2024 and so on back to 2019), Box 4 should be 6.2% of that, and Box 6 should be 1.45% of Box 5 plus 0.9% above $200,000. Rate differences are warnings, because rounding and special cases exist.
- Rebuild rewrites RT and RF only. It never edits an RW, an SSN, a name or an amount.
- Not checked: SSN-to-name matching, state layouts, the contents of RO, RS and RU records beyond their order, optional W-2 boxes (Boxes 8 to 14 and the Box 12 codes), your submitter credentials, and anything SSA changes in the specification each year.
Common questions
How do I check a W-2 EFW2 file before uploading it to SSA?
Paste the file or drop it onto this page. It checks every 512-character record: the RA, RE, RW, RT and RF order, the tax year and EINs, each employee's SSN and eleven-digit money boxes, the RT employer totals against the RW lines, and the RF count, then lists each problem with its line number.
Why did Business Services Online reject my W-2 wage file?
The usual causes are a record that is not exactly 512 characters (trailing spaces trimmed by an editor), RT totals that no longer match the wage lines after a hand edit, an RF count that disagrees with the number of RW records, an invalid SSN such as 000 or 9xx in the area number, or lowercase and non-ASCII characters. This tool tests each of them.
What are the RA, RE, RW, RT and RF records?
RA identifies the submitter and starts the file. RE opens one employer and carries the tax year and EIN. Each RW is one employee's W-2 wage line. RT closes an employer with the employee count and the sums of each money box. RF ends the file with the total employee count. RO, RS and RU are optional records for other withholding, state data and the RO totals.
Can this tool fix my EFW2 file?
It can rebuild the RT employer totals and the RF count from the RW lines, which is what is stale after a hand edit. It never edits an RW line: a wrong SSN, name or amount is a payroll decision, so it is reported and left to you.
Is it safe to put a file full of SSNs into a web page?
The page runs in your browser, the file is read locally and nothing is uploaded; a test in the code asserts there are no network calls. SSNs are masked to their last four digits in the report and the findings download. Your own policies still decide whether you may open wage data in a browser.
What does this not check?
Whether an SSN and name match SSA's records (only SSA's own verification service can tell you), state record layouts, the RO, RS and RU records beyond their order, every optional W-2 box, your submitter user ID and credentials, and anything SSA adds to the specification each year. A clean result is not a promise of acceptance.