Logmend / Reference
ITA 300A CSV columns
The Form 300A file has 28 columns, one row per establishment. It carries the establishment details and the Form 300A totals.
Have the log open? Drop it in and get both ITA files with the errors repaired.
Open the converter| # | Header name | Meaning | Format | Length | Required | Rule | What the converter does |
|---|---|---|---|---|---|---|---|
| 1 | establishment_name | Establishment name | Character | 100 | Yes | Each establishment must have a unique name. | Trims stray spaces. |
| 2 | ein | Employer Identification Number (EIN) | Character | 9 | Yes | Nine digits, no dashes. | Removes the dash from 12-3456789. Restores a leading zero Excel dropped. |
| 3 | company_name | Company name | Character | 100 | No | The company that owns the establishment. | Trims stray spaces. |
| 4 | street_address | Street address | Character | 100 | Yes | Should not be a PO Box. | Flags PO Box addresses. |
| 5 | city | City | Character | 100 | Yes | Trims stray spaces. | |
| 6 | state | State | Character | 2 | Yes | Two-character postal code of the U.S. state or territory. | Turns a full state name into its postal code. |
| 7 | zip | ZIP code | Text | 9 | Yes | Five or nine digits. | Removes the dash from ZIP+4. Restores a leading zero Excel dropped. |
| 8 | naics_code | NAICS code | Integer | 6 | Yes | Six digits. A 2012, 2017 or 2022 NAICS code. | Checks the length only. Cannot confirm the code exists. |
| 9 | industry_description | Industry description | Character | 300 | No | Optional, in addition to the NAICS code. | |
| 10 | size | Size | Integer | 2 | Yes | 1 for fewer than 20 employees, 21 for 20-99, 22 for 100-249, 3 for 250 or more. Based on the maximum number of employees at any point in the year. | You pick the range; the code is written for you. |
| 11 | establishment_type | Establishment type | Integer | 1 | No | 1 not a government entity, 2 State Government entity, 3 Local Government entity. | |
| 12 | year_filing_for | Year filing for | Integer | 4 | Yes | Four digits. | Filled from the year you pick. |
| 13 | annual_average_employees | Annual average number of employees | Integer | 10 | Yes | Must be greater than 0. No decimals. Should be under 25,000. | Rounds a decimal up to the next whole number, as the Form 300A worksheet says. Removes commas. |
| 14 | total_hours_worked | Total hours worked by all employees | Integer | 10 | Yes | Must be greater than 0. No decimals. Hours divided by employees must be under 8760 and should be over 500. | Rounds a decimal to the nearest whole hour. Removes commas. |
| 15 | no_injuries_illnesses | Had injuries or illnesses | Integer | 1 | Yes | 1 if the establishment had recordable injuries or illnesses, 2 if it did not. | Set from the case count. |
| 16 | total_deaths | Total deaths (300A field G) | Integer | 10 | Yes | Form 300A field G. | Counted from your cases. |
| 17 | total_dafw_cases | Cases with days away from work (300A field H) | Integer | 10 | Yes | Form 300A field H. | Counted from your cases. |
| 18 | total_djtr_cases | Cases with job transfer or restriction (300A field I) | Integer | 10 | Yes | Form 300A field I. | Counted from your cases. |
| 19 | total_other_cases | Other recordable cases (300A field J) | Integer | 10 | Yes | Form 300A field J. | Counted from your cases. |
| 20 | total_dafw_days | Days away from work (300A field K) | Integer | 10 | Yes | Form 300A field K. | Summed from your cases. |
| 21 | total_djtr_days | Days of job transfer or restriction (300A field L) | Integer | 10 | Yes | Form 300A field L. | Summed from your cases. |
| 22 | total_injuries | Injuries (300A field M(1)) | Integer | 10 | Yes | Form 300A field M(1). | Counted from your cases. |
| 23 | total_skin_disorders | Skin disorders (300A field M(2)) | Integer | 10 | Yes | Form 300A field M(2). | Counted from your cases. |
| 24 | total_respiratory_conditions | Respiratory conditions (300A field M(3)) | Integer | 10 | Yes | Form 300A field M(3). | Counted from your cases. |
| 25 | total_poisonings | Poisonings (300A field M(4)) | Integer | 10 | Yes | Form 300A field M(4). | Counted from your cases. |
| 26 | total_hearing_loss | Hearing loss (300A field M(5)) | Integer | 10 | Yes | Form 300A field M(5). | Counted from your cases. |
| 27 | total_other_illnesses | All other illnesses (300A field M(6)) | Integer | 10 | Yes | Form 300A field M(6). | Counted from your cases. |
| 28 | change_reason | Change reason | Character | 100 | No | Why a summary was changed, if applicable. |
The data dictionary PDF names the second column ein_number. OSHA's template and sample files use ein. The converter writes the header from the template file.
Checks OSHA runs on the totals
- The sum of M1 to M6 must equal the sum of G to J.
- Annual average employees should be greater than the total number of cases (G to J).
- If there are days-away cases (H), there must be days away (K), and the other way round.
- Days away (K) must be equal to or greater than days-away cases (H).
- If there are transfer or restriction cases (I), there must be transfer or restriction days (L).
- If there are transfer or restriction days (L), there must be cases in H or I.
OSHA recommends keeping a file to 1000 records or fewer to cut processing time.
Short answers
Can the 300A CSV contain decimals?
No. OSHA says the system rejects the file if any number field has a decimal or a comma. Enter whole numbers only.
How many establishments can one 300A CSV hold?
OSHA sets no limit but recommends 1000 records or fewer per file.
Sources
- ITA CSV Documentation: Establishment and Form 300A data dictionary
- OSHA Form 300A CSV template
- OSHA Form 300A CSV sample
- OSHA ITA Frequently Asked Questions
Read on 2026-11-10. OSHA can change these documents; the link is the authority. Logmend is an independent information tool. It is not affiliated with or endorsed by OSHA or the U.S. Department of Labor, and it is not tax, legal or professional advice.