Introduction
This guide explains how EHS teams use Parakeet to assemble OSHA 300 Logs and 300A Summaries from incident data already captured in the platform. It focuses on accurate scoping (year and establishment), data validation, totals calculation, and export. For regulatory use, always review your final forms against current OSHA recordkeeping instructions and your company policies.
Prerequisites
-
EHS incidents are tracked in Parakeetâs EHS module with consistent fields (date, location, injury/illness type, outcome, days away, days restricted/transfer). See the EHS Control Center for incident capture and analytics.
-
Establishment profile details (legal name, address) exist in your Parakeet org/workspace metadata. If you manage multiple sites, ensure each site is uniquely identified.
-
Workforce and hours-worked data for the reporting year are available. Parakeet can centralize these via HR/payroll integrations like ADP, Workday, and BambooHR.
-
Optional: connect Google Docs if you want Parakeet to auto-generate a formatted narrative report alongside CSV exports.
Step-by-step: Generate OSHA 300/300A
1) Scope the period and establishment
-
In your EHS workspace, filter incidents to the target calendar year and the single establishment/site you are summarizing. Save this view for reuse.
-
Confirm the establishment profile (name, address) and workforce metrics (average number of employees, total hours worked) for the same year.
2) Validate incident-level fields
-
For each recordable incident in the filtered view, verify presence of: case identifier, employee name, job title, incident date, location, short description, outcome classification (death; days away; job transfer/restriction; other recordable), days away from work, days of job transfer/restriction, and injury/illness category.
-
Use bulk-edit and data quality flags in your EHS workflow to correct missing or inconsistent values.
3) Calculate 300A totals with Rosella (optional)
-
In your workspace, open Rosella and reference your saved incident view.
-
Example prompts:
-
âFrom the âRecordable Incidentsâ2025âPlant Aâ view, total counts for: fatalities; cases with days away; cases with job transfer/restriction; other recordable cases; and injury/illness categories. Return a one-row table for 300A.â
-
âSummarize annual average employees and total hours worked from HR/payroll integrations for Plant A, 2025.â
-
Attach Rosellaâs output to your EHS record set for audit trail.
4) Export the OSHA 300 Log (CSV)
- From the filtered incidents view, export to CSV. Ensure the column names match the field map below (you can rename columns during export or in your spreadsheet). Keep each establishment and year in separate files for clean lineage.
5) Assemble the OSHA 300A Summary
- Create a one-row CSV (or a Parakeet â Google Docs report) that includes establishment info, workforce metrics, and totals calculated in step 3. Use the field map below to align naming.
6) Review, attest, and distribute
-
Cross-check that 300 totals reconcile to 300A category totals and that establishment and year are consistent.
-
Store the signed copy (e.g., Doc or PDF) back in Parakeet for audit readiness; share internally via your collaboration tools (e.g., Slack) and schedule reminders for next yearâs cycle with Google Calendar.
CSV field map (concise)
Use this single schema to standardize exports. Rows labeled â300â apply to the incident log; rows labeled â300Aâ apply to the annual summary. Parakeet source indicates where the value typically lives.
| Form | Field name | Description | Parakeet source | Required | Type |
|---|---|---|---|---|---|
| 300 | case_id | Unique case identifier for the incident | EHS Incident ID | Yes | string |
| 300 | employee_name | Employeeâs name for the case (use privacy rules per company policy) | EHS Incident | Yes | string |
| 300 | job_title | Employeeâs job title | EHS Incident | Yes | string |
| 300 | incident_date | Date of injury or onset of illness (YYYY-MM-DD) | EHS Incident | Yes | date |
| 300 | location | Where the event occurred (dept/area) | EHS Incident | Yes | string |
| 300 | description | Brief description of injury/illness and object/substance | EHS Incident | Yes | string |
| 300 | outcome_class | One of: death; days_away; job_transfer_restriction; other_recordable | EHS Incident | Yes | enum |
| 300 | days_away | Number of days away from work | EHS Incident | Cond. | integer |
| 300 | days_restricted_transfer | Number of days of job transfer or restriction | EHS Incident | Cond. | integer |
| 300 | injury_illness_type | One of: injury; skin_disorder; respiratory_condition; poisoning; hearing_loss; other_illness | EHS Incident | Yes | enum |
| 300 | establishment_id | Identifier for the site/establishment | Site Metadata | Yes | string |
| 300A | establishment_name | Legal name of establishment | Site Metadata | Yes | string |
| 300A | establishment_address | Street, city, state, ZIP | Site Metadata | Yes | string |
| 300A | industry_description | Industry or product/service description | Org/Site Metadata | Yes | string |
| 300A | naics_code | NAICS code (if tracked) | Org/Site Metadata | Optional | string |
| 300A | annual_avg_employees | Average number of employees for the year | HR/Payroll Integration | Yes | number |
| 300A | total_hours_worked | Total hours worked by all employees in the year | HR/Payroll Integration | Yes | number |
| 300A | total_fatalities | Count of fatalities | Rosella calc or EHS rollup | Yes | integer |
| 300A | total_days_away_cases | Count of cases with days away from work | Rosella calc or EHS rollup | Yes | integer |
| 300A | total_job_transfer_restriction_cases | Count of cases with job transfer or restriction | Rosella calc or EHS rollup | Yes | integer |
| 300A | total_other_recordable | Count of other recordable cases | Rosella calc or EHS rollup | Yes | integer |
| 300A | total_injury | Injury cases | Rosella calc or EHS rollup | Yes | integer |
| 300A | total_skin_disorder | Skin disorder cases | Rosella calc or EHS rollup | Yes | integer |
| 300A | total_respiratory_condition | Respiratory condition cases | Rosella calc or EHS rollup | Yes | integer |
| 300A | total_poisoning | Poisoning cases | Rosella calc or EHS rollup | Yes | integer |
| 300A | total_hearing_loss | Hearing loss cases | Rosella calc or EHS rollup | Yes | integer |
| 300A | total_other_illness | All other illness cases | Rosella calc or EHS rollup | Yes | integer |
Notes
-
âCond.â = required when the outcome_class implies a value (e.g., days_away when outcome_class=days_away).
-
Your exported CSV may include additional audit columns (timestamps, record owners); keep them for lineage but exclude from regulator-facing uploads if not needed.
Suggested screenshots (for your internal playbook)
-
EHS incidents view filtered by Year and Establishment (saved view).
-
Establishment profile panel showing legal name and address.
-
HR/payroll integration card with âhours workedâ and âaverage employeesâ metrics.
-
Rosella chat with one-row 300A totals.
-
CSV export dialog showing selected field names matching the field map.
Quality checks before finalization
-
One establishment per 300/300A package; do not mix sites in a single summary.
-
Date range is January 1âDecember 31 of the reporting year; spot-check earliest and latest incidents.
-
Totals reconcile: sum of outcome_class categories across 300 equals 300A category totals.
-
Workforce metrics (average employees, total hours) reflect the same establishment and year.
-
Store the signed copy and the source CSV in Parakeet for audit readiness. Use Features to automate reminders and evidence trails.
Where this fits in Parakeet
-
Capture and manage incidents: EHS Control Center.
-
Automate reporting and documentation: Google Docs integration.
-
Pull workforce metrics automatically: ADP, Workday, BambooHR.
-
Research, summarize, and generate audit-ready narratives: Rosella AI Agent.
FAQ
-
Can Parakeet separate logs by site? Yesâfilter and export per establishment and year, then store each package in its site folder for audit traceability. See EHS Control Center.
-
How do we ensure workforce numbers are accurate? Connect HR/payroll systems so âaverage employeesâ and âhours workedâ stay in sync with operational changes. See integrations.
-
Can we generate a formatted narrative report? Yesâuse the Google Docs integration and attach Rosellaâs summaries for context.
Governance and audit trail
Maintain a versioned package per year and establishment containing: (1) incident CSV (300), (2) summary CSV or Doc (300A), (3) Rosella calculation transcript, (4) establishment profile snapshot, and (5) approvals record. This aligns with Parakeetâs unified risk ecosystem and continuous compliance approach, enabling rapid retrieval during audits. See Solutions for broader orchestration options.