{"id":15438,"date":"2026-09-17T10:55:02","date_gmt":"2026-09-17T10:55:02","guid":{"rendered":"https:\/\/upkaizen.com\/?page_id=15438"},"modified":"2026-09-17T12:04:49","modified_gmt":"2026-09-17T12:04:49","slug":"informe","status":"publish","type":"page","link":"https:\/\/upkaizen.com\/es\/oee-capacity-scan\/report\/","title":{"rendered":"Informe del escaneo de capacidad OEE"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"15438\" class=\"elementor elementor-15438\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-81858c8 e-flex e-con-boxed e-con e-parent\" data-id=\"81858c8\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-dd201ad elementor-widget elementor-widget-html\" data-id=\"dd201ad\" 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\r\n<style>\r\n    #uk-oee-report-app input[type=\"file\"], \r\n    #uk-oee-report-app select {\r\n        color: #002e5d !important;\r\n        font-weight: 700 !important;\r\n    }\r\n    #oeeValidationForm input[type=\"text\"], \r\n    #oeeValidationForm input[type=\"email\"] {\r\n        color: #ffffff !important;\r\n        font-weight: 700 !important;\r\n        font-size: 13px !important;\r\n    }\r\n    .oee-table {\r\n        width: 100%;\r\n        border-collapse: collapse;\r\n        font-size: 12px;\r\n        text-align: center;\r\n    }\r\n    .oee-table th, .oee-table td {\r\n        border: 1px solid #cbd5e1;\r\n        padding: 8px;\r\n    }\r\n    .oee-table th {\r\n        background: #f1f5f9;\r\n        color: #002e5d;\r\n        font-weight: bold;\r\n    }\r\n    .badge-oee-good { background: #dcfce7 !important; color: #166534 !important; font-weight: bold; }\r\n    .badge-oee-warn { background: #fef08a !important; color: #854d0e !important; font-weight: bold; }\r\n    .badge-oee-alert { background: #fee2e2 !important; color: #991b1b !important; font-weight: bold; }\r\n    .wow-card {\r\n        background: linear-gradient(135deg, #0f172a 0%, #1e293b 100%);\r\n        border: 1px solid #334155;\r\n        box-shadow: 0 10px 25px rgba(0,0,0,0.2);\r\n    }\r\n<\/style>\r\n\r\n<div id=\"uk-oee-report-app\" style=\"font-family: Arial, sans-serif; color: #1e293b; max-width: 850px; margin: auto; line-height: 1.5; padding: 10px;\">\r\n    \r\n    <!-- CABECERA -->\r\n    <div style=\"background: #ffffff; border: 1px solid #e2e8f0; border-radius: 12px; padding: 25px; margin-bottom: 20px; text-align: center;\">\r\n        <span style=\"background: #e2e8f0; color: #475569; font-size: 11px; font-weight: 700; padding: 4px 12px; border-radius: 20px; text-transform: uppercase;\">Tier 2 Floor Data Diagnostic<\/span>\r\n        <h1 style=\"color: #002e5d; margin-top: 10px; margin-bottom: 8px; font-size: 28px; font-weight: 800;\">\u2699\ufe0f OEE Capacity Lock Scanner<\/h1>\r\n        <p style=\"margin: 0; font-size: 15px; color: #475569; max-width: 650px; margin: 0 auto;\">\r\n            Upload your shift production data to run an immediate OEE & Line Capacity audit.\r\n        <\/p>\r\n    <\/div>\r\n\r\n    <!-- M\u00d3DULO \u00daNICO DE CARGA DE CSV -->\r\n    <div style=\"background: #ffffff; border: 1px solid #e2e8f0; border-radius: 12px; padding: 25px; margin-bottom: 25px;\">\r\n        <div style=\"display: flex; justify-content: space-between; align-items: center; border-bottom: 2px solid #f1f5f9; padding-bottom: 8px; margin-bottom: 15px; flex-wrap: wrap; gap: 10px;\">\r\n            <h3 style=\"color: #002e5d; font-size: 18px; font-weight: 700; margin: 0;\">1. Upload Floor Data CSV File<\/h3>\r\n            <a href=\"data:text\/csv;charset=utf-8,Production_Date%2CLine_ID%2CShift%2CCalendar_Hrs%2CSetup_Hrs%2CCapacity_Units_Hr%2CDowntime_Hrs%2CActual_Scrap_Qty%2CGood_Units%0A2025-01-01%2C100%2CAfternoon%2C8%2C1%2C5000%2C0.5%2C1025%2C20079%0A2025-01-01%2C105%2CMorning%2C8%2C1%2C5000%2C0.6%2C686%2C29221%0A2025-01-01%2C107%2CAfternoon%2C8%2C1%2C5000%2C0.2%2C605%2C37879\" \r\n               download=\"Data_Collection_Production_UPKAIZEN.csv\" \r\n               style=\"display: inline-block; background: #e2e8f0; color: #002e5d; text-decoration: none; font-size: 11px; font-weight: 700; padding: 6px 12px; border-radius: 5px; border: 1px solid #cbd5e1;\">\r\n                \ud83d\udce5 Download CSV Template\r\n            <\/a>\r\n        <\/div>\r\n\r\n        <p style=\"font-size: 12px; color: #64748b; margin-bottom: 12px;\">\r\n            Required CSV Columns: <strong>Production_Date, Line_ID, Shift, Calendar_Hrs, Setup_Hrs, Capacity_Units_Hr, Downtime_Hrs, Actual_Scrap_Qty, Good_Units<\/strong>\r\n        <\/p>\r\n        <input type=\"file\" id=\"oeeCsvFileInput\" accept=\".csv\" style=\"width: 100%; padding: 12px; border: 1px solid #cbd5e1; border-radius: 6px; font-size: 13px; margin-bottom: 15px; background: #f8fafc;\">\r\n        \r\n        <button type=\"button\" onclick=\"processOEECSVFile()\" style=\"width: 100%; background: #d9534f; color: white; border: none; padding: 15px; border-radius: 6px; font-weight: 800; font-size: 16px; text-transform: uppercase; cursor: pointer;\">\r\n            \u26a1 Execute Line Capacity Scan\r\n        <\/button>\r\n    <\/div>\r\n\r\n    <!-- RESULTADOS DEL DIAGN\u00d3STICO -->\r\n    <div id=\"oeeResultsOutput\" style=\"display: none;\">\r\n        \r\n        <div style=\"background: #ffffff; border: 1px solid #e2e8f0; border-radius: 12px; padding: 25px; margin-bottom: 25px;\">\r\n            <div style=\"display: flex; justify-content: space-between; align-items: center; margin-bottom: 15px;\">\r\n                <h2 style=\"color: #002e5d; margin: 0; font-size: 22px; font-weight: 800;\">Your Plant Capacity & OEE Snapshot<\/h2>\r\n                <span style=\"background: #dcfce7; color: #166534; font-size: 10px; font-weight: 800; padding: 4px 10px; border-radius: 12px; text-transform: uppercase; border: 1px solid #86efac;\">\r\n                    CUSTOM CSV SCAN COMPLETE\r\n                <\/span>\r\n            <\/div>\r\n            <p style=\"font-size: 13px; color: #64748b; margin-bottom: 20px;\">Consolidated performance metrics calculated from uploaded floor data:<\/p>\r\n\r\n            <!-- 3 METRIC CARDS A\/P\/Q -->\r\n            <div style=\"display: grid; grid-template-columns: repeat(3, 1fr); gap: 15px; text-align: center; margin-bottom: 20px;\">\r\n                <div style=\"background: #f8fafc; border: 1px solid #e2e8f0; border-top: 4px solid #d9534f; border-radius: 8px; padding: 15px;\">\r\n                    <div style=\"font-size: 11px; font-weight: bold; color: #64748b; text-transform: uppercase;\">1. Availability<\/div>\r\n                    <div id=\"cardAvailPct\" style=\"font-size: 22px; font-weight: 800; color: #d9534f; margin: 5px 0;\">0%<\/div>\r\n                    <div id=\"cardDownHrs\" style=\"font-size: 11px; color: #64748b;\">0 hrs downtime<\/div>\r\n                <\/div>\r\n                <div style=\"background: #f8fafc; border: 1px solid #e2e8f0; border-top: 4px solid #f59e0b; border-radius: 8px; padding: 15px;\">\r\n                    <div style=\"font-size: 11px; font-weight: bold; color: #64748b; text-transform: uppercase;\">2. Performance<\/div>\r\n                    <div id=\"cardPerfPct\" style=\"font-size: 22px; font-weight: 800; color: #f59e0b; margin: 5px 0;\">0%<\/div>\r\n                    <div id=\"cardSpeedLoss\" style=\"font-size: 11px; color: #64748b;\">Speed loss tracked<\/div>\r\n                <\/div>\r\n                <div style=\"background: #f8fafc; border: 1px solid #e2e8f0; border-top: 4px solid #10b981; border-radius: 8px; padding: 15px;\">\r\n                    <div style=\"font-size: 11px; font-weight: bold; color: #64748b; text-transform: uppercase;\">3. Quality<\/div>\r\n                    <div id=\"cardQualPct\" style=\"font-size: 22px; font-weight: 800; color: #10b981; margin: 5px 0;\">0%<\/div>\r\n                    <div id=\"cardScrapQty\" style=\"font-size: 11px; color: #64748b;\">0 scrap units<\/div>\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <!-- RESUMEN HIGHLIGHT CON IMPACTO FINANCIERO -->\r\n            <div style=\"background: #0f172a; color: #ffffff; padding: 18px; border-radius: 8px; display: flex; justify-content: space-between; align-items: center; margin-bottom: 25px; flex-wrap: wrap; gap: 10px;\">\r\n                <div>\r\n                    <span style=\"font-size: 10px; color: #94a3b8; text-transform: uppercase; font-weight: bold;\">Consolidated OEE<\/span>\r\n                    <div id=\"resConsolidatedOEE\" style=\"font-size: 22px; font-weight: 800; color: #fbbf24;\">0.0 %<\/div>\r\n                <\/div>\r\n                <div>\r\n                    <span style=\"font-size: 10px; color: #94a3b8; text-transform: uppercase; font-weight: bold;\">Total Produced Units<\/span>\r\n                    <div id=\"resTotalUnits\" style=\"font-size: 18px; font-weight: 800; color: #38bdf8;\">0 units<\/div>\r\n                <\/div>\r\n                <div>\r\n                    <span style=\"font-size: 10px; color: #94a3b8; text-transform: uppercase; font-weight: bold;\">Unmanufactured Capacity<\/span>\r\n                    <div id=\"resLostUnits\" style=\"font-size: 18px; font-weight: 800; color: #ef4444;\">0 units lost<\/div>\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <!-- BLOQUE WOW: BENCHMARK VS WORLD CLASS -->\r\n            <div class=\"wow-card\" style=\"padding: 20px; border-radius: 8px; color: #fff; margin-bottom: 25px;\">\r\n                <div style=\"display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px;\">\r\n                    <span style=\"font-size: 11px; color: #38bdf8; font-weight: 800; text-transform: uppercase; letter-spacing: 0.5px;\">\ud83d\udea8 EXECUTIVE AHA! SIGNAL<\/span>\r\n                    <span style=\"font-size: 10px; background: rgba(217, 83, 79, 0.2); color: #f87171; padding: 2px 8px; border-radius: 4px; font-weight: 700;\">WORLD CLASS GAP DETECTED<\/span>\r\n                <\/div>\r\n                <p style=\"font-size: 13px; color: #cbd5e1; margin: 0 0 12px 0;\">\r\n                    Your plant is currently operating at <strong id=\"wowCurrentOEE\" style=\"color: #fbbf24;\">0% OEE<\/strong> vs. World Class Industry Standard (<strong style=\"color: #10b981;\">85.0%<\/strong>).\r\n                <\/p>\r\n                <div style=\"background: rgba(0, 0, 0, 0.4); padding: 12px; border-radius: 6px; border-left: 4px solid #ef4444; font-family: 'Courier New', monospace; font-size: 11.5px; color: #38bdf8;\">\r\n                    > UNLOCKED CAPACITY POTENTIAL: <span id=\"wowCapacityPotential\" style=\"color: #fff; font-weight: bold;\">0 units<\/span>\r\n                    <br>&gt; ESTIMATED ANNUAL MARGIN AT RISK: <span id=\"wowEbitdaVal\" style=\"color: #ef4444; font-weight: bold;\">$0 USD \/ year<\/span>\r\n                    <br>&gt; RADAR\u2122 AUDIT PAYBACK PERIOD: <span id=\"wowPaybackDays\" style=\"color: #10b981; font-weight: bold;\">0 days<\/span>\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <!-- TABLA DIN\u00c1MICA POR L\u00cdNEA -->\r\n            <h3 style=\"color: #002e5d; font-size: 16px; font-weight: 800; margin-top: 20px;\">\ud83d\udcca Dynamic OEE Breakdown by Production Line<\/h3>\r\n            <div style=\"overflow-x: auto; margin-bottom: 20px;\">\r\n                <table class=\"oee-table\">\r\n                    <thead>\r\n                        <tr>\r\n                            <th>Line ID<\/th>\r\n                            <th>Shifts<\/th>\r\n                            <th>Sched. Hrs<\/th>\r\n                            <th>Down Hrs<\/th>\r\n                            <th>Avail %<\/th>\r\n                            <th>Perf %<\/th>\r\n                            <th>Qual %<\/th>\r\n                            <th>OEE %<\/th>\r\n                        <\/tr>\r\n                    <\/thead>\r\n                    <tbody id=\"pivotTableBody\">\r\n                    <\/tbody>\r\n                <\/table>\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <!-- FORMULARIO CTA DE CONVERSI\u00d3N CON GDPR Y MARKETING CONSENT -->\r\n        <div style=\"background: #0f172a; color: #ffffff; border-radius: 12px; padding: 30px; margin-bottom: 30px;\">\r\n            <h3 style=\"color: #ffffff; margin-top: 0; font-size: 20px; font-weight: 800;\">Ready to unlock this hidden capacity?<\/h3>\r\n            <p style=\"font-size: 13px; color: #94a3b8; margin-bottom: 20px;\">UPKAIZEN can perform a full on-site <strong>RADAR\u2122 Scan<\/strong> to eliminate changeover friction, micro-stoppages and yield losses with a <strong>3x ROI Guarantee<\/strong>.<\/p>\r\n            \r\n            <form id=\"oeeValidationForm\" onsubmit=\"event.preventDefault(); handleOEEValidationSubmit();\">\r\n                <div style=\"display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 12px;\">\r\n                    <div>\r\n                        <label style=\"display: block; font-size: 10px; color: #94a3b8; text-transform: uppercase; margin-bottom: 2px;\">Name*<\/label>\r\n                        <input type=\"text\" id=\"contact_name\" required style=\"width: 100%; padding: 9px; background: #1e293b; border: 1px solid #334155; border-radius: 5px; box-sizing: border-box;\">\r\n                    <\/div>\r\n                    <div>\r\n                        <label style=\"display: block; font-size: 10px; color: #94a3b8; text-transform: uppercase; margin-bottom: 2px;\">Company*<\/label>\r\n                        <input type=\"text\" id=\"contact_company\" required style=\"width: 100%; padding: 9px; background: #1e293b; border: 1px solid #334155; border-radius: 5px; box-sizing: border-box;\">\r\n                    <\/div>\r\n                <\/div>\r\n                <div style=\"display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 15px;\">\r\n                    <div>\r\n                        <label style=\"display: block; font-size: 10px; color: #94a3b8; text-transform: uppercase; margin-bottom: 2px;\">Work Email*<\/label>\r\n                        <input type=\"email\" id=\"contact_email\" required style=\"width: 100%; padding: 9px; background: #1e293b; border: 1px solid #334155; border-radius: 5px; box-sizing: border-box;\">\r\n                    <\/div>\r\n                    <div>\r\n                        <label style=\"display: block; font-size: 10px; color: #94a3b8; text-transform: uppercase; margin-bottom: 2px;\">Phone (Optional)<\/label>\r\n                        <input type=\"text\" id=\"contact_phone\" style=\"width: 100%; padding: 9px; background: #1e293b; border: 1px solid #334155; border-radius: 5px; box-sizing: border-box;\">\r\n                    <\/div>\r\n                <\/div>\r\n                \r\n                <!-- CHECKBOX GDPR OBLIGATORIO -->\r\n                <div style=\"font-size: 11px; color: #ffffff !important; margin-bottom: 8px;\">\r\n                    <label style=\"color: #ffffff !important;\">\r\n                        <input type=\"checkbox\" id=\"gdpr_consent\" required style=\"vertical-align: middle;\"> I consent to the processing and storage of my data to manage this inquiry.*\r\n                    <\/label>\r\n                <\/div>\r\n                <!-- CHECKBOX MARKETING OPCIONAL -->\r\n                <div style=\"font-size: 11px; color: #ffffff !important; margin-bottom: 12px;\">\r\n                    <label style=\"color: #ffffff !important;\">\r\n                        <input type=\"checkbox\" id=\"marketing_consent\" style=\"vertical-align: middle;\"> I agree to receive other communication from UPKAIZEN.\r\n                    <\/label>\r\n                <\/div>\r\n                \r\n                <p style=\"font-size: 10.5px; color: #94a3b8; margin-top: 0; margin-bottom: 18px;\">\r\n                    For more information, please review our <a href=\"https:\/\/upkaizen.com\/privacy-policy\/\" target=\"_blank\" style=\"color: #38bdf8; text-decoration: underline;\">Privacy Policy<\/a>.\r\n                <\/p>\r\n                <button type=\"submit\" id=\"submitOeeBtn\" style=\"width: 100%; background: #d9534f; color: white; border: none; padding: 14px; border-radius: 5px; font-weight: 800; font-size: 15px; text-transform: uppercase; cursor: pointer;\">\r\n                    \ud83d\udce9 Request RADAR\u2122 Opportunity Audit\r\n                <\/button>\r\n            <\/form>\r\n        <\/div>\r\n    <\/div>\r\n<\/div>\r\n\r\n<script>\r\nvar computedOEEData = {};\r\n\r\nfunction processOEECSVFile() {\r\n    var fileInput = document.getElementById('oeeCsvFileInput');\r\n    if (!fileInput.files || !fileInput.files.length) {\r\n        alert(\"Please select a CSV file first.\");\r\n        return;\r\n    }\r\n    var file = fileInput.files[0];\r\n    var reader = new FileReader();\r\n    reader.onload = function(e) {\r\n        parseAndCalculateOEE(e.target.result);\r\n    };\r\n    reader.readAsText(file);\r\n}\r\n\r\nfunction parseAndCalculateOEE(csvText) {\r\n    var lines = csvText.split('\\n');\r\n\r\n    var totalGoodUnitsPlant = 0;\r\n    var totalScrapUnitsPlant = 0;\r\n    var totalSchedHrsPlant = 0;\r\n    var totalDownHrsPlant = 0;\r\n    var totalMaxCapPlant = 0;\r\n\r\n    var linePivot = {};\r\n\r\n    for (var i = 1; i < lines.length; i++) {\r\n        var line = lines[i].trim();\r\n        if (!line) continue;\r\n        var cols = line.split(',');\r\n        if (cols.length < 9) continue;\r\n\r\n        var lineId = cols[1].trim();\r\n        var calHrs = parseFloat(cols[3]) || 0;\r\n        var setupHrs = parseFloat(cols[4]) || 0;\r\n        var capUnitsHr = parseFloat(cols[5]) || 0;\r\n        var downHrs = parseFloat(cols[6]) || 0;\r\n        var scrap = parseFloat(cols[7]) || 0;\r\n        var good = parseFloat(cols[8]) || 0;\r\n\r\n        var schedHrs = calHrs - setupHrs;\r\n        if (schedHrs <= 0) schedHrs = calHrs;\r\n        var opHrs = schedHrs - downHrs;\r\n        var maxCap = opHrs * capUnitsHr;\r\n\r\n        totalGoodUnitsPlant += good;\r\n        totalScrapUnitsPlant += scrap;\r\n        totalSchedHrsPlant += schedHrs;\r\n        totalDownHrsPlant += downHrs;\r\n        totalMaxCapPlant += maxCap;\r\n\r\n        if (!linePivot[lineId]) {\r\n            linePivot[lineId] = { shifts: 0, schedHrs: 0, downHrs: 0, opHrs: 0, good: 0, scrap: 0, maxCap: 0 };\r\n        }\r\n        linePivot[lineId].shifts++;\r\n        linePivot[lineId].schedHrs += schedHrs;\r\n        linePivot[lineId].downHrs += downHrs;\r\n        linePivot[lineId].opHrs += opHrs;\r\n        linePivot[lineId].good += good;\r\n        linePivot[lineId].scrap += scrap;\r\n        linePivot[lineId].maxCap += maxCap;\r\n    }\r\n\r\n    var totalProducedPlant = totalGoodUnitsPlant + totalScrapUnitsPlant;\r\n    if (totalProducedPlant === 0) {\r\n        alert(\"No valid production data found in CSV.\");\r\n        return;\r\n    }\r\n\r\n    \/\/ Plant-wide Calculations\r\n    var plantAvail = (totalSchedHrsPlant - totalDownHrsPlant) \/ totalSchedHrsPlant;\r\n    var plantPerf = totalProducedPlant \/ totalMaxCapPlant;\r\n    var plantQual = totalGoodUnitsPlant \/ totalProducedPlant;\r\n    var plantOEE = plantAvail * plantPerf * plantQual;\r\n\r\n    var availLossUnits = (totalDownHrsPlant * (totalMaxCapPlant \/ (totalSchedHrsPlant - totalDownHrsPlant || 1)));\r\n    var perfLossUnits = totalMaxCapPlant - totalProducedPlant;\r\n    var totalLostUnits = Math.round(availLossUnits + perfLossUnits + totalScrapUnitsPlant);\r\n\r\n    \/\/ Default macro assumption: Revenue $2.5M, 34% margin = $850k Gross Margin\r\n    var defaultGrossMargin = 850000;\r\n    var estimatedUnitMargin = defaultGrossMargin \/ (totalProducedPlant || 1);\r\n    var estimatedAnnualLeak = totalLostUnits * estimatedUnitMargin;\r\n    var paybackDays = Math.max(1, Math.round((5000 \/ (estimatedAnnualLeak || 1)) * 365));\r\n\r\n    \/\/ Update Cards\r\n    document.getElementById('cardAvailPct').innerText = (plantAvail * 100).toFixed(1) + \"%\";\r\n    document.getElementById('cardDownHrs').innerText = totalDownHrsPlant.toFixed(1) + \" hrs downtime\";\r\n    \r\n    document.getElementById('cardPerfPct').innerText = (plantPerf * 100).toFixed(1) + \"%\";\r\n    document.getElementById('cardSpeedLoss').innerText = \"Speed loss calculated\";\r\n\r\n    document.getElementById('cardQualPct').innerText = (plantQual * 100).toFixed(1) + \"%\";\r\n    document.getElementById('cardScrapQty').innerText = totalScrapUnitsPlant.toLocaleString() + \" scrap units\";\r\n\r\n    document.getElementById('resConsolidatedOEE').innerText = (plantOEE * 100).toFixed(1) + \" %\";\r\n    document.getElementById('resTotalUnits').innerText = totalGoodUnitsPlant.toLocaleString() + \" units\";\r\n    document.getElementById('resLostUnits').innerText = totalLostUnits.toLocaleString() + \" units lost\";\r\n\r\n    \/\/ Update WOW Executive Box\r\n    document.getElementById('wowCurrentOEE').innerText = (plantOEE * 100).toFixed(1) + \"%\";\r\n    document.getElementById('wowCapacityPotential').innerText = \"+\" + totalLostUnits.toLocaleString() + \" units\/yr\";\r\n    document.getElementById('wowEbitdaVal').innerText = \"$\" + Math.round(estimatedAnnualLeak).toLocaleString() + \" USD \/ year\";\r\n    document.getElementById('wowPaybackDays').innerText = paybackDays + \" days\";\r\n\r\n    \/\/ Build Pivot Table Body\r\n    var tableHTML = \"\";\r\n    for (var lId in linePivot) {\r\n        var lp = linePivot[lId];\r\n        var lAvail = lp.schedHrs > 0 ? (lp.opHrs \/ lp.schedHrs) : 0;\r\n        var lTotProd = lp.good + lp.scrap;\r\n        var lPerf = lp.maxCap > 0 ? (lTotProd \/ lp.maxCap) : 0;\r\n        var lQual = lTotProd > 0 ? (lp.good \/ lTotProd) : 0;\r\n        var lOEE = lAvail * lPerf * lQual;\r\n\r\n        var oeeClass = \"badge-oee-good\";\r\n        if (lOEE < 0.65) oeeClass = \"badge-oee-alert\";\r\n        else if (lOEE < 0.75) oeeClass = \"badge-oee-warn\";\r\n\r\n        tableHTML += \"<tr>\" +\r\n            \"<td><strong>Line \" + lId + \"<\/strong><\/td>\" +\r\n            \"<td>\" + lp.shifts + \"<\/td>\" +\r\n            \"<td>\" + lp.schedHrs.toFixed(0) + \" hs<\/td>\" +\r\n            \"<td>\" + lp.downHrs.toFixed(1) + \" hs<\/td>\" +\r\n            \"<td>\" + (lAvail * 100).toFixed(1) + \"%<\/td>\" +\r\n            \"<td>\" + (lPerf * 100).toFixed(1) + \"%<\/td>\" +\r\n            \"<td>\" + (lQual * 100).toFixed(1) + \"%<\/td>\" +\r\n            \"<td class='\" + oeeClass + \"'>\" + (lOEE * 100).toFixed(1) + \"%<\/td>\" +\r\n            \"<\/tr>\";\r\n    }\r\n    document.getElementById('pivotTableBody').innerHTML = tableHTML;\r\n\r\n    computedOEEData = {\r\n        consolidatedOEE: (plantOEE * 100).toFixed(1) + \"%\",\r\n        totalUnits: totalGoodUnitsPlant,\r\n        lostUnits: totalLostUnits,\r\n        estimatedLeak: Math.round(estimatedAnnualLeak)\r\n    };\r\n\r\n    document.getElementById('oeeResultsOutput').style.display = 'block';\r\n    document.getElementById('oeeResultsOutput').scrollIntoView({ behavior: 'smooth' });\r\n}\r\n\r\nfunction handleOEEValidationSubmit() {\r\n    var btn = document.getElementById('submitOeeBtn');\r\n    if (btn) {\r\n        btn.disabled = true;\r\n        btn.style.background = \"#10b981\";\r\n        btn.innerText = \"\u23f3 SUBMITTING AUDIT REQUEST...\";\r\n    }\r\n\r\n    var formData = new FormData();\r\n    formData.append('action', 'send_oee_report');\r\n    formData.append('name', document.getElementById('contact_name')?.value || '');\r\n    formData.append('company', document.getElementById('contact_company')?.value || '');\r\n    formData.append('email', document.getElementById('contact_email')?.value || '');\r\n    formData.append('phone', document.getElementById('contact_phone')?.value || 'Not provided');\r\n    \r\n    formData.append('gdpr_consent', document.getElementById('gdpr_consent')?.checked ? '1' : '0');\r\n    formData.append('marketing_consent', document.getElementById('marketing_consent')?.checked ? '1' : '0');\r\n    \r\n    formData.append('consolidatedOEE', computedOEEData.consolidatedOEE || '0%');\r\n    formData.append('totalUnits', computedOEEData.totalUnits || '0');\r\n    formData.append('lostUnits', computedOEEData.lostUnits || '0');\r\n    formData.append('estimatedLeak', computedOEEData.estimatedLeak || '0');\r\n\r\n    fetch('\/wp-admin\/admin-ajax.php', {\r\n        method: 'POST',\r\n        body: formData\r\n    }).then(function(res) {\r\n        return res.json();\r\n    }).then(function(data) {\r\n        if (btn) btn.innerText = \"\u2705 OPPORTUNITY AUDIT SUBMITTED!\";\r\n        alert(\"Thank you. Your OEE Capacity Audit request has been submitted! A diagnostic copy was sent to your email.\");\r\n        window.location.href = \"https:\/\/upkaizen.com\/oee-capacity-scan\/\";\r\n    }).catch(function(err) {\r\n        console.error(\"Error submitting form:\", err);\r\n        alert(\"Thank you. Your OEE Capacity Audit request has been submitted!\");\r\n        window.location.href = \"https:\/\/upkaizen.com\/oee-capacity-scan\/\";\r\n    });\r\n}\r\n<\/script>\r\n\t\t\t\t<\/div>\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>Tier 2 Floor Data Diagnostic \u2699\ufe0f OEE Capacity Lock Scanner Upload your shift production data to run an immediate OEE &#038; Line Capacity audit. 1. Upload Floor Data CSV File \ud83d\udce5 Download CSV Template Required CSV Columns: Production_Date, Line_ID, Shift, Calendar_Hrs, Setup_Hrs, Capacity_Units_Hr, Downtime_Hrs, Actual_Scrap_Qty, Good_Units \u26a1 Execute Line Capacity Scan Your Plant Capacity &#038; [&hellip;]<\/p>\n","protected":false},"author":11,"featured_media":15178,"parent":15433,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"content-type":"","om_disable_all_campaigns":false,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"class_list":["post-15438","page","type-page","status-publish","has-post-thumbnail","hentry"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/upkaizen.com\/es\/wp-json\/wp\/v2\/pages\/15438","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/upkaizen.com\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/upkaizen.com\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/upkaizen.com\/es\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/upkaizen.com\/es\/wp-json\/wp\/v2\/comments?post=15438"}],"version-history":[{"count":13,"href":"https:\/\/upkaizen.com\/es\/wp-json\/wp\/v2\/pages\/15438\/revisions"}],"predecessor-version":[{"id":15451,"href":"https:\/\/upkaizen.com\/es\/wp-json\/wp\/v2\/pages\/15438\/revisions\/15451"}],"up":[{"embeddable":true,"href":"https:\/\/upkaizen.com\/es\/wp-json\/wp\/v2\/pages\/15433"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/upkaizen.com\/es\/wp-json\/wp\/v2\/media\/15178"}],"wp:attachment":[{"href":"https:\/\/upkaizen.com\/es\/wp-json\/wp\/v2\/media?parent=15438"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}