{"id":5713,"date":"2025-10-26T06:02:35","date_gmt":"2025-10-26T06:02:35","guid":{"rendered":"https:\/\/qualitysafetytimes.com\/?page_id=5713"},"modified":"2026-09-16T18:54:24","modified_gmt":"2026-09-16T18:54:24","slug":"injury-cost-tracking-worksheet","status":"publish","type":"page","link":"https:\/\/qualitysafetytimes.com\/?page_id=5713","title":{"rendered":"Injury Cost Tracking Worksheet"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"5713\" class=\"elementor elementor-5713\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-dee3722 e-flex e-con-boxed e-con e-parent\" data-id=\"dee3722\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a5eb462 elementor-widget elementor-widget-html\" data-id=\"a5eb462\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"injury-form-wrap\">\r\n    \r\n  <div class=\"form-header\">\r\n    <div class=\"form-logo\">\r\n      <img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/qualitysafetytimes.com\/wp-content\/uploads\/2025\/06\/Quality-Safety-Times.png?w=1080&#038;ssl=1\" \r\n           alt=\"Company Logo\">\r\n    <\/div>\r\n    <div class=\"form-title\">\r\n      <h2>Incident \/ Injury Cost Tracking Worksheet<\/h2>\r\n      <p style=\"margin-top:4px; font-size:13px; color:#333;\">\r\n        For more information on tracking costs of <u><strong>RE-Work<\/strong><\/u>, visit\r\n        <a href=\"https:\/\/qualitysafetytimes.com\" target=\"_blank\" rel=\"noopener\"><strong>QualitySafetyTimes.com<\/strong><\/a>.\r\n      <\/p>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"grid-2\">\r\n    <div>\r\n      <label>Contractor<\/label><input type=\"text\" class=\"inj-hdr-contractor\">\r\n      <label>Job Site<\/label><input type=\"text\" class=\"inj-hdr-jobsite\">\r\n      <label>Injured Person<\/label><input type=\"text\" class=\"inj-hdr-injured\">\r\n      <label>Site Super<\/label><input type=\"text\" class=\"inj-hdr-super\">\r\n      <label>Your Email<\/label>\r\n      <input type=\"email\" class=\"inj-hdr-email\" placeholder=\"name@example.com\" required>\r\n    <\/div>\r\n    <div>\r\n      <label>Date<\/label><input type=\"date\" class=\"inj-hdr-date\">\r\n      <label>Time<\/label><input type=\"time\" class=\"inj-hdr-time\">\r\n      <label>Direct Supervisor<\/label><input type=\"text\" class=\"inj-hdr-direct-super\">\r\n      <label>Type of Incident (Near Hit, First Aid, Recordable, Lost Time)<\/label><input type=\"text\" class=\"inj-hdr-type\">\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <label>Description of Incident<\/label>\r\n  <textarea class=\"inj-hdr-desc\"><\/textarea>\r\n\r\n  <div class=\"sec\">\r\n    <div class=\"sec-title\">Supervisor\u2019s Billing Rate<\/div>\r\n    <div style=\"padding:10px\">\r\n      <label>Supervisor hourly rate ($)<\/label>\r\n      <input type=\"number\" class=\"inj-sup-rate\" placeholder=\"Supervisor\u2019s Billing Rate\" min=\"0\" step=\"0.1\">\r\n    <\/div>\r\n    <table class=\"inj-sup-table\">\r\n      <thead>\r\n        <tr><th class=\"tl\">Supervisor\u2019s Time<\/th><th>Hours<\/th><th>Cost<\/th><\/tr>\r\n      <\/thead>\r\n      <tbody>\r\n        <tr><td class=\"tl\">Time at incident event<\/td><td><input type=\"number\" class=\"inj-sup-hours\" min=\"0\" step=\"0.1\"><\/td><td class=\"inj-sup-cost\">$0.00<\/td><\/tr>\r\n        <tr><td class=\"tl\">Transport \/ medical time with employee(s)<\/td><td><input type=\"number\" class=\"inj-sup-hours\" min=\"0\" step=\"0.1\"><\/td><td class=\"inj-sup-cost\">$0.00<\/td><\/tr>\r\n        <tr><td class=\"tl\">Related reports \/ review<\/td><td><input type=\"number\" class=\"inj-sup-hours\" min=\"0\" step=\"0.1\"><\/td><td class=\"inj-sup-cost\">$0.00<\/td><\/tr>\r\n        <tr><td class=\"tl\">Repair \/ re-order of equipment<\/td><td><input type=\"number\" class=\"inj-sup-hours\" min=\"0\" step=\"0.1\"><\/td><td class=\"inj-sup-cost\">$0.00<\/td><\/tr>\r\n        <tr><td class=\"tl\">Re-schedule of work<\/td><td><input type=\"number\" class=\"inj-sup-hours\" min=\"0\" step=\"0.1\"><\/td><td class=\"inj-sup-cost\">$0.00<\/td><\/tr>\r\n        <tr><td class=\"tl\">Replacement employee(s), hiring, training<\/td><td><input type=\"number\" class=\"inj-sup-hours\" min=\"0\" step=\"0.1\"><\/td><td class=\"inj-sup-cost\">$0.00<\/td><\/tr>\r\n        <tr><td class=\"tl\">Other (describe): <input type=\"text\" class=\"inj-sup-other muted\" placeholder=\"description\"><\/td><td><input type=\"number\" class=\"inj-sup-hours\" min=\"0\" step=\"0.1\"><\/td><td class=\"inj-sup-cost\">$0.00<\/td><\/tr>\r\n      <\/tbody>\r\n    <\/table>\r\n  <\/div>\r\n\r\n  <div class=\"sec\">\r\n    <div class=\"sec-title\">Injured Employee\u2019s Billing Rate<\/div>\r\n    <div style=\"padding:10px\">\r\n      <label>Employee hourly rate ($)<\/label>\r\n      <input type=\"number\" class=\"inj-emp-rate\" placeholder=\"Injured Employee\u2019s Billing Rate\" min=\"0\" step=\"0.1\">\r\n    <\/div>\r\n    <table class=\"inj-emp-table\">\r\n      <thead>\r\n        <tr><th class=\"tl\">Employee(s) Time<\/th><th>Hours<\/th><th>Cost<\/th><\/tr>\r\n      <\/thead>\r\n      <tbody>\r\n        <tr><td class=\"tl\">Time away from productive work (medical appointments, paperwork)<\/td><td><input type=\"number\" class=\"inj-emp-hours\" min=\"0\" step=\"0.1\"><\/td><td class=\"inj-emp-cost\">$0.00<\/td><\/tr>\r\n        <tr><td class=\"tl\">Additional training<\/td><td><input type=\"number\" class=\"inj-emp-hours\" min=\"0\" step=\"0.1\"><\/td><td class=\"inj-emp-cost\">$0.00<\/td><\/tr>\r\n        <tr>\r\n          <td class=\"tl\">% Reduction for Light Duty \u00d7 Days\r\n            <div class=\"grid-2\" style=\"margin-top:6px\">\r\n              <input type=\"number\" class=\"inj-emp-light-pct\" value=\"100\" min=\"0\" max=\"100\" step=\"0.1\" placeholder=\"%\">\r\n              <input type=\"number\" class=\"inj-emp-light-days\" value=\"0\" min=\"0\" step=\"0.1\" placeholder=\"Days\">\r\n            <\/div>\r\n          <\/td>\r\n          <td><input type=\"number\" class=\"inj-crew-hours\" min=\"0\" step=\"0.1\"><\/td>\r\n          <td class=\"inj-emp-light-cost\">$0.00<\/td>\r\n        <\/tr>\r\n      <\/tbody>\r\n    <\/table>\r\n  <\/div>\r\n\r\n  <div class=\"sec\">\r\n    <div class=\"sec-title\">Average Billing Rate for Crew<\/div>\r\n    <div style=\"padding:10px\">\r\n      <label>Average crew billing rate ($)<\/label>\r\n      <input type=\"number\" class=\"inj-crew-rate\" placeholder=\"Average Billing Rate for Crew\" min=\"0\" step=\"0.1\">\r\n    <\/div>\r\n    <table class=\"inj-crew-table\">\r\n      <thead>\r\n        <tr><th class=\"tl\">Item<\/th><th>Employees<\/th><th>Hours<\/th><th>Cost<\/th><\/tr>\r\n      <\/thead>\r\n      <tbody>\r\n        <tr><td class=\"tl\">Crew Time<\/td>\r\n          <td><input type=\"number\" class=\"inj-crew-emps\" value=\"1\" min=\"0\" step=\"0.1\"><\/td>\r\n          <td><input type=\"number\" class=\"inj-crew-hours\" min=\"0\" step=\"0.1\"><\/td>\r\n          <td class=\"inj-crew-cost\">$0.00<\/td><\/tr>\r\n        <tr><td class=\"tl\">Time around incident event hrs.<\/td>\r\n          <td><input type=\"number\" class=\"inj-crew-emps\" value=\"0\" min=\"0\" step=\"0.1\"><\/td>\r\n          <td><input type=\"number\" class=\"inj-crew-hours\" min=\"0\" step=\"0.1\"><\/td>\r\n          <td class=\"inj-crew-cost\">$0.00<\/td><\/tr>\r\n        <tr><td class=\"tl\">Investigation time (witness, paperwork): Total hours of all.<\/td>\r\n          <td><input type=\"number\" class=\"inj-crew-emps\" value=\"0\" min=\"0\" step=\"0.1\"><\/td>\r\n          <td><input type=\"number\" class=\"inj-crew-hours\" min=\"0\" step=\"0.1\"><\/td>\r\n          <td class=\"inj-crew-cost\">$0.00<\/td><\/tr>\r\n        <tr><td class=\"tl\">Training about incident hrs.<\/td>\r\n          <td><input type=\"number\" class=\"inj-crew-emps\" value=\"0\" min=\"0\" step=\"0.1\"><\/td>\r\n          <td><input type=\"number\" class=\"inj-crew-hours\" min=\"0\" step=\"0.1\"><\/td>\r\n          <td class=\"inj-crew-cost\">$0.00<\/td><\/tr>\r\n      <\/tbody>\r\n    <\/table>\r\n  <\/div>\r\n\r\n  <div class=\"sec\">\r\n    <div class=\"sec-title\">Property \/ Equipment Damage or Loss<\/div>\r\n    <table class=\"inj-prop-table\">\r\n      <thead><tr><th class=\"tl\">Item (Repair \/ Replacement \/ Rental)<\/th><th>Cost ($)<\/th><th>Action<\/th><\/tr><\/thead>\r\n      <tbody><\/tbody>\r\n    <\/table>\r\n    <div class=\"btn-row\"><button type=\"button\" class=\"inj-btn inj-add-prop\">+ Add item<\/button><\/div>\r\n  <\/div>\r\n\r\n  <div class=\"sec\">\r\n    <div class=\"sec-title\">OSHA Fines<\/div>\r\n    <table class=\"inj-osha-fines-table\">\r\n      <thead><tr><th class=\"tl\">Fines<\/th><th>Cost ($)<\/th><th>Action<\/th><\/tr><\/thead>\r\n      <tbody><\/tbody>\r\n    <\/table>\r\n    <div class=\"btn-row\"><button type=\"button\" class=\"inj-btn inj-add-osha-fine\">+ Add item<\/button><\/div>\r\n  <\/div>\r\n\r\n  <div class=\"sec\">\r\n    <div class=\"sec-title\">Others involved in investigation \/ down time (Identify if Direct or Subcontractor staff)<\/div>\r\n    <table class=\"inj-oth-table\">\r\n      <thead>\r\n        <tr>\r\n          <th>Job Title<\/th>\r\n          <th>Rate ($\/hr)<\/th>\r\n          <th>Hours<\/th>\r\n          <th>Cost<\/th>\r\n          <th>Action<\/th>\r\n        <\/tr>\r\n      <\/thead>\r\n      <tbody><\/tbody>\r\n    <\/table>\r\n    <div class=\"btn-row\"><button type=\"button\" class=\"inj-btn inj-add-oth\">+ Add person<\/button><\/div>\r\n  <\/div>\r\n\r\n  <div class=\"summary\">\r\n    <div class=\"line\"><span>Total Indirect Cost<\/span><span class=\"inj-total-indirect\">$0.00<\/span><\/div>\r\n    <div class=\"line\">\r\n      <span>Medical Expenses (Deductibles & other $ NOT paid by insurance)<\/span>\r\n      <span><input type=\"number\" class=\"inj-medical\" value=\"0\" min=\"0\" step=\"0.1\" style=\"width:140px;border-radius:6px;border:0;padding:6px\"><\/span>\r\n    <\/div>\r\n    <div class=\"line\"><span>Total Direct & Indirect<\/span><span class=\"inj-total-overall\">$0.00<\/span><\/div>\r\n    <div class=\"line\">\r\n      <span>Profit Margin on Job (Enter %)<\/span>\r\n      <span><input type=\"number\" class=\"inj-profit\" value=\"3\" min=\"0\" step=\"0.1\" style=\"width:80px;border-radius:6px;border:0;padding:6px\"> <\/span>\r\n    <\/div>\r\n    <div class=\"line\"><span>Total Extra work required to recover this loss<\/span><span class=\"inj-total-extra pill\">$0.00<\/span><\/div>\r\n  <\/div>\r\n\r\n  <div class=\"disclaimer\">\r\n    <p><strong>The above costs do NOT include office staff<\/strong> (processing reports, filing claims, return to work monitoring).<\/p>\r\n    <p><strong>The above costs are NOT typically covered by Insurance<\/strong> such as medical bills, time loss payments, etc.<\/p>\r\n  <\/div>\r\n  <div class=\"rev\">Rev: 10\/2025<\/div>\r\n<\/div>\r\n\r\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/html2pdf.js\/0.10.1\/html2pdf.bundle.min.js\"><\/script>\r\n\r\n<script>\r\n(function(){\r\n  const wrap = document.querySelector('.injury-form-wrap');\r\n\r\n  const cur = n => '$' + (isFinite(n) ? Number(n).toFixed(2) : '0.00');\r\n  const num = v => { const n = parseFloat(v); return isFinite(n)? n : 0; };\r\n\r\n  const propBody = wrap.querySelector('.inj-prop-table tbody');\r\n  const othBody  = wrap.querySelector('.inj-oth-table tbody');\r\n\r\n  const oshaFineBody = wrap.querySelector('.inj-osha-fines-table tbody') || document.createElement('tbody');\r\n\r\n  function addPropRow(desc='', cost=''){\r\n    const tr = document.createElement('tr');\r\n    tr.innerHTML = `\r\n      <td class=\"tl\"><input type=\"text\" class=\"inj-prop-desc\" placeholder=\"Describe item\" value=\"${desc}\"><\/td>\r\n      <td><input type=\"number\" class=\"inj-prop-cost\" min=\"0\" step=\"0.1\" value=\"${cost}\"><\/td>\r\n      <td><button type=\"button\" class=\"inj-btn inj-del\">Remove<\/button><\/td>`;\r\n    propBody.appendChild(tr);\r\n  }\r\n\r\n  function addOshaFineRow(desc='', cost=''){\r\n    const tr = document.createElement('tr');\r\n    tr.innerHTML = `\r\n      <td class=\"tl\"><input type=\"text\" class=\"inj-osha-fine-desc\" placeholder=\"Describe fine\" value=\"${desc}\"><\/td>\r\n      <td><input type=\"number\" class=\"inj-osha-fine-cost\" min=\"0\" step=\"0.1\" value=\"${cost}\"><\/td>\r\n      <td><button type=\"button\" class=\"inj-btn inj-del\">Remove<\/button><\/td>`;\r\n    oshaFineBody.appendChild(tr);\r\n  }\r\n\r\n  function addOthRow(title='', rate='', hrs=''){\r\n    const tr = document.createElement('tr');\r\n    tr.innerHTML = `\r\n      <td><input type=\"text\" class=\"inj-oth-title\" value=\"${title}\" placeholder=\"Job title\"><\/td>\r\n      <td><input type=\"number\" class=\"inj-oth-rate\" min=\"0\" step=\"0.1\" value=\"${rate}\"><\/td>\r\n      <td><input type=\"number\" class=\"inj-oth-hrs\"  min=\"0\" step=\"0.1\" value=\"${hrs}\"><\/td>\r\n      <td class=\"inj-oth-cost\">$0.00<\/td>\r\n      <td><button type=\"button\" class=\"inj-btn inj-del\">Remove<\/button><\/td>`;\r\n    othBody.appendChild(tr);\r\n  }\r\n\r\n  wrap.querySelector('.inj-add-prop').addEventListener('click', ()=>addPropRow());\r\n  wrap.querySelector('.inj-add-oth').addEventListener('click', ()=>addOthRow());\r\n  wrap.querySelector('.inj-add-osha-fine').addEventListener('click', ()=>addOshaFineRow());\r\n\r\n  [propBody, othBody, oshaFineBody].filter(Boolean).forEach(tbody=>{\r\n    tbody.addEventListener('click', e=>{\r\n      if(e.target.classList.contains('inj-del')){\r\n        e.target.closest('tr').remove();\r\n        calcAll();\r\n      }\r\n    });\r\n  });\r\n\r\n  addPropRow();\r\n  addOshaFineRow();\r\n\r\n  const defaultTitles = [\r\n    \"General Superintendent\",\r\n    \"Super Intendent\",\r\n    \"General Foreman\",\r\n    \"Project Manager\",\r\n    \"Project Engineer\",\r\n    \"Safety\/Claims\",\r\n    \"Clerical\",\r\n    \"Legal Counsel (Inhouse)\",\r\n    \"Outside Legal Counsel\"\r\n  ];\r\n  defaultTitles.forEach(t => addOthRow(t));\r\n\r\n  function calcAll(){\r\n    let total = 0;\r\n\r\n    const sRate = num(wrap.querySelector('.inj-sup-rate').value);\r\n    wrap.querySelectorAll('.inj-sup-table tbody tr').forEach(tr=>{\r\n      const hrs = num(tr.querySelector('.inj-sup-hours')?.value);\r\n      const cost = hrs * sRate;\r\n      tr.querySelector('.inj-sup-cost').textContent = cur(cost);\r\n      total += cost;\r\n    });\r\n\r\n    const eRate = num(wrap.querySelector('.inj-emp-rate').value);\r\n    wrap.querySelectorAll('.inj-emp-table tbody tr').forEach(tr=>{\r\n      const hrsInput = tr.querySelector('.inj-emp-hours');\r\n      if(hrsInput){\r\n        const hrs = num(hrsInput.value);\r\n        const cost = hrs * eRate;\r\n        tr.querySelector('.inj-emp-cost').textContent = cur(cost);\r\n        total += cost;\r\n      }\r\n    });\r\n\r\n    const pct  = num(wrap.querySelector('.inj-emp-light-pct').value);\r\n    const days = num(wrap.querySelector('.inj-emp-light-days').value);\r\n    const ldCost = eRate * 8 * days * (pct\/100);\r\n    wrap.querySelector('.inj-emp-light-cost').textContent = cur(ldCost);\r\n    total += ldCost;\r\n\r\n    const cRate = num(wrap.querySelector('.inj-crew-rate').value);\r\n    wrap.querySelectorAll('.inj-crew-table tbody tr').forEach(tr=>{\r\n      const emps = num(tr.querySelector('.inj-crew-emps')?.value);\r\n      const hrs  = num(tr.querySelector('.inj-crew-hours')?.value);\r\n      const cost = cRate * emps * hrs;\r\n      tr.querySelector('.inj-crew-cost').textContent = cur(cost);\r\n      total += cost;\r\n    });\r\n\r\n    propBody.querySelectorAll('.inj-prop-cost').forEach(inp => total += num(inp.value));\r\n    oshaFineBody.querySelectorAll('.inj-osha-fine-cost').forEach(inp => total += num(inp.value));\r\n\r\n    othBody.querySelectorAll('tr').forEach(tr=>{\r\n      const r = num(tr.querySelector('.inj-oth-rate').value);\r\n      const h = num(tr.querySelector('.inj-oth-hrs').value);\r\n      const c = r * h;\r\n      tr.querySelector('.inj-oth-cost').textContent = cur(c);\r\n      total += c;\r\n    });\r\n\r\n    wrap.querySelector('.inj-total-indirect').textContent = cur(total);\r\n    const medical = num(wrap.querySelector('.inj-medical').value);\r\n    const overall = total + medical;\r\n    wrap.querySelector('.inj-total-overall').textContent = cur(overall);\r\n    const pm = num(wrap.querySelector('.inj-profit').value);\r\n    const extra = pm>0 ? (overall \/ (pm\/100)) : 0;\r\n    wrap.querySelector('.inj-total-extra').textContent = cur(extra);\r\n  }\r\n\r\n  wrap.addEventListener('input', calcAll);\r\n  calcAll();\r\n})();\r\n<\/script>\r\n\r\n<button type=\"button\" id=\"injuryDownloadBtn\"\r\n  style=\"background:#004b91;color:#fff;padding:10px 18px;border:none;border-radius:6px;margin-top:20px;cursor:pointer;font-weight:600;\">\r\n  \ud83d\udcc4 Download PDF\r\n<\/button>\r\n\r\n<button type=\"button\" id=\"injurySubmitBtn\"\r\n  style=\"background:#198754;color:#fff;padding:10px 18px;border:none;border-radius:6px;margin-top:20px;cursor:pointer;font-weight:600;\">\r\n  \u2709\ufe0f Submit & Email\r\n<\/button>\r\n\r\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/html2canvas\/1.4.1\/html2canvas.min.js\"><\/script>\r\n\r\n<script>\r\nfunction buildRenderableClone() {\r\n  const wrap  = document.querySelector('.injury-form-wrap');\r\n  const clone = wrap.cloneNode(true);\r\n\r\n  ['.inj-sup-table','.inj-emp-table','.inj-crew-table','.inj-prop-table','.inj-oth-table','.inj-osha-fines-table'].forEach(sel => {\r\n    const src = wrap.querySelector(sel), dst = clone.querySelector(sel);\r\n    if (src && dst) dst.innerHTML = src.innerHTML;\r\n  });\r\n\r\n  const srcFields   = wrap.querySelectorAll('input, textarea, select');\r\n  const cloneFields = clone.querySelectorAll('input, textarea, select');\r\n\r\n  srcFields.forEach((srcEl, i) => {\r\n    const cEl = cloneFields[i];\r\n    if (!cEl) return;\r\n\r\n    let val = '';\r\n    if (srcEl.tagName === 'TEXTAREA') val = srcEl.value || '';\r\n    else if (srcEl.tagName === 'SELECT') val = srcEl.options[srcEl.selectedIndex]?.text ?? '';\r\n    else if (srcEl.type === 'checkbox' || srcEl.type === 'radio') val = srcEl.checked ? '\u2713' : '';\r\n    else val = srcEl.value || '';\r\n\r\n    const span = document.createElement('span');\r\n    span.textContent = val;\r\n\r\n    const cs = getComputedStyle(srcEl);\r\n    Object.assign(span.style, {\r\n      display: 'block',\r\n      minHeight: cs.height,\r\n      padding: '8px 10px',\r\n      border: '1px solid #d0d7de',\r\n      borderRadius: '6px',\r\n      background: '#fff',\r\n      whiteSpace: 'pre-wrap',\r\n      font: cs.font,\r\n      color: '#111',\r\n      textAlign: cs.textAlign || 'left'\r\n    });\r\n    cEl.replaceWith(span);\r\n  });\r\n\r\n  Object.assign(clone.style, {\r\n    display: 'block',\r\n    position: 'static',\r\n    width: '760px',\r\n    margin: '0 auto',\r\n    background: '#fff',\r\n    color: '#000',\r\n    boxShadow: 'none',\r\n    border: 'none',\r\n    transform: 'none',\r\n    overflow: 'visible'\r\n  });\r\n\r\n  const fixCSS = document.createElement('style');\r\n  fixCSS.textContent = `\r\n    * { break-inside: auto !important; page-break-inside: auto !important; }\r\n    .injury-form-wrap, .form-header, .grid-2, .sec, .summary, .disclaimer, .rev,\r\n    table, thead, tbody, tfoot, tr, td, th { break-inside: auto !important; }\r\n    thead { display: table-header-group !important; }\r\n    tfoot { display: table-footer-group !important; }\r\n    [style*=\"position:sticky\"] { position: static !important; }\r\n    .injury-form-wrap, .sec { overflow: visible !important; }\r\n    textarea, .sec { min-height: 0 !important; }\r\n  `;\r\n  clone.prepend(fixCSS);\r\n\r\n  document.body.appendChild(clone);\r\n  return clone;\r\n}\r\n\r\nasync function generatePDFBlob() {\r\n  const clone = buildRenderableClone();\r\n  try {\r\n    if (document.fonts && document.fonts.ready) await document.fonts.ready;\r\n    return await html2pdf().set({\r\n      margin: [10,10,10,10],\r\n      filename: 'QST-Injury-Worksheet.pdf',\r\n      pagebreak: { mode: ['css'] },\r\n      html2canvas: {\r\n        scale: 2, useCORS: true, allowTaint: true,\r\n        scrollX: 0, scrollY: 0,\r\n        backgroundColor: '#ffffff'\r\n      },\r\n      jsPDF: { unit: 'pt', format: 'a4', orientation: 'portrait' }\r\n    }).from(clone).output('blob');\r\n  } finally { clone.remove(); }\r\n}\r\n\r\nasync function downloadPDF() {\r\n  const clone = buildRenderableClone();\r\n  try {\r\n    if (document.fonts && document.fonts.ready) await document.fonts.ready;\r\n    await html2pdf().set({\r\n      margin: [10,10,10,10],\r\n      filename: 'QST-Injury-Worksheet.pdf',\r\n      pagebreak: { mode: ['css'] },\r\n      html2canvas: {\r\n        scale: 2, useCORS: true, allowTaint: true,\r\n        scrollX: 0, scrollY: 0,\r\n        backgroundColor: '#ffffff'\r\n      },\r\n      jsPDF: { unit: 'pt', format: 'a4', orientation: 'portrait' }\r\n    }).from(clone).save();\r\n  } catch (e) {\r\n    console.error(e);\r\n    alert('PDF export failed.');\r\n  } finally { clone.remove(); }\r\n}\r\n\r\ndocument.addEventListener('DOMContentLoaded', () => {\r\n  const dl = document.getElementById('injuryDownloadBtn');\r\n  const sb = document.getElementById('injurySubmitBtn');\r\n\r\n  if (dl) { const c = dl.cloneNode(true); dl.replaceWith(c); c.addEventListener('click', downloadPDF); }\r\n\r\n  if (sb) {\r\n    const c = sb.cloneNode(true); sb.replaceWith(c);\r\n    c.addEventListener('click', async () => {\r\n      try {\r\n        const pdfBlob = await generatePDFBlob();\r\n        const fd = new FormData();\r\n        fd.append('contractor',        document.querySelector('.inj-hdr-contractor').value || '');\r\n        fd.append('jobsite',           document.querySelector('.inj-hdr-jobsite').value || '');\r\n        fd.append('injured',           document.querySelector('.inj-hdr-injured').value || '');\r\n        fd.append('site_super',        document.querySelector('.inj-hdr-super').value || '');\r\n        fd.append('date',              document.querySelector('.inj-hdr-date').value || '');\r\n        fd.append('time',              document.querySelector('.inj-hdr-time').value || '');\r\n        fd.append('direct_supervisor', document.querySelector('.inj-hdr-direct-super').value || '');\r\n        fd.append('incident_type',     document.querySelector('.inj-hdr-type').value || '');\r\n        fd.append('description',       document.querySelector('.inj-hdr-desc').value || '');\r\n        fd.append('pdf', pdfBlob, 'QST-Injury-Worksheet.pdf');\r\n        fd.append('user_email', document.querySelector('.inj-hdr-email').value || '');\r\n\r\n        const res  = await fetch('\/send-injury-email.php', { method: 'POST', body: fd });\r\n        const text = await res.text();\r\n        alert(text.trim()==='success' ? '\u2705 Form submitted and emailed successfully!' : ('\u274c Error: ' + text));\r\n      } catch (err) {\r\n        console.error(err);\r\n        alert('\u274c Submission failed: ' + err.message);\r\n      }\r\n    });\r\n  }\r\n});\r\n<\/script>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-629fcaa e-con-full e-flex e-con e-child\" data-id=\"629fcaa\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Incident \/ Injury Cost Tracking Worksheet For more information on tracking costs of RE-Work, visit QualitySafetyTimes.com. Contractor Job Site Injured Person Site Super Your Email Date Time Direct Supervisor Type of Incident (Near Hit, First Aid, Recordable, Lost Time) Description of Incident Supervisor\u2019s Billing Rate Supervisor hourly rate ($) Supervisor\u2019s Time Hours Cost Time at [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","pmpro_default_level":"","footnotes":""},"folder":[],"class_list":["post-5713","page","type-page","status-publish","hentry","pmpro-has-access"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.6 (Yoast SEO v28.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Injury Cost Tracking Worksheet - Quality Safety Times<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/qualitysafetytimes.com\/?page_id=5713\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Injury Cost Tracking Worksheet\" \/>\n<meta property=\"og:description\" content=\"Incident \/ Injury Cost Tracking Worksheet For more information on tracking costs of RE-Work, visit QualitySafetyTimes.com. Contractor Job Site Injured Person Site Super Your Email Date Time Direct Supervisor Type of Incident (Near Hit, First Aid, Recordable, Lost Time) Description of Incident Supervisor\u2019s Billing Rate Supervisor hourly rate ($) Supervisor\u2019s Time Hours Cost Time at [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/qualitysafetytimes.com\/?page_id=5713\" \/>\n<meta property=\"og:site_name\" content=\"Quality Safety Times\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-16T18:54:24+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/qualitysafetytimes.com\/wp-content\/uploads\/2025\/06\/Quality-Safety-Times.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/qualitysafetytimes.com\\\/?page_id=5713\",\"url\":\"https:\\\/\\\/qualitysafetytimes.com\\\/?page_id=5713\",\"name\":\"Injury Cost Tracking Worksheet - Quality Safety Times\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/qualitysafetytimes.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/qualitysafetytimes.com\\\/?page_id=5713#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/qualitysafetytimes.com\\\/?page_id=5713#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/qualitysafetytimes.com\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/Quality-Safety-Times.png\",\"datePublished\":\"2025-10-26T06:02:35+00:00\",\"dateModified\":\"2026-09-16T18:54:24+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/qualitysafetytimes.com\\\/?page_id=5713#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/qualitysafetytimes.com\\\/?page_id=5713\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/qualitysafetytimes.com\\\/?page_id=5713#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/qualitysafetytimes.com\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/Quality-Safety-Times.png?fit=500%2C500&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/qualitysafetytimes.com\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/Quality-Safety-Times.png?fit=500%2C500&ssl=1\",\"width\":500,\"height\":500},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/qualitysafetytimes.com\\\/?page_id=5713#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/qualitysafetytimes.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Injury Cost Tracking Worksheet\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/qualitysafetytimes.com\\\/#website\",\"url\":\"https:\\\/\\\/qualitysafetytimes.com\\\/\",\"name\":\"Quality Safety Times\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/qualitysafetytimes.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Injury Cost Tracking Worksheet - Quality Safety Times","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/qualitysafetytimes.com\/?page_id=5713","og_locale":"en_US","og_type":"article","og_title":"Injury Cost Tracking Worksheet","og_description":"Incident \/ Injury Cost Tracking Worksheet For more information on tracking costs of RE-Work, visit QualitySafetyTimes.com. Contractor Job Site Injured Person Site Super Your Email Date Time Direct Supervisor Type of Incident (Near Hit, First Aid, Recordable, Lost Time) Description of Incident Supervisor\u2019s Billing Rate Supervisor hourly rate ($) Supervisor\u2019s Time Hours Cost Time at [&hellip;]","og_url":"https:\/\/qualitysafetytimes.com\/?page_id=5713","og_site_name":"Quality Safety Times","article_modified_time":"2026-09-16T18:54:24+00:00","og_image":[{"url":"https:\/\/qualitysafetytimes.com\/wp-content\/uploads\/2025\/06\/Quality-Safety-Times.png","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/qualitysafetytimes.com\/?page_id=5713","url":"https:\/\/qualitysafetytimes.com\/?page_id=5713","name":"Injury Cost Tracking Worksheet - Quality Safety Times","isPartOf":{"@id":"https:\/\/qualitysafetytimes.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/qualitysafetytimes.com\/?page_id=5713#primaryimage"},"image":{"@id":"https:\/\/qualitysafetytimes.com\/?page_id=5713#primaryimage"},"thumbnailUrl":"https:\/\/qualitysafetytimes.com\/wp-content\/uploads\/2025\/06\/Quality-Safety-Times.png","datePublished":"2025-10-26T06:02:35+00:00","dateModified":"2026-09-16T18:54:24+00:00","breadcrumb":{"@id":"https:\/\/qualitysafetytimes.com\/?page_id=5713#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/qualitysafetytimes.com\/?page_id=5713"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/qualitysafetytimes.com\/?page_id=5713#primaryimage","url":"https:\/\/i0.wp.com\/qualitysafetytimes.com\/wp-content\/uploads\/2025\/06\/Quality-Safety-Times.png?fit=500%2C500&ssl=1","contentUrl":"https:\/\/i0.wp.com\/qualitysafetytimes.com\/wp-content\/uploads\/2025\/06\/Quality-Safety-Times.png?fit=500%2C500&ssl=1","width":500,"height":500},{"@type":"BreadcrumbList","@id":"https:\/\/qualitysafetytimes.com\/?page_id=5713#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/qualitysafetytimes.com\/"},{"@type":"ListItem","position":2,"name":"Injury Cost Tracking Worksheet"}]},{"@type":"WebSite","@id":"https:\/\/qualitysafetytimes.com\/#website","url":"https:\/\/qualitysafetytimes.com\/","name":"Quality Safety Times","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/qualitysafetytimes.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"jetpack_sharing_enabled":true,"rttpg_featured_image_url":null,"rttpg_author":{"display_name":"Admin","author_link":"https:\/\/qualitysafetytimes.com\/?author=1"},"rttpg_comment":0,"rttpg_category":false,"rttpg_excerpt":"Incident \/ Injury Cost Tracking Worksheet For more information on tracking costs of RE-Work, visit QualitySafetyTimes.com. Contractor Job Site Injured Person Site Super Your Email Date Time Direct Supervisor Type of Incident (Near Hit, First Aid, Recordable, Lost Time) Description of Incident Supervisor\u2019s Billing Rate Supervisor hourly rate ($) Supervisor\u2019s Time Hours Cost Time at&hellip;","_links":{"self":[{"href":"https:\/\/qualitysafetytimes.com\/index.php?rest_route=\/wp\/v2\/pages\/5713","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/qualitysafetytimes.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/qualitysafetytimes.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/qualitysafetytimes.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/qualitysafetytimes.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5713"}],"version-history":[{"count":368,"href":"https:\/\/qualitysafetytimes.com\/index.php?rest_route=\/wp\/v2\/pages\/5713\/revisions"}],"predecessor-version":[{"id":6624,"href":"https:\/\/qualitysafetytimes.com\/index.php?rest_route=\/wp\/v2\/pages\/5713\/revisions\/6624"}],"wp:attachment":[{"href":"https:\/\/qualitysafetytimes.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5713"}],"wp:term":[{"taxonomy":"folder","embeddable":true,"href":"https:\/\/qualitysafetytimes.com\/index.php?rest_route=%2Fwp%2Fv2%2Ffolder&post=5713"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}