Osha Incident Rate Calculator

OSHA Incident Rate Calculator & Guide :root { –primary-color: #004a99; –success-color: #28a745; –background-color: #f8f9fa; –text-color: #333; –border-color: #ddd; –card-background: #fff; –shadow: 0 2px 5px rgba(0,0,0,0.1); } body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; background-color: var(–background-color); color: var(–text-color); line-height: 1.6; margin: 0; padding: 0; display: flex; flex-direction: column; align-items: center; padding-top: 20px; padding-bottom: 40px; } .container { width: 100%; max-width: 960px; margin: 0 auto; padding: 0 15px; box-sizing: border-box; } header { background-color: var(–primary-color); color: white; padding: 20px 0; text-align: center; width: 100%; margin-bottom: 30px; } header h1 { margin: 0; font-size: 2.5em; font-weight: 700; } main { width: 100%; display: flex; flex-direction: column; align-items: center; } .calculator-wrapper { background-color: var(–card-background); padding: 30px; border-radius: 8px; box-shadow: var(–shadow); margin-bottom: 40px; width: 100%; box-sizing: border-box; } .calculator-wrapper h2 { text-align: center; color: var(–primary-color); margin-top: 0; margin-bottom: 25px; font-size: 2em; } .loan-calc-container { display: flex; flex-direction: column; gap: 20px; } .input-group { display: flex; flex-direction: column; gap: 8px; } .input-group label { font-weight: 600; color: var(–primary-color); } .input-group input[type="number"], .input-group select { padding: 12px 15px; border: 1px solid var(–border-color); border-radius: 5px; font-size: 1em; box-sizing: border-box; width: 100%; } .input-group input[type="number"]:focus, .input-group select:focus { outline: none; border-color: var(–primary-color); box-shadow: 0 0 0 2px rgba(0, 74, 153, 0.2); } .input-group small { font-size: 0.85em; color: #6c757d; margin-top: 5px; } .error-message { color: #dc3545; font-size: 0.9em; margin-top: 5px; display: none; /* Hidden by default */ } .button-group { display: flex; gap: 15px; margin-top: 25px; flex-wrap: wrap; } .button-group button { padding: 12px 25px; border: none; border-radius: 5px; font-size: 1em; font-weight: 600; cursor: pointer; transition: background-color 0.3s ease, transform 0.2s ease; flex-grow: 1; min-width: 150px; } .btn-calculate { background-color: var(–primary-color); color: white; } .btn-calculate:hover { background-color: #003366; transform: translateY(-2px); } .btn-reset { background-color: #6c757d; color: white; } .btn-reset:hover { background-color: #5a6268; transform: translateY(-2px); } .btn-copy { background-color: var(–success-color); color: white; } .btn-copy:hover { background-color: #218838; transform: translateY(-2px); } #results-container { margin-top: 30px; padding: 25px; background-color: var(–card-background); border-radius: 8px; box-shadow: var(–shadow); width: 100%; box-sizing: border-box; display: none; /* Hidden by default */ flex-direction: column; gap: 20px; } #results-container h3 { color: var(–primary-color); margin-top: 0; text-align: center; font-size: 1.8em; } .result-item { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 15px; border: 1px solid var(–border-color); border-radius: 5px; background-color: #f0f0f0; } .result-item.primary-result { background-color: var(–success-color); color: white; padding: 20px 15px; margin-bottom: 15px; } .result-item .label { font-size: 1.1em; font-weight: 600; margin-bottom: 5px; } .result-item .value { font-size: 2.2em; font-weight: 700; } .result-item.primary-result .value { font-size: 3em; } .result-item.primary-result .label { font-size: 1.3em; } .formula-explanation { text-align: center; font-style: italic; color: #555; margin-top: 15px; font-size: 0.95em; } .chart-container, .table-container { margin-top: 30px; padding: 25px; background-color: var(–card-background); border-radius: 8px; box-shadow: var(–shadow); width: 100%; box-sizing: border-box; } .chart-container h3, .table-container h3 { text-align: center; color: var(–primary-color); margin-top: 0; font-size: 1.8em; margin-bottom: 20px; } canvas { display: block; margin: 0 auto; max-width: 100%; height: auto !important; /* Ensure canvas scales */ } table { width: 100%; border-collapse: collapse; margin-top: 20px; overflow-x: auto; /* Make table scrollable */ display: block; /* Needed for overflow-x */ white-space: nowrap; /* Prevent wrapping */ } th, td { padding: 12px 15px; text-align: left; border: 1px solid var(–border-color); } thead { background-color: var(–primary-color); color: white; } tbody tr:nth-child(even) { background-color: #f2f2f2; } caption { font-size: 1.1em; font-weight: 600; color: var(–primary-color); margin-bottom: 15px; text-align: center; } .article-content { width: 100%; background-color: var(–card-background); padding: 30px; border-radius: 8px; box-shadow: var(–shadow); margin-top: 40px; box-sizing: border-box; } .article-content h2, .article-content h3 { color: var(–primary-color); margin-top: 30px; margin-bottom: 15px; font-size: 1.8em; } .article-content h3 { font-size: 1.5em; } .article-content p, .article-content ul, .article-content ol { margin-bottom: 20px; } .article-content ul, .article-content ol { padding-left: 25px; } .article-content li { margin-bottom: 10px; } .article-content a { color: var(–primary-color); text-decoration: none; font-weight: 600; } .article-content a:hover { text-decoration: underline; } .faq-list .question { font-weight: 700; color: var(–primary-color); margin-bottom: 5px; display: block; } .faq-list .answer { margin-left: 15px; margin-bottom: 15px; } .related-links ul { list-style: none; padding: 0; } .related-links li { margin-bottom: 15px; } .related-links a { font-weight: 600; } .related-links span { display: block; font-size: 0.9em; color: #555; margin-top: 3px; } @media (min-width: 768px) { .button-group { justify-content: center; } .button-group button { flex-grow: 0; } } @media (max-width: 767px) { header h1 { font-size: 1.8em; } .calculator-wrapper, .article-content, #results-container, .chart-container, .table-container { padding: 20px; } .button-group { flex-direction: column; align-items: stretch; } .button-group button { width: 100%; min-width: unset; } .result-item .value { font-size: 1.8em; } .result-item.primary-result .value { font-size: 2.5em; } table { font-size: 0.9em; } th, td { padding: 10px 12px; } }

OSHA Incident Rate Calculator

Calculate Your OSHA Incident Rate

The total number of work-related injuries and illnesses requiring medical attention beyond first aid.
The sum of all hours worked by all employees during the period (e.g., 100 employees * 40 hours/week * 52 weeks/year).
The total number of calendar days covered by the hours worked (typically 365 for a full year).

Your OSHA Incident Rate Results

OSHA Incident Rate (TRIR)
Incidents per 100 Employees
Incidents per 1,000,000 Hours
Total Recordable Incidents
Formula: (Total Recordable Incidents / Total Employee Hours Worked) * 200,000 (The 200,000 factor represents 100 employees working 40 hours per week for 50 weeks per year).

Incident Rate Trend (Hypothetical)

Incident Rate Benchmarks (Example)
Industry Sector NAICS Code TRIR (Rate per 100 Employees)
Manufacturing 31-33 3.5
Construction 23 5.1
Retail Trade 44-45 2.2
Healthcare and Social Assistance 62 3.8
Transportation and Warehousing 48-49 4.5

What is the OSHA Incident Rate?

The OSHA Incident Rate, often referred to as the Total Recordable Incident Rate (TRIR), is a key metric used by the Occupational Safety and Health Administration (OSHA) and businesses to measure workplace safety. It quantizes the number of work-related injuries and illnesses that result in a fatality, lost workdays, restricted work, or transfer to another job, relative to the total number of hours worked by employees. Understanding and accurately calculating your OSHA incident rate is crucial for compliance, identifying safety trends, and benchmarking your company's safety performance against industry standards.

Who should use it?

Any employer subject to OSHA recordkeeping requirements should calculate and monitor their OSHA incident rate. This includes most private sector employers and some public sector employers. It's particularly vital for companies in industries with higher inherent risks, such as manufacturing, construction, warehousing, and healthcare. Safety managers, HR professionals, operations managers, and business owners all benefit from understanding this metric to foster a safer work environment.

Common Misconceptions:

  • It only counts severe injuries: While the TRIR focuses on "recordable" incidents, this includes more than just fatalities or amputations. It encompasses any work-related injury or illness that requires medical treatment beyond first aid, results in lost workdays, or causes an employee to be unable to perform their full job duties.
  • It's a penalty: The OSHA incident rate itself is not a penalty. It's a measurement tool. However, consistently high rates can trigger OSHA inspections and scrutiny, and may impact insurance premiums and a company's reputation.
  • It's static: The rate should be calculated regularly (e.g., annually) to track trends. A single calculation doesn't provide a complete picture of safety performance over time.

OSHA Incident Rate Formula and Mathematical Explanation

The standard formula for calculating the OSHA Total Recordable Incident Rate (TRIR) is designed to provide a standardized measure of workplace injuries and illnesses per a specific number of hours worked, typically 100 full-time employees working 40 hours per week for 50 weeks per year (which equates to 200,000 hours). This normalization allows for meaningful comparisons across different company sizes and operational scales.

The formula is:

TRIR = (E / H) * 200,000

Where:

  • E = The total number of work-related injuries and illnesses that are recordable under OSHA guidelines during the period.
  • H = The total number of hours worked by all employees during the period.
  • 200,000 = A constant representing the equivalent number of hours worked by 100 full-time employees working 40 hours per week for 50 weeks per year (100 employees * 40 hours/week * 50 weeks/year = 200,000 hours).

Variable Explanations:

To calculate the TRIR accurately, you need precise data for each component:

OSHA Incident Rate Variables
Variable Meaning Unit Typical Range
E (Total Recordable Incidents) Number of work-related injuries and illnesses meeting OSHA recordkeeping criteria (fatalities, lost workdays, restricted work, medical treatment beyond first aid). Count 0 or more
H (Total Employee Hours Worked) Sum of all hours worked by all employees during the specific reporting period. This includes overtime hours but excludes paid time off (vacation, sick leave, holidays) unless employees are required to work on those days. Hours 1 or more
TRIR (OSHA Incident Rate) The calculated rate, representing the number of recordable incidents per 100 full-time employees. Rate per 100 Employees 0 or more

Intermediate Calculations:

While the primary TRIR is the standard, other useful metrics can be derived:

  • Incidents per 100 Employees: This is essentially what the TRIR represents. If your TRIR is 3.5, it means there are, on average, 3.5 recordable incidents for every 100 full-time employees.
  • Incidents per 1,000,000 Hours Worked: Sometimes, especially in industries with very long work hours or fewer employees, it's useful to see the rate scaled to a larger number of hours. The formula is: (E / H) * 1,000,000. This provides a different perspective on the frequency of incidents relative to exposure.

Practical Examples (Real-World Use Cases)

Let's illustrate the OSHA incident rate calculation with two distinct scenarios:

Example 1: A Small Manufacturing Plant

Scenario: "MetalWorks Inc." is a small manufacturing facility employing 50 people. Over the past year, they recorded 6 work-related injuries that met OSHA's recordkeeping criteria. Their employees collectively worked a total of 104,000 hours during that year.

Inputs:

  • Total Recordable Incidents (E): 6
  • Total Employee Hours Worked (H): 104,000 hours
  • Number of Days in Period: 365 (for a full year)

Calculation:

  • TRIR = (6 / 104,000) * 200,000 = 11.54
  • Incidents per 100 Employees = (6 / 104,000) * 100 = 0.0577 (This is effectively the rate per employee, not per 100, if we don't use the 200k factor)
  • Incidents per 1,000,000 Hours = (6 / 104,000) * 1,000,000 = 57,692.31

Interpretation: MetalWorks Inc. has a TRIR of 11.54. This is significantly higher than the manufacturing average (around 3.5, see table). This high rate indicates a potential safety issue that needs immediate attention. Management should investigate the root causes of these 6 incidents and implement corrective actions to reduce future risks and improve their workplace safety.

Example 2: A Large Logistics Company

Scenario: "SwiftLogistics Co." operates a large distribution center with 500 employees. Over a year, they had 15 recordable incidents. The total hours worked by all employees amounted to 1,000,000 hours.

Inputs:

  • Total Recordable Incidents (E): 15
  • Total Employee Hours Worked (H): 1,000,000 hours
  • Number of Days in Period: 365

Calculation:

  • TRIR = (15 / 1,000,000) * 200,000 = 3.0
  • Incidents per 100 Employees = (15 / 1,000,000) * 100 = 0.0015
  • Incidents per 1,000,000 Hours = (15 / 1,000,000) * 1,000,000 = 15

Interpretation: SwiftLogistics Co. has a TRIR of 3.0. This rate is very close to the average for many industries (like manufacturing or warehousing). This suggests their safety program is performing reasonably well compared to benchmarks. However, they should still analyze the nature of the 15 incidents to identify any specific areas for improvement and maintain their focus on preventing future accidents.

How to Use This OSHA Incident Rate Calculator

Our free online OSHA Incident Rate Calculator is designed for simplicity and accuracy. Follow these steps to get your safety metrics:

  1. Input Total Recordable Incidents: Enter the total number of work-related injuries and illnesses that were recorded according to OSHA guidelines during the period you are analyzing.
  2. Input Total Employee Hours Worked: Provide the sum of all hours worked by all your employees during the same period. Ensure this figure is accurate, including overtime.
  3. Input Number of Days in the Period: Specify the total number of calendar days the hours worked cover. For an annual calculation, this is typically 365.
  4. Click 'Calculate Rate': Once all fields are populated, click the button. The calculator will instantly display your primary OSHA Incident Rate (TRIR), along with key intermediate values.

How to Read Results:

  • OSHA Incident Rate (TRIR): This is the main figure, representing the number of recordable incidents per 100 full-time employees. A lower number is better.
  • Incidents per 100 Employees: This is a direct interpretation of the TRIR.
  • Incidents per 1,000,000 Hours: This provides an alternative view, useful for comparing exposure levels across different operational scales.
  • Total Recordable Incidents: This simply confirms the input value for clarity.

Decision-Making Guidance:

Compare your calculated TRIR to industry benchmarks (like those in the table above) and your own historical data. A rate significantly higher than the industry average is a red flag, signaling a need for a thorough review of your safety procedures, training programs, and hazard identification processes. A rate that is increasing over time also warrants investigation. Use these results to prioritize safety initiatives, allocate resources effectively, and demonstrate your commitment to employee well-being.

Key Factors That Affect OSHA Incident Rate Results

Several factors can influence your OSHA incident rate, making it essential to consider them when analyzing the data and implementing improvements:

  1. Industry Type and Inherent Risks: Different industries have vastly different risk profiles. Construction inherently involves more physical hazards than office-based work. Your industry classification significantly impacts expected incident rates.
  2. Effectiveness of Safety Programs: Robust safety protocols, regular training, hazard assessments, near-miss reporting, and proactive safety committees directly contribute to lower incident rates. A weak or non-existent program will likely result in higher rates.
  3. Employee Training and Awareness: Well-trained employees who understand safety procedures, recognize hazards, and feel empowered to report unsafe conditions are less likely to be involved in incidents. Lack of proper training is a major contributor to accidents.
  4. Management Commitment and Culture: A strong safety culture starts at the top. When management prioritizes safety, invests in resources, and holds everyone accountable, employees are more likely to follow suit. A lack of visible commitment can lead to complacency.
  5. Reporting Practices: The accuracy of your TRIR depends on consistent and correct recording of all incidents. Under-reporting, even unintentionally, distorts the rate. Conversely, over-reporting minor issues can inflate the rate unnecessarily.
  6. Workforce Turnover and Experience: High employee turnover can lead to a less experienced workforce, potentially increasing the risk of incidents. New employees may require more intensive safety training and supervision.
  7. Use of Personal Protective Equipment (PPE): Consistent and correct use of appropriate PPE (hard hats, safety glasses, gloves, etc.) can prevent or mitigate injuries, thereby reducing the number of recordable incidents.
  8. Environmental and Equipment Factors: Poor lighting, slippery surfaces, malfunctioning machinery, or inadequate ventilation can create hazardous conditions that increase the likelihood of accidents. Regular maintenance and environmental checks are crucial.

Frequently Asked Questions (FAQ)

What exactly constitutes a "recordable" incident for OSHA?

OSHA defines a recordable incident as any work-related fatality; any work-related injury or illness that results in days away from work, restricted work, or transfer to another job; or any work-related diagnosed medical condition that requires treatment beyond first aid. It also includes specific events like loss of consciousness or a diagnosed significant injury/illness.

How often should I calculate my OSHA incident rate?

You are required to record incidents on OSHA Forms 300, 300A, and 301 throughout the year. The OSHA 300A (Summary of Work-Related Injuries and Illnesses) must be completed and posted annually by February 1st for the previous calendar year. It's best practice to calculate your TRIR at least annually, but many companies do so quarterly or even monthly to monitor trends more closely.

What is the difference between the OSHA Incident Rate and the DART rate?

The DART (Days Away, Restricted, or Transferred) rate is a subset of the TRIR. It specifically measures incidents that result in days away from work, restricted work, or job transfer. The formula is similar but only includes incidents meeting these criteria: (DART Cases / Total Hours Worked) * 200,000.

Can my incident rate be negative?

No, the OSHA incident rate cannot be negative. The number of incidents and hours worked are always zero or positive values. A rate of zero indicates no recordable incidents occurred during the period.

What if my company operates multiple sites?

OSHA generally requires you to calculate and maintain records for each physical location separately. However, you may be able to combine data for the purpose of calculating an overall company TRIR, especially if the operations are similar and managed under a single safety program. Consult OSHA's recordkeeping guidelines for specifics.

How do I calculate total employee hours worked accurately?

Sum up all the hours actually worked by all employees during the reporting period. This includes overtime hours. Do not include paid time off like vacation, sick leave, or holidays unless employees are required to work on those days. If you use a payroll system, it can usually provide this total.

What are the consequences of not complying with OSHA recordkeeping requirements?

Failure to comply can result in significant penalties from OSHA. These penalties can include fines for failing to keep records, not reporting fatalities/severe injuries promptly, and not posting the required annual summary (OSHA 300A). Penalties can range from hundreds to thousands of dollars per violation.

Does the OSHA incident rate include commuting accidents?

Generally, injuries or illnesses occurring while commuting to or from work are considered "in-transit" exceptions and are not considered work-related for OSHA recordkeeping purposes, unless they occur on the employer's premises or during work-related travel.

Related Tools and Internal Resources

© 2023 Your Company Name. All rights reserved.
var chartInstance = null; // Global variable to hold chart instance function validateInput(id, min, max, errorMessageId, helperText) { var input = document.getElementById(id); var errorDiv = document.getElementById(errorMessageId); var value = parseFloat(input.value); errorDiv.style.display = 'none'; // Hide error by default if (isNaN(value)) { errorDiv.textContent = "Please enter a valid number."; errorDiv.style.display = 'block'; return false; } if (value max) { errorDiv.textContent = "Value cannot be greater than " + max + "."; errorDiv.style.display = 'block'; return false; } return true; } function calculateOshaRate() { var isValid = true; isValid &= validateInput('totalCases', 0, undefined, 'totalCasesError'); isValid &= validateInput('totalHours', 1, undefined, 'totalHoursError'); isValid &= validateInput('periodDays', 1, undefined, 'periodDaysError'); if (!isValid) { document.getElementById('results-container').style.display = 'none'; return; } var totalCases = parseFloat(document.getElementById('totalCases').value); var totalHours = parseFloat(document.getElementById('totalHours').value); var periodDays = parseFloat(document.getElementById('periodDays').value); // Not directly used in TRIR formula but good for context // TRIR Formula: (E / H) * 200,000 var trir = (totalCases / totalHours) * 200000; // Intermediate calculations var incidentsPer100 = (totalCases / totalHours) * 100; // Rate per 100 employees var incidentsPerMillion = (totalCases / totalHours) * 1000000; // Rate per 1M hours document.getElementById('mainResult').textContent = trir.toFixed(2); document.getElementById('incidentsPer100').textContent = incidentsPer100.toFixed(2); document.getElementById('incidentsPerMillion').textContent = incidentsPerMillion.toFixed(2); document.getElementById('inputTotalCases').textContent = totalCases.toFixed(0); document.getElementById('results-container').style.display = 'flex'; updateChart(trir); // Update the chart } function resetCalculator() { document.getElementById('totalCases').value = '10'; document.getElementById('totalHours').value = '208000'; document.getElementById('periodDays').value = '365'; // Clear errors document.getElementById('totalCasesError').textContent = "; document.getElementById('totalHoursError').textContent = "; document.getElementById('periodDaysError').textContent = "; document.getElementById('totalCasesError').style.display = 'none'; document.getElementById('totalHoursError').style.display = 'none'; document.getElementById('periodDaysError').style.display = 'none'; // Reset results display document.getElementById('mainResult').textContent = '–'; document.getElementById('incidentsPer100').textContent = '–'; document.getElementById('incidentsPerMillion').textContent = '–'; document.getElementById('inputTotalCases').textContent = '–'; document.getElementById('results-container').style.display = 'none'; // Reset chart if (chartInstance) { chartInstance.destroy(); chartInstance = null; } initializeChart(); // Re-initialize with default state } function copyResults() { var mainResult = document.getElementById('mainResult').textContent; var incidentsPer100 = document.getElementById('incidentsPer100').textContent; var incidentsPerMillion = document.getElementById('incidentsPerMillion').textContent; var inputTotalCases = document.getElementById('inputTotalCases').textContent; var totalHours = document.getElementById('totalHours').value; var totalCases = document.getElementById('totalCases').value; if (mainResult === '–') { alert("No results to copy yet. Please calculate first."); return; } var textToCopy = "— OSHA Incident Rate Results —\n\n"; textToCopy += "OSHA Incident Rate (TRIR): " + mainResult + "\n"; textToCopy += "Incidents per 100 Employees: " + incidentsPer100 + "\n"; textToCopy += "Incidents per 1,000,000 Hours: " + incidentsPerMillion + "\n"; textToCopy += "Total Recordable Incidents: " + inputTotalCases + "\n\n"; textToCopy += "— Key Assumptions —\n"; textToCopy += "Total Recordable Incidents Input: " + totalCases + "\n"; textToCopy += "Total Employee Hours Worked Input: " + totalHours + "\n"; navigator.clipboard.writeText(textToCopy).then(function() { alert("Results copied to clipboard!"); }).catch(function(err) { console.error('Failed to copy text: ', err); alert("Failed to copy results. Please copy manually."); }); } function initializeChart() { var ctx = document.getElementById('incidentRateChart').getContext('2d'); chartInstance = new Chart(ctx, { type: 'line', data: { labels: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], datasets: [{ label: 'Monthly TRIR', data: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // Default to zeros borderColor: 'var(–primary-color)', backgroundColor: 'rgba(0, 74, 153, 0.1)', fill: true, tension: 0.1 }, { label: 'Industry Avg TRIR', data: [3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5], // Example average borderColor: 'var(–success-color)', borderDash: [5, 5], fill: false, tension: 0.1 }] }, options: { responsive: true, maintainAspectRatio: false, scales: { y: { beginAtZero: true, title: { display: true, text: 'TRIR (Rate per 100 Employees)' } }, x: { title: { display: true, text: 'Month' } } }, plugins: { legend: { position: 'top', }, title: { display: true, text: 'Monthly OSHA Incident Rate Trend vs. Industry Average' } } } }); } function updateChart(currentTrir) { if (!chartInstance) { initializeChart(); } // Generate some hypothetical monthly data based on current TRIR var monthlyData = []; var avgIndustryRate = 3.5; // Example industry average var baseValue = currentTrir > 0 ? currentTrir : avgIndustryRate; // Use current TRIR or average if current is 0 for (var i = 0; i < 12; i++) { // Simulate some monthly variation var variation = (Math.random() – 0.5) * (baseValue * 0.3); // +/- 15% variation var monthlyRate = Math.max(0, baseValue + variation); // Ensure rate is not negative monthlyData.push(monthlyRate.toFixed(2)); } chartInstance.data.datasets[0].data = monthlyData; chartInstance.data.datasets[1].data = [avgIndustryRate, avgIndustryRate, avgIndustryRate, avgIndustryRate, avgIndustryRate, avgIndustryRate, avgIndustryRate, avgIndustryRate, avgIndustryRate, avgIndustryRate, avgIndustryRate, avgIndustryRate]; // Keep industry average constant chartInstance.update(); } // Initial setup when the page loads document.addEventListener('DOMContentLoaded', function() { initializeChart(); // Optionally calculate on load if default values are meaningful // calculateOshaRate(); });

Leave a Comment