{"id":217,"date":"2026-03-17T16:18:35","date_gmt":"2026-03-17T16:18:35","guid":{"rendered":"https:\/\/luisocadiz.online\/?page_id=217"},"modified":"2026-03-17T16:18:35","modified_gmt":"2026-03-17T16:18:35","slug":"executive-dashboard","status":"publish","type":"page","link":"https:\/\/luisocadiz.online\/?page_id=217","title":{"rendered":"Executive Dashboard"},"content":{"rendered":"<style>\n:root {\n  --bg: #0a0a0a;\n  --surface: #111111;\n  --surface2: #1a1a1a;\n  --border: rgba(200,240,77,0.08);\n  --border2: rgba(200,240,77,0.18);\n  --cyan: #c8f04d;\n  --cyan2: #d8ff5a;\n  --green: #c8f04d;\n  --red: #ff4444;\n  --gold: #f0c040;\n  --purple: #a070ff;\n  --text: #e8e8e0;\n  --muted: #888880;\n  --dim: #222220;\n}\n*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}\nhtml{scroll-behavior:smooth;}\nbody{background:var(--bg);color:var(--text);font-family:'Instrument Sans',sans-serif;font-weight:400;overflow-x:hidden;min-height:100vh;}<\/p>\n<p>\/* SCANLINES *\/\nbody::before{content:'';position:fixed;inset:0;background:repeating-linear-gradient(0deg,transparent,transparent 3px,rgba(200,240,77,0.01) 3px,rgba(200,240,77,0.01) 4px);pointer-events:none;z-index:9999;}<\/p>\n<p>\/* GRID BG *\/\nbody::after{content:'';position:fixed;inset:0;background-image:linear-gradient(rgba(200,240,77,0.025) 1px,transparent 1px),linear-gradient(90deg,rgba(200,240,77,0.025) 1px,transparent 1px);background-size:50px 50px;pointer-events:none;z-index:0;}<\/p>\n<p>.page{position:relative;z-index:1;padding:2rem 2.5rem 4rem;}<\/p>\n<p>\/* HEADER *\/\n.header{margin-bottom:2.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border2);position:relative;}\n.header::after{content:'';position:absolute;bottom:-1px;left:0;width:30%;height:1px;background:linear-gradient(90deg,var(--cyan),transparent);}<\/p>\n<p>.header-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:0.5rem;}\n.header-logo{font-family:'Bebas Neue',sans-serif;letter-spacing:0.05em;font-size:0.6rem;font-weight:700;letter-spacing:0.3em;color:var(--cyan);display:flex;align-items:center;gap:0.75rem;}\n.logo-dot{width:8px;height:8px;background:var(--cyan);border-radius:50%;box-shadow:0 0 8px rgba(200,240,77,0.6);animation:pulse 2s infinite;}\n.header-meta{font-family:'DM Mono',monospace;font-size:0.5rem;letter-spacing:0.15em;color:var(--muted);text-align:right;line-height:2;}\n.header-title{font-family:'Bebas Neue',sans-serif;letter-spacing:0.05em;font-weight:900;font-size:clamp(1.4rem,3vw,2.2rem);letter-spacing:0.04em;text-transform:uppercase;color:var(--text);line-height:1;}\n.header-sub{font-family:'DM Mono',monospace;font-size:0.6rem;letter-spacing:0.2em;color:var(--cyan);margin-top:0.4rem;}<\/p>\n<p>\/* TABS *\/\n.tabs{display:flex;gap:0;margin-bottom:2rem;border-bottom:1px solid var(--border2);}\n.tab{font-family:'DM Mono',monospace;font-size:0.58rem;letter-spacing:0.2em;text-transform:uppercase;padding:0.75rem 1.5rem;background:transparent;border:none;color:var(--muted);cursor:pointer;position:relative;transition:color 0.2s;}\n.tab::after{content:'';position:absolute;bottom:-1px;left:0;right:100%;height:2px;background:var(--cyan);transition:right 0.3s;}\n.tab.active{color:var(--cyan);}\n.tab.active::after{right:0;}\n.tab:hover{color:var(--text);}\n.panel{display:none;}\n.panel.active{display:block;}<\/p>\n<p>\/* KPI GRID *\/\n.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1px;background:var(--border2);border:1px solid var(--border2);margin-bottom:2rem;}\n.kpi-card{background:var(--surface);padding:1.25rem 1.5rem;position:relative;overflow:hidden;transition:background 0.2s;}\n.kpi-card:hover{background:var(--surface2);}\n.kpi-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--cyan);opacity:0;transition:opacity 0.2s;}\n.kpi-card:hover::before{opacity:1;}\n.kpi-card.good::before{background:var(--green);opacity:1;}\n.kpi-card.bad::before{background:var(--red);opacity:1;}\n.kpi-card.warn::before{background:var(--gold);opacity:1;}\n.kpi-label{font-family:'DM Mono',monospace;font-size:0.48rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--muted);margin-bottom:0.6rem;}\n.kpi-value{font-family:'Bebas Neue',sans-serif;letter-spacing:0.05em;font-weight:700;font-size:1.6rem;line-height:1;margin-bottom:0.35rem;letter-spacing:0.02em;}\n.kpi-value.cyan{color:var(--cyan);text-shadow:0 0 20px rgba(200,240,77,0.4);}\n.kpi-value.green{color:var(--green);text-shadow:0 0 15px rgba(200,240,77,0.3);}\n.kpi-value.red{color:var(--red);text-shadow:0 0 12px rgba(255,68,68,0.3);}\n.kpi-value.gold{color:var(--gold);text-shadow:0 0 15px rgba(240,192,64,0.3);}\n.kpi-delta{font-family:'DM Mono',monospace;font-size:0.52rem;letter-spacing:0.1em;margin-bottom:0.2rem;}\n.kpi-delta.up{color:var(--green);}\n.kpi-delta.down-good{color:var(--green);}\n.kpi-delta.down-bad{color:var(--red);}\n.kpi-baseline{font-family:'DM Mono',monospace;font-size:0.45rem;color:var(--muted);}\n.kpi-number{position:absolute;bottom:0.5rem;right:0.75rem;font-family:'Bebas Neue',sans-serif;letter-spacing:0.05em;font-size:3rem;color:rgba(200,240,77,0.04);font-weight:900;line-height:1;}<\/p>\n<p>\/* SECTION HEADER *\/\n.sec-hdr{font-family:'DM Mono',monospace;font-size:0.52rem;letter-spacing:0.3em;text-transform:uppercase;color:var(--cyan);margin-bottom:1rem;display:flex;align-items:center;gap:0.75rem;}\n.sec-hdr::before{content:'\/\/';color:rgba(200,240,77,0.4);}\n.sec-hdr::after{content:'';flex:1;height:1px;background:linear-gradient(90deg,var(--border2),transparent);}<\/p>\n<p>\/* CHARTS *\/\n.chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-bottom:2rem;}\n.chart-box{background:var(--surface);border:1px solid var(--border2);padding:1.5rem;position:relative;overflow:hidden;}\n.chart-box::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--cyan),transparent);opacity:0.4;}\n.chart-title{font-family:'Bebas Neue',sans-serif;letter-spacing:0.05em;font-size:0.6rem;font-weight:700;letter-spacing:0.15em;text-transform:uppercase;color:var(--text);margin-bottom:0.25rem;}\n.chart-sub{font-family:'DM Mono',monospace;font-size:0.48rem;letter-spacing:0.1em;color:var(--muted);margin-bottom:1.25rem;}\n.chart-area{height:200px;position:relative;}\ncanvas{width:100%!important;height:100%!important;}<\/p>\n<p>\/* BAR CHART CUSTOM *\/\n.bar-chart{display:flex;align-items:flex-end;gap:0.5rem;height:180px;padding:0 0.25rem;}\n.bar-group{flex:1;display:flex;flex-direction:column;align-items:center;gap:0.3rem;}\n.bar-wrap{width:100%;flex:1;display:flex;align-items:flex-end;gap:2px;}\n.bar{flex:1;border-radius:1px 1px 0 0;position:relative;transition:all 0.8s cubic-bezier(0.16,1,0.3,1);min-width:0;}\n.bar::after{content:attr(data-val);position:absolute;top:-18px;left:50%;transform:translateX(-50%);font-family:'DM Mono',monospace;font-size:0.4rem;color:var(--text);white-space:nowrap;}\n.bar-label{font-family:'DM Mono',monospace;font-size:0.42rem;color:var(--muted);letter-spacing:0.05em;text-align:center;}<\/p>\n<p>\/* LINE CHART *\/\n.line-chart-wrap{height:180px;position:relative;}\n.lc-canvas{position:absolute;inset:0;}<\/p>\n<p>\/* TABLE *\/\n.data-table{width:100%;border-collapse:collapse;margin-bottom:2rem;}\n.data-table th{font-family:'DM Mono',monospace;font-size:0.48rem;letter-spacing:0.15em;text-transform:uppercase;color:var(--muted);padding:0.75rem 1rem;text-align:left;border-bottom:1px solid var(--border2);background:var(--surface);}\n.data-table td{font-family:'Instrument Sans',sans-serif;font-size:0.9rem;padding:0.7rem 1rem;border-bottom:1px solid var(--border);vertical-align:middle;}\n.data-table tr:hover td{background:rgba(200,240,77,0.02);}\n.data-table tr.section-row td{font-family:'DM Mono',monospace;font-size:0.45rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--cyan);background:var(--surface2);padding:0.5rem 1rem;}\n.val-good{color:var(--green);font-weight:600;}\n.val-bad{color:var(--red);font-weight:600;}\n.val-q1{color:var(--red);}\n.val-q4{color:var(--green);font-weight:600;}\n.badge{display:inline-block;padding:0.15rem 0.5rem;font-family:'DM Mono',monospace;font-size:0.45rem;letter-spacing:0.1em;text-transform:uppercase;border:1px solid;}\n.badge.green{color:var(--green);border-color:rgba(0,255,136,0.3);background:rgba(0,255,136,0.06);}\n.badge.red{color:var(--red);border-color:rgba(255,45,85,0.3);background:rgba(255,45,85,0.06);}\n.badge.gold{color:var(--gold);border-color:rgba(255,214,10,0.3);background:rgba(255,214,10,0.06);}<\/p>\n<p>\/* CHANNEL BLOCKS *\/\n.channel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border2);border:1px solid var(--border2);margin-bottom:2rem;}\n.channel-block{background:var(--surface);padding:1.5rem;}\n.channel-icon{font-size:1.2rem;margin-bottom:0.5rem;}\n.channel-name{font-family:'Bebas Neue',sans-serif;letter-spacing:0.05em;font-size:0.65rem;font-weight:700;letter-spacing:0.15em;color:var(--text);margin-bottom:1.25rem;text-transform:uppercase;}\n.ch-metric{display:flex;justify-content:space-between;align-items:center;padding:0.35rem 0;border-bottom:1px solid var(--border);}\n.ch-metric:last-child{border-bottom:none;}\n.ch-key{font-family:'DM Mono',monospace;font-size:0.48rem;letter-spacing:0.1em;color:var(--muted);}\n.ch-val{font-family:'Bebas Neue',sans-serif;letter-spacing:0.05em;font-size:0.7rem;font-weight:700;}<\/p>\n<p>\/* PROGRESS BAR *\/\n.prog-wrap{margin-bottom:1rem;}\n.prog-label{display:flex;justify-content:space-between;margin-bottom:0.3rem;}\n.prog-name{font-family:'DM Mono',monospace;font-size:0.48rem;color:var(--muted);}\n.prog-val{font-family:'Orbitron',monospace;font-size:0.55rem;font-weight:700;}\n.prog-track{height:4px;background:var(--dim);border-radius:2px;overflow:hidden;}\n.prog-fill{height:100%;border-radius:2px;transition:width 1s cubic-bezier(0.16,1,0.3,1);}<\/p>\n<p>\/* TEAM TABLE *\/\n.team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1px;background:var(--border);border:1px solid var(--border2);margin-bottom:2rem;}\n.team-card{background:var(--surface);padding:1.25rem;position:relative;}\n.team-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;}\n.team-card.green::before{background:var(--green);}\n.team-card.gold::before{background:var(--gold);}\n.team-card.red::before{background:var(--red);}\n.team-sup{font-family:'Instrument Sans',sans-serif;font-weight:600;font-size:1rem;color:var(--text);margin-bottom:0.15rem;}\n.team-name{font-family:'DM Mono',monospace;font-size:0.48rem;letter-spacing:0.1em;color:var(--cyan);margin-bottom:0.75rem;}\n.team-stats{display:flex;gap:1.5rem;}\n.team-stat-val{font-family:'Orbitron',monospace;font-size:0.9rem;font-weight:700;color:var(--text);}\n.team-stat-lbl{font-family:'DM Mono',monospace;font-size:0.4rem;color:var(--muted);}\n.team-tier{position:absolute;top:1rem;right:1rem;font-family:'DM Mono',monospace;font-size:0.4rem;letter-spacing:0.1em;padding:0.15rem 0.5rem;border:1px solid;}<\/p>\n<p>\/* ANIMATIONS *\/\n@keyframes pulse{0%,100%{opacity:1;box-shadow:0 0 8px rgba(200,240,77,0.6);}50%{opacity:0.4;box-shadow:0 0 4px var(--cyan);}}\n@keyframes fadeUp{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:translateY(0);}}\n@keyframes countUp{from{opacity:0;}to{opacity:1;}}<\/p>\n<p>.reveal{opacity:0;transform:translateY(20px);transition:all 0.7s cubic-bezier(0.16,1,0.3,1);}\n.reveal.in{opacity:1;transform:translateY(0);}<\/p>\n<p>\/* NARRATIVE BOX *\/\n.narrative{background:var(--surface);border:1px solid var(--border2);border-left:3px solid var(--cyan);padding:1.25rem 1.5rem;margin-bottom:2rem;position:relative;}\n.narrative::before{content:'CONTEXT';position:absolute;top:-8px;left:1rem;font-family:'DM Mono',monospace;font-size:0.42rem;letter-spacing:0.2em;color:var(--cyan);background:var(--surface);padding:0 0.5rem;}\n.narrative p{font-size:0.95rem;font-weight:300;color:var(--muted);line-height:1.8;letter-spacing:0.02em;}\n.narrative strong{color:var(--text);font-weight:600;}<\/p>\n<p>\/* RESPONSIVE *\/\n@media(max-width:768px){\n  .page{padding:1.25rem;}\n  .chart-grid{grid-template-columns:1fr;}\n  .channel-grid{grid-template-columns:1fr;}\n  .kpi-grid{grid-template-columns:repeat(2,1fr);}\n}\n<\/style>\n<div class=\"page\">\n  <a href=\"https:\/\/luisocadiz.online\" style=\"display:inline-flex;align-items:center;gap:0.5rem;font-family:'DM Mono',monospace;font-size:0.55rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--muted);text-decoration:none;margin-bottom:1.5rem;transition:color 0.2s;\" onmouseover=\"this.style.color='var(--cyan)'\" onmouseout=\"this.style.color='var(--muted)'\"><br \/>\n    \u2190 Back to Portfolio<br \/>\n  <\/a><\/p>\n<p>  <!-- HEADER --><\/p>\n<div class=\"header reveal\">\n<div class=\"header-top\">\n<div class=\"header-logo\">\n<div class=\"logo-dot\"><\/div>\n<p>        Luis Ocadiz \u00b7 CX Leadership\n      <\/p><\/div>\n<div class=\"header-meta\">\n        Director: Luis Ocadiz<br \/>\n        Reporting Period: FY \u2014 4 Quarters<br \/>\n        100 Agents \u00b7 3 Channels \u00b7 1 Campaign\n      <\/div>\n<\/p><\/div>\n<h1 class=\"header-title\">Executive Performance Dashboard<\/h1>\n<div class=\"header-sub\">\/\/ Inbound Contact Center \u00b7 Voice \u00b7 Email \u00b7 Chat<\/div>\n<\/p><\/div>\n<p>  <!-- TABS --><\/p>\n<div class=\"tabs\">\n    <button class=\"tab active\" onclick=\"switchTab('overview')\">Overview<\/button><br \/>\n    <button class=\"tab\" onclick=\"switchTab('abandon')\">Abandon Rate<\/button><br \/>\n    <button class=\"tab\" onclick=\"switchTab('sla')\">SLA Trends<\/button><br \/>\n    <button class=\"tab\" onclick=\"switchTab('channels')\">By Channel<\/button><br \/>\n    <button class=\"tab\" onclick=\"switchTab('team')\">Team<\/button>\n  <\/div>\n<p>  <!-- \u2500\u2500 OVERVIEW PANEL \u2500\u2500 --><\/p>\n<div class=\"panel active\" id=\"panel-overview\">\n<div class=\"narrative reveal\">\n<p>Inherited a <strong>struggling 100-agent contact center<\/strong> in Q1 with abandon rates nearly 3\u00d7 the industry benchmark, SLAs below 62% across all channels, and team morale at a low. Through data-driven staffing realignment, real-time queue monitoring, supervisor coaching cadences, and systematic FCR improvement, <strong>achieved top-quartile performance by Q4<\/strong> \u2014 reducing call abandonment from 9.1% to 1.6%, lifting all SLAs above 88%, and growing CSAT from 3.3 to 4.5\/5.0.<\/p>\n<\/p><\/div>\n<div class=\"sec-hdr reveal\">Key Performance Indicators \u2014 Q4 Current State<\/div>\n<div class=\"kpi-grid reveal\">\n<div class=\"kpi-card good\">\n<div class=\"kpi-label\">Call SLA %<\/div>\n<div class=\"kpi-value green\" data-target=\"91\" data-suffix=\"%\">0%<\/div>\n<div class=\"kpi-delta up\">\u25b2 +30.0pp vs Q1<\/div>\n<div class=\"kpi-baseline\">Q1 baseline: 61.0%<\/div>\n<div class=\"kpi-number\">01<\/div>\n<\/p><\/div>\n<div class=\"kpi-card good\">\n<div class=\"kpi-label\">Call Abandon %<\/div>\n<div class=\"kpi-value green\" data-target=\"1.6\" data-suffix=\"%\">0%<\/div>\n<div class=\"kpi-delta down-good\">\u25bc -7.5pp vs Q1<\/div>\n<div class=\"kpi-baseline\">Q1 baseline: 9.1%<\/div>\n<div class=\"kpi-number\">02<\/div>\n<\/p><\/div>\n<div class=\"kpi-card good\">\n<div class=\"kpi-label\">Avg Handle Time<\/div>\n<div class=\"kpi-value cyan\" data-target=\"298\" data-suffix=\"s\">0s<\/div>\n<div class=\"kpi-delta down-good\">\u25bc 114s vs Q1<\/div>\n<div class=\"kpi-baseline\">Q1 baseline: 412s<\/div>\n<div class=\"kpi-number\">03<\/div>\n<\/p><\/div>\n<div class=\"kpi-card good\">\n<div class=\"kpi-label\">Email SLA %<\/div>\n<div class=\"kpi-value green\" data-target=\"88\" data-suffix=\"%\">0%<\/div>\n<div class=\"kpi-delta up\">\u25b2 +34.0pp vs Q1<\/div>\n<div class=\"kpi-baseline\">Q1 baseline: 54.0%<\/div>\n<div class=\"kpi-number\">04<\/div>\n<\/p><\/div>\n<div class=\"kpi-card good\">\n<div class=\"kpi-label\">Email Backlog<\/div>\n<div class=\"kpi-value gold\" data-target=\"100\" data-suffix=\"\">0<\/div>\n<div class=\"kpi-delta down-good\">\u25bc 1,000 vs Q1<\/div>\n<div class=\"kpi-baseline\">Q1 baseline: 1,100<\/div>\n<div class=\"kpi-number\">05<\/div>\n<\/p><\/div>\n<div class=\"kpi-card good\">\n<div class=\"kpi-label\">Chat SLA %<\/div>\n<div class=\"kpi-value green\" data-target=\"92\" data-suffix=\"%\">0%<\/div>\n<div class=\"kpi-delta up\">\u25b2 +34.0pp vs Q1<\/div>\n<div class=\"kpi-baseline\">Q1 baseline: 58.0%<\/div>\n<div class=\"kpi-number\">06<\/div>\n<\/p><\/div>\n<div class=\"kpi-card good\">\n<div class=\"kpi-label\">Chat Abandon %<\/div>\n<div class=\"kpi-value green\" data-target=\"0.7\" data-suffix=\"%\">0%<\/div>\n<div class=\"kpi-delta down-good\">\u25bc -9.6pp vs Q1<\/div>\n<div class=\"kpi-baseline\">Q1 baseline: 10.3%<\/div>\n<div class=\"kpi-number\">07<\/div>\n<\/p><\/div>\n<div class=\"kpi-card good\">\n<div class=\"kpi-label\">CSAT (Blended)<\/div>\n<div class=\"kpi-value green\" data-target=\"4.5\" data-suffix=\"\/5\">0<\/div>\n<div class=\"kpi-delta up\">\u25b2 +1.2 vs Q1<\/div>\n<div class=\"kpi-baseline\">Q1 baseline: 3.3\/5.0<\/div>\n<div class=\"kpi-number\">08<\/div>\n<\/p><\/div>\n<div class=\"kpi-card good\">\n<div class=\"kpi-label\">FCR (Blended)<\/div>\n<div class=\"kpi-value green\" data-target=\"82\" data-suffix=\"%\">0%<\/div>\n<div class=\"kpi-delta up\">\u25b2 +21pp vs Q1<\/div>\n<div class=\"kpi-baseline\">Q1 baseline: 61%<\/div>\n<div class=\"kpi-number\">09<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<p>    <!-- IMPROVEMENT CHART --><\/p>\n<div class=\"sec-hdr reveal\">SLA Improvement \u2014 All Channels (Q1 \u2192 Q4)<\/div>\n<div class=\"chart-grid reveal\">\n<div class=\"chart-box\">\n<div class=\"chart-title\">Service Level % by Channel<\/div>\n<div class=\"chart-sub\">\/\/ Target line: 90% for voice\/chat, 85% for email<\/div>\n<div class=\"chart-area\">\n          <canvas id=\"sla-chart\"><\/canvas>\n        <\/div>\n<\/p><\/div>\n<div class=\"chart-box\">\n<div class=\"chart-title\">CSAT Score Trend \u2014 All Channels<\/div>\n<div class=\"chart-sub\">\/\/ Target: 4.2+ \/ 5.0<\/div>\n<div class=\"chart-area\">\n          <canvas id=\"csat-chart\"><\/canvas>\n        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<p>    <!-- SLA PROGRESS BARS --><\/p>\n<div class=\"sec-hdr reveal\">Q1 vs Q4 \u2014 Channel Comparison<\/div>\n<div class=\"channel-grid reveal\">\n<div class=\"channel-block\">\n<div class=\"channel-icon\">\ud83d\udcde<\/div>\n<div class=\"channel-name\">Inbound Voice<\/div>\n<div class=\"prog-wrap\">\n<div class=\"prog-label\"><span class=\"prog-name\">Q1 SLA<\/span><span class=\"prog-val val-bad\">61.0%<\/span><\/div>\n<div class=\"prog-track\">\n<div class=\"prog-fill\" style=\"width:61%;background:var(--red);\"><\/div>\n<\/div><\/div>\n<div class=\"prog-wrap\">\n<div class=\"prog-label\"><span class=\"prog-name\">Q4 SLA<\/span><span class=\"prog-val val-good\">91.0%<\/span><\/div>\n<div class=\"prog-track\">\n<div class=\"prog-fill\" style=\"width:91%;background:var(--green);\"><\/div>\n<\/div><\/div>\n<div class=\"prog-wrap\">\n<div class=\"prog-label\"><span class=\"prog-name\">Q1 Abandon<\/span><span class=\"prog-val val-bad\">9.1%<\/span><\/div>\n<div class=\"prog-track\">\n<div class=\"prog-fill\" style=\"width:91%;background:var(--red);\"><\/div>\n<\/div><\/div>\n<div class=\"prog-wrap\">\n<div class=\"prog-label\"><span class=\"prog-name\">Q4 Abandon<\/span><span class=\"prog-val val-good\">1.6%<\/span><\/div>\n<div class=\"prog-track\">\n<div class=\"prog-fill\" style=\"width:16%;background:var(--green);\"><\/div>\n<\/div><\/div>\n<\/p><\/div>\n<div class=\"channel-block\">\n<div class=\"channel-icon\">\ud83d\udce7<\/div>\n<div class=\"channel-name\">Email<\/div>\n<div class=\"prog-wrap\">\n<div class=\"prog-label\"><span class=\"prog-name\">Q1 SLA<\/span><span class=\"prog-val val-bad\">54.0%<\/span><\/div>\n<div class=\"prog-track\">\n<div class=\"prog-fill\" style=\"width:54%;background:var(--red);\"><\/div>\n<\/div><\/div>\n<div class=\"prog-wrap\">\n<div class=\"prog-label\"><span class=\"prog-name\">Q4 SLA<\/span><span class=\"prog-val val-good\">88.0%<\/span><\/div>\n<div class=\"prog-track\">\n<div class=\"prog-fill\" style=\"width:88%;background:var(--green);\"><\/div>\n<\/div><\/div>\n<div class=\"prog-wrap\">\n<div class=\"prog-label\"><span class=\"prog-name\">Q1 Backlog<\/span><span class=\"prog-val val-bad\">1,100<\/span><\/div>\n<div class=\"prog-track\">\n<div class=\"prog-fill\" style=\"width:100%;background:var(--red);\"><\/div>\n<\/div><\/div>\n<div class=\"prog-wrap\">\n<div class=\"prog-label\"><span class=\"prog-name\">Q4 Backlog<\/span><span class=\"prog-val val-good\">100<\/span><\/div>\n<div class=\"prog-track\">\n<div class=\"prog-fill\" style=\"width:9%;background:var(--green);\"><\/div>\n<\/div><\/div>\n<\/p><\/div>\n<div class=\"channel-block\">\n<div class=\"channel-icon\">\ud83d\udcac<\/div>\n<div class=\"channel-name\">Chat<\/div>\n<div class=\"prog-wrap\">\n<div class=\"prog-label\"><span class=\"prog-name\">Q1 SLA<\/span><span class=\"prog-val val-bad\">58.0%<\/span><\/div>\n<div class=\"prog-track\">\n<div class=\"prog-fill\" style=\"width:58%;background:var(--red);\"><\/div>\n<\/div><\/div>\n<div class=\"prog-wrap\">\n<div class=\"prog-label\"><span class=\"prog-name\">Q4 SLA<\/span><span class=\"prog-val val-good\">92.0%<\/span><\/div>\n<div class=\"prog-track\">\n<div class=\"prog-fill\" style=\"width:92%;background:var(--green);\"><\/div>\n<\/div><\/div>\n<div class=\"prog-wrap\">\n<div class=\"prog-label\"><span class=\"prog-name\">Q1 Abandon<\/span><span class=\"prog-val val-bad\">10.3%<\/span><\/div>\n<div class=\"prog-track\">\n<div class=\"prog-fill\" style=\"width:100%;background:var(--red);\"><\/div>\n<\/div><\/div>\n<div class=\"prog-wrap\">\n<div class=\"prog-label\"><span class=\"prog-name\">Q4 Abandon<\/span><span class=\"prog-val val-good\">0.7%<\/span><\/div>\n<div class=\"prog-track\">\n<div class=\"prog-fill\" style=\"width:7%;background:var(--green);\"><\/div>\n<\/div><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<p>  <!-- \u2500\u2500 ABANDON RATE PANEL \u2500\u2500 --><\/p>\n<div class=\"panel\" id=\"panel-abandon\">\n<div class=\"narrative reveal\">\n<p>Abandon rate is the single most impactful metric for revenue leakage. <strong>Every abandoned contact is a lost customer interaction<\/strong> \u2014 in an inbound campaign, that means unresolved issues, churn risk, and brand damage. The industry benchmark is <strong>&lt;3%<\/strong> for voice, <strong>&lt;3%<\/strong> for chat. We inherited both at 3\u00d7 that level and drove them below 2% by Q3 and below 1% by Q4.<\/p>\n<\/p><\/div>\n<div class=\"sec-hdr reveal\">Call Abandon Rate \u2014 Quarterly Trend<\/div>\n<div class=\"chart-grid reveal\">\n<div class=\"chart-box\">\n<div class=\"chart-title\">Call Abandon Rate vs. Benchmark<\/div>\n<div class=\"chart-sub\">\/\/ Industry benchmark: 3.0% | Red = above benchmark<\/div>\n<div class=\"chart-area\"><canvas id=\"call-abandon-chart\"><\/canvas><\/div>\n<\/p><\/div>\n<div class=\"chart-box\">\n<div class=\"chart-title\">Chat Abandon Rate vs. Benchmark<\/div>\n<div class=\"chart-sub\">\/\/ Industry benchmark: 3.0%<\/div>\n<div class=\"chart-area\"><canvas id=\"chat-abandon-chart\"><\/canvas><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"sec-hdr reveal\">Impact Summary<\/div>\n<div class=\"kpi-grid reveal\" style=\"grid-template-columns:repeat(4,1fr);\">\n<div class=\"kpi-card good\">\n<div class=\"kpi-label\">Call Abandon Q1<\/div>\n<div class=\"kpi-value red\">9.1%<\/div>\n<div class=\"kpi-baseline\">3,900 abandoned \/ qtr<\/div>\n<\/p><\/div>\n<div class=\"kpi-card good\">\n<div class=\"kpi-label\">Call Abandon Q4<\/div>\n<div class=\"kpi-value green\">1.6%<\/div>\n<div class=\"kpi-baseline\">700 abandoned \/ qtr<\/div>\n<\/p><\/div>\n<div class=\"kpi-card good\">\n<div class=\"kpi-label\">Calls Recovered<\/div>\n<div class=\"kpi-value gold\">3,200<\/div>\n<div class=\"kpi-baseline\">Q4 vs Q1 delta<\/div>\n<\/p><\/div>\n<div class=\"kpi-card good\">\n<div class=\"kpi-label\">Est. Revenue Saved<\/div>\n<div class=\"kpi-value cyan\">$90K<\/div>\n<div class=\"kpi-baseline\">@ $28\/contact \u00b7 Q4 vs Q1<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"sec-hdr reveal\">Quarterly Detail \u2014 Voice Channel<\/div>\n<table class=\"data-table reveal\">\n<thead>\n<tr>\n<th>Quarter<\/th>\n<th>Calls Offered<\/th>\n<th>Calls Handled<\/th>\n<th>Abandoned<\/th>\n<th>Abandon Rate<\/th>\n<th>vs. 3% Benchmark<\/th>\n<th>Status<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Q1 (Inherited)<\/td>\n<td>42,800<\/td>\n<td>38,900<\/td>\n<td class=\"val-bad\">3,900<\/td>\n<td class=\"val-bad\">9.1%<\/td>\n<td class=\"val-bad\">+6.1pp<\/td>\n<td><span class=\"badge red\">Critical<\/span><\/td>\n<\/tr>\n<tr>\n<td>Q2<\/td>\n<td>44,200<\/td>\n<td>41,200<\/td>\n<td class=\"val-bad\">3,000<\/td>\n<td class=\"val-bad\">6.8%<\/td>\n<td class=\"val-bad\">+3.8pp<\/td>\n<td><span class=\"badge gold\">Improving<\/span><\/td>\n<\/tr>\n<tr>\n<td>Q3<\/td>\n<td>45,100<\/td>\n<td>43,400<\/td>\n<td>1,700<\/td>\n<td>3.8%<\/td>\n<td>+0.8pp<\/td>\n<td><span class=\"badge gold\">Near Target<\/span><\/td>\n<\/tr>\n<tr>\n<td>Q4 (Current)<\/td>\n<td>43,600<\/td>\n<td>42,900<\/td>\n<td class=\"val-good\">700<\/td>\n<td class=\"val-good\">1.6%<\/td>\n<td class=\"val-good\">-1.4pp<\/td>\n<td><span class=\"badge green\">Exceeds Target<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div class=\"sec-hdr reveal\">Quarterly Detail \u2014 Chat Channel<\/div>\n<table class=\"data-table reveal\">\n<thead>\n<tr>\n<th>Quarter<\/th>\n<th>Chats Offered<\/th>\n<th>Chats Handled<\/th>\n<th>Abandoned<\/th>\n<th>Abandon Rate<\/th>\n<th>vs. 3% Benchmark<\/th>\n<th>Status<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Q1 (Inherited)<\/td>\n<td>6,800<\/td>\n<td>6,100<\/td>\n<td class=\"val-bad\">700<\/td>\n<td class=\"val-bad\">10.3%<\/td>\n<td class=\"val-bad\">+7.3pp<\/td>\n<td><span class=\"badge red\">Critical<\/span><\/td>\n<\/tr>\n<tr>\n<td>Q2<\/td>\n<td>7,200<\/td>\n<td>6,800<\/td>\n<td class=\"val-bad\">400<\/td>\n<td class=\"val-bad\">5.6%<\/td>\n<td class=\"val-bad\">+2.6pp<\/td>\n<td><span class=\"badge gold\">Improving<\/span><\/td>\n<\/tr>\n<tr>\n<td>Q3<\/td>\n<td>7,600<\/td>\n<td>7,400<\/td>\n<td>200<\/td>\n<td>2.6%<\/td>\n<td class=\"val-good\">-0.4pp<\/td>\n<td><span class=\"badge green\">On Target<\/span><\/td>\n<\/tr>\n<tr>\n<td>Q4 (Current)<\/td>\n<td>7,400<\/td>\n<td>7,350<\/td>\n<td class=\"val-good\">50<\/td>\n<td class=\"val-good\">0.7%<\/td>\n<td class=\"val-good\">-2.3pp<\/td>\n<td><span class=\"badge green\">Exceeds Target<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<p>  <!-- \u2500\u2500 SLA PANEL \u2500\u2500 --><\/p>\n<div class=\"panel\" id=\"panel-sla\">\n<div class=\"narrative reveal\">\n<p>Service Level Agreement (SLA) defines the percentage of contacts answered within the threshold time \u2014 <strong>30 seconds for voice and chat, 4 hours for email<\/strong>. Inherited all three channels significantly below target. Sustained SLA improvement required solving staffing, scheduling, routing, and agent skilling simultaneously \u2014 not just adding headcount.<\/p>\n<\/p><\/div>\n<div class=\"sec-hdr reveal\">SLA Trend \u2014 All Channels<\/div>\n<div class=\"chart-box reveal\" style=\"margin-bottom:1.5rem;\">\n<div class=\"chart-title\">SLA % \u2014 Voice, Email &#038; Chat \u2014 Q1 through Q4<\/div>\n<div class=\"chart-sub\">\/\/ Targets: Voice\/Chat 90%, Email 85%<\/div>\n<div class=\"chart-area\" style=\"height:240px;\"><canvas id=\"sla-all-chart\"><\/canvas><\/div>\n<\/p><\/div>\n<div class=\"sec-hdr reveal\">SLA Detail by Channel<\/div>\n<table class=\"data-table reveal\">\n<thead>\n<tr>\n<th>Channel<\/th>\n<th>SLA Threshold<\/th>\n<th>Q1<\/th>\n<th>Q2<\/th>\n<th>Q3<\/th>\n<th>Q4<\/th>\n<th>Improvement<\/th>\n<th>Target Met<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>\ud83d\udcde Inbound Voice<\/strong><\/td>\n<td>\u2264 30 seconds<\/td>\n<td class=\"val-q1\">61.0%<\/td>\n<td>72.0%<\/td>\n<td>84.0%<\/td>\n<td class=\"val-q4\">91.0%<\/td>\n<td class=\"val-good\">+30.0pp<\/td>\n<td><span class=\"badge green\">\u2713 Yes<\/span><\/td>\n<\/tr>\n<tr>\n<td><strong>\ud83d\udce7 Email<\/strong><\/td>\n<td>\u2264 4 hours<\/td>\n<td class=\"val-q1\">54.0%<\/td>\n<td>67.0%<\/td>\n<td>79.0%<\/td>\n<td class=\"val-q4\">88.0%<\/td>\n<td class=\"val-good\">+34.0pp<\/td>\n<td><span class=\"badge green\">\u2713 Yes<\/span><\/td>\n<\/tr>\n<tr>\n<td><strong>\ud83d\udcac Chat<\/strong><\/td>\n<td>\u2264 30 seconds<\/td>\n<td class=\"val-q1\">58.0%<\/td>\n<td>70.0%<\/td>\n<td>83.0%<\/td>\n<td class=\"val-q4\">92.0%<\/td>\n<td class=\"val-good\">+34.0pp<\/td>\n<td><span class=\"badge green\">\u2713 Yes<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div class=\"sec-hdr reveal\">Speed Metrics Improvement<\/div>\n<div class=\"kpi-grid reveal\" style=\"grid-template-columns:repeat(3,1fr);\">\n<div class=\"kpi-card good\">\n<div class=\"kpi-label\">Avg Speed to Answer \u2014 Voice<\/div>\n<div class=\"kpi-value green\">18s<\/div>\n<div class=\"kpi-delta down-good\">\u25bc 50s vs Q1 (68s)<\/div>\n<div class=\"kpi-baseline\">Industry top quartile: &lt;20s<\/div>\n<\/p><\/div>\n<div class=\"kpi-card good\">\n<div class=\"kpi-label\">Avg Speed to Answer \u2014 Chat<\/div>\n<div class=\"kpi-value green\">22s<\/div>\n<div class=\"kpi-delta down-good\">\u25bc 60s vs Q1 (82s)<\/div>\n<div class=\"kpi-baseline\">Industry top quartile: &lt;30s<\/div>\n<\/p><\/div>\n<div class=\"kpi-card good\">\n<div class=\"kpi-label\">After-Call Work \u2014 Voice<\/div>\n<div class=\"kpi-value cyan\">52s<\/div>\n<div class=\"kpi-delta down-good\">\u25bc 43s vs Q1 (95s)<\/div>\n<div class=\"kpi-baseline\">Industry benchmark: &lt;60s<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<p>  <!-- \u2500\u2500 CHANNELS PANEL \u2500\u2500 --><\/p>\n<div class=\"panel\" id=\"panel-channels\">\n<div class=\"sec-hdr reveal\">Voice Channel \u2014 Full Metrics<\/div>\n<table class=\"data-table reveal\">\n<thead>\n<tr>\n<th>Metric<\/th>\n<th>Unit<\/th>\n<th class=\"val-q1\">Q1<\/th>\n<th>Q2<\/th>\n<th>Q3<\/th>\n<th class=\"val-q4\">Q4<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr class=\"section-row\">\n<td colspan=\"6\">\/\/ VOLUME<\/td>\n<\/tr>\n<tr>\n<td>Calls Offered<\/td>\n<td>#<\/td>\n<td>42,800<\/td>\n<td>44,200<\/td>\n<td>45,100<\/td>\n<td>43,600<\/td>\n<\/tr>\n<tr>\n<td>Calls Handled<\/td>\n<td>#<\/td>\n<td>38,900<\/td>\n<td>41,200<\/td>\n<td>43,400<\/td>\n<td>42,900<\/td>\n<\/tr>\n<tr>\n<td>Calls Abandoned<\/td>\n<td>#<\/td>\n<td class=\"val-bad\">3,900<\/td>\n<td class=\"val-bad\">3,000<\/td>\n<td>1,700<\/td>\n<td class=\"val-good\">700<\/td>\n<\/tr>\n<tr>\n<td>Abandon Rate<\/td>\n<td>%<\/td>\n<td class=\"val-bad\">9.1%<\/td>\n<td class=\"val-bad\">6.8%<\/td>\n<td>3.8%<\/td>\n<td class=\"val-good\">1.6%<\/td>\n<\/tr>\n<tr class=\"section-row\">\n<td colspan=\"6\">\/\/ SPEED &#038; EFFICIENCY<\/td>\n<\/tr>\n<tr>\n<td>Avg Handle Time<\/td>\n<td>sec<\/td>\n<td class=\"val-bad\">412<\/td>\n<td>378<\/td>\n<td>344<\/td>\n<td class=\"val-good\">298<\/td>\n<\/tr>\n<tr>\n<td>After-Call Work<\/td>\n<td>sec<\/td>\n<td class=\"val-bad\">95<\/td>\n<td>82<\/td>\n<td>68<\/td>\n<td class=\"val-good\">52<\/td>\n<\/tr>\n<tr>\n<td>Avg Speed to Answer<\/td>\n<td>sec<\/td>\n<td class=\"val-bad\">68<\/td>\n<td>52<\/td>\n<td>34<\/td>\n<td class=\"val-good\">18<\/td>\n<\/tr>\n<tr class=\"section-row\">\n<td colspan=\"6\">\/\/ SERVICE LEVEL &#038; QUALITY<\/td>\n<\/tr>\n<tr>\n<td>SLA % (\u226430s)<\/td>\n<td>%<\/td>\n<td class=\"val-bad\">61.0%<\/td>\n<td>72.0%<\/td>\n<td>84.0%<\/td>\n<td class=\"val-good\">91.0%<\/td>\n<\/tr>\n<tr>\n<td>CSAT Score<\/td>\n<td>\/5.0<\/td>\n<td class=\"val-bad\">3.4<\/td>\n<td>3.7<\/td>\n<td>4.1<\/td>\n<td class=\"val-good\">4.5<\/td>\n<\/tr>\n<tr>\n<td>First Call Resolution<\/td>\n<td>%<\/td>\n<td class=\"val-bad\">61%<\/td>\n<td>67%<\/td>\n<td>74%<\/td>\n<td class=\"val-good\">82%<\/td>\n<\/tr>\n<tr>\n<td>Transfer Rate<\/td>\n<td>%<\/td>\n<td class=\"val-bad\">18%<\/td>\n<td>14%<\/td>\n<td>10%<\/td>\n<td class=\"val-good\">6%<\/td>\n<\/tr>\n<tr>\n<td>Agent Occupancy<\/td>\n<td>%<\/td>\n<td class=\"val-bad\">91%<\/td>\n<td>88%<\/td>\n<td>85%<\/td>\n<td class=\"val-good\">83%<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div class=\"sec-hdr reveal\">Email Channel \u2014 Full Metrics<\/div>\n<table class=\"data-table reveal\">\n<thead>\n<tr>\n<th>Metric<\/th>\n<th>Unit<\/th>\n<th class=\"val-q1\">Q1<\/th>\n<th>Q2<\/th>\n<th>Q3<\/th>\n<th class=\"val-q4\">Q4<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr class=\"section-row\">\n<td colspan=\"6\">\/\/ VOLUME<\/td>\n<\/tr>\n<tr>\n<td>Emails Received<\/td>\n<td>#<\/td>\n<td>9,200<\/td>\n<td>9,600<\/td>\n<td>9,900<\/td>\n<td>9,500<\/td>\n<\/tr>\n<tr>\n<td>Emails Resolved<\/td>\n<td>#<\/td>\n<td>8,100<\/td>\n<td>8,900<\/td>\n<td>9,600<\/td>\n<td>9,400<\/td>\n<\/tr>\n<tr>\n<td>End-of-Quarter Backlog<\/td>\n<td>#<\/td>\n<td class=\"val-bad\">1,100<\/td>\n<td class=\"val-bad\">700<\/td>\n<td>300<\/td>\n<td class=\"val-good\">100<\/td>\n<\/tr>\n<tr class=\"section-row\">\n<td colspan=\"6\">\/\/ EFFICIENCY &#038; QUALITY<\/td>\n<\/tr>\n<tr>\n<td>Avg Handle Time<\/td>\n<td>min<\/td>\n<td class=\"val-bad\">18.2<\/td>\n<td>15.8<\/td>\n<td>13.4<\/td>\n<td class=\"val-good\">11.2<\/td>\n<\/tr>\n<tr>\n<td>After-Contact Work<\/td>\n<td>min<\/td>\n<td class=\"val-bad\">4.8<\/td>\n<td>3.9<\/td>\n<td>3.1<\/td>\n<td class=\"val-good\">2.4<\/td>\n<\/tr>\n<tr>\n<td>SLA % (\u22644hr)<\/td>\n<td>%<\/td>\n<td class=\"val-bad\">54.0%<\/td>\n<td>67.0%<\/td>\n<td>79.0%<\/td>\n<td class=\"val-good\">88.0%<\/td>\n<\/tr>\n<tr>\n<td>CSAT Score<\/td>\n<td>\/5.0<\/td>\n<td class=\"val-bad\">3.2<\/td>\n<td>3.6<\/td>\n<td>4.0<\/td>\n<td class=\"val-good\">4.4<\/td>\n<\/tr>\n<tr>\n<td>First Contact Resolution<\/td>\n<td>%<\/td>\n<td class=\"val-bad\">58%<\/td>\n<td>65%<\/td>\n<td>73%<\/td>\n<td class=\"val-good\">81%<\/td>\n<\/tr>\n<tr>\n<td>Reopen Rate<\/td>\n<td>%<\/td>\n<td class=\"val-bad\">14%<\/td>\n<td>11%<\/td>\n<td>7%<\/td>\n<td class=\"val-good\">4%<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div class=\"sec-hdr reveal\">Chat Channel \u2014 Full Metrics<\/div>\n<table class=\"data-table reveal\">\n<thead>\n<tr>\n<th>Metric<\/th>\n<th>Unit<\/th>\n<th class=\"val-q1\">Q1<\/th>\n<th>Q2<\/th>\n<th>Q3<\/th>\n<th class=\"val-q4\">Q4<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr class=\"section-row\">\n<td colspan=\"6\">\/\/ VOLUME<\/td>\n<\/tr>\n<tr>\n<td>Chats Offered<\/td>\n<td>#<\/td>\n<td>6,800<\/td>\n<td>7,200<\/td>\n<td>7,600<\/td>\n<td>7,400<\/td>\n<\/tr>\n<tr>\n<td>Chats Handled<\/td>\n<td>#<\/td>\n<td>6,100<\/td>\n<td>6,800<\/td>\n<td>7,400<\/td>\n<td>7,350<\/td>\n<\/tr>\n<tr>\n<td>Chats Abandoned<\/td>\n<td>#<\/td>\n<td class=\"val-bad\">700<\/td>\n<td class=\"val-bad\">400<\/td>\n<td>200<\/td>\n<td class=\"val-good\">50<\/td>\n<\/tr>\n<tr>\n<td>Abandon Rate<\/td>\n<td>%<\/td>\n<td class=\"val-bad\">10.3%<\/td>\n<td>5.6%<\/td>\n<td>2.6%<\/td>\n<td class=\"val-good\">0.7%<\/td>\n<\/tr>\n<tr class=\"section-row\">\n<td colspan=\"6\">\/\/ EFFICIENCY &#038; QUALITY<\/td>\n<\/tr>\n<tr>\n<td>Avg Handle Time<\/td>\n<td>min<\/td>\n<td class=\"val-bad\">12.4<\/td>\n<td>10.8<\/td>\n<td>9.2<\/td>\n<td class=\"val-good\">7.8<\/td>\n<\/tr>\n<tr>\n<td>Avg Speed to Answer<\/td>\n<td>sec<\/td>\n<td class=\"val-bad\">82<\/td>\n<td>61<\/td>\n<td>38<\/td>\n<td class=\"val-good\">22<\/td>\n<\/tr>\n<tr>\n<td>Concurrent Sessions<\/td>\n<td>x<\/td>\n<td class=\"val-bad\">1.8<\/td>\n<td>2.1<\/td>\n<td>2.4<\/td>\n<td class=\"val-good\">2.7<\/td>\n<\/tr>\n<tr>\n<td>SLA % (\u226430s)<\/td>\n<td>%<\/td>\n<td class=\"val-bad\">58.0%<\/td>\n<td>70.0%<\/td>\n<td>83.0%<\/td>\n<td class=\"val-good\">92.0%<\/td>\n<\/tr>\n<tr>\n<td>CSAT Score<\/td>\n<td>\/5.0<\/td>\n<td class=\"val-bad\">3.3<\/td>\n<td>3.7<\/td>\n<td>4.1<\/td>\n<td class=\"val-good\">4.6<\/td>\n<\/tr>\n<tr>\n<td>First Contact Resolution<\/td>\n<td>%<\/td>\n<td class=\"val-bad\">63%<\/td>\n<td>70%<\/td>\n<td>77%<\/td>\n<td class=\"val-good\">84%<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<p>  <!-- \u2500\u2500 TEAM PANEL \u2500\u2500 --><\/p>\n<div class=\"panel\" id=\"panel-team\">\n<div class=\"narrative reveal\">\n<p>The team of <strong>100 frontline agents<\/strong> is organized under 8 supervisors and 2 operations managers. At inheritance in Q1, 6 of 8 supervisors were rated Below Target. Through structured 1:1 coaching, real-time monitoring adoption, and clear KPI ownership at the supervisor level, <strong>all 8 supervisors ended Q4 meeting or exceeding targets<\/strong>.<\/p>\n<\/p><\/div>\n<div class=\"sec-hdr reveal\">Leadership Structure<\/div>\n<div class=\"kpi-grid reveal\" style=\"grid-template-columns:repeat(3,1fr);margin-bottom:2rem;\">\n<div class=\"kpi-card\">\n<div class=\"kpi-label\">Director, CX<\/div>\n<div class=\"kpi-value cyan\" style=\"font-size:1rem;margin-top:0.5rem;\">Luis Ocadiz<\/div>\n<div class=\"kpi-baseline\" style=\"margin-top:0.5rem;\">2 Managers \u00b7 8 Supervisors \u00b7 100 Agents<\/div>\n<\/p><\/div>\n<div class=\"kpi-card\">\n<div class=\"kpi-label\">Manager, Call Operations<\/div>\n<div class=\"kpi-value cyan\" style=\"font-size:1rem;margin-top:0.5rem;\">Sarah Kim<\/div>\n<div class=\"kpi-baseline\" style=\"margin-top:0.5rem;\">4 Supervisors \u00b7 50 Voice Agents<\/div>\n<\/p><\/div>\n<div class=\"kpi-card\">\n<div class=\"kpi-label\">Manager, Digital Channels<\/div>\n<div class=\"kpi-value cyan\" style=\"font-size:1rem;margin-top:0.5rem;\">Andre Thomas<\/div>\n<div class=\"kpi-baseline\" style=\"margin-top:0.5rem;\">4 Supervisors \u00b7 50 Email\/Chat Agents<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"sec-hdr reveal\">Supervisor Roster \u2014 Q4 Performance Status<\/div>\n<div class=\"team-grid reveal\">\n<div class=\"team-card green\">\n<div class=\"team-tier badge green\">Q4: Exceeds<\/div>\n<div class=\"team-sup\">Maria Santos<\/div>\n<div class=\"team-name\">\/\/ Inbound Calls A<\/div>\n<div class=\"team-stats\">\n<div>\n<div class=\"team-stat-val\">13<\/div>\n<div class=\"team-stat-lbl\">Agents<\/div>\n<\/div>\n<div>\n<div class=\"team-stat-val\">22mo<\/div>\n<div class=\"team-stat-lbl\">Avg Tenure<\/div>\n<\/div>\n<div>\n<div class=\"team-stat-val\">Voice<\/div>\n<div class=\"team-stat-lbl\">Channel<\/div>\n<\/div><\/div>\n<\/p><\/div>\n<div class=\"team-card green\">\n<div class=\"team-tier badge green\">Q4: Exceeds<\/div>\n<div class=\"team-sup\">James Okafor<\/div>\n<div class=\"team-name\">\/\/ Inbound Calls B<\/div>\n<div class=\"team-stats\">\n<div>\n<div class=\"team-stat-val\">12<\/div>\n<div class=\"team-stat-lbl\">Agents<\/div>\n<\/div>\n<div>\n<div class=\"team-stat-val\">18mo<\/div>\n<div class=\"team-stat-lbl\">Avg Tenure<\/div>\n<\/div>\n<div>\n<div class=\"team-stat-val\">Voice<\/div>\n<div class=\"team-stat-lbl\">Channel<\/div>\n<\/div><\/div>\n<\/p><\/div>\n<div class=\"team-card green\">\n<div class=\"team-tier badge green\">Q4: Meets<\/div>\n<div class=\"team-sup\">Priya Mehta<\/div>\n<div class=\"team-name\">\/\/ Inbound Calls C<\/div>\n<div class=\"team-stats\">\n<div>\n<div class=\"team-stat-val\">13<\/div>\n<div class=\"team-stat-lbl\">Agents<\/div>\n<\/div>\n<div>\n<div class=\"team-stat-val\">31mo<\/div>\n<div class=\"team-stat-lbl\">Avg Tenure<\/div>\n<\/div>\n<div>\n<div class=\"team-stat-val\">Voice<\/div>\n<div class=\"team-stat-lbl\">Channel<\/div>\n<\/div><\/div>\n<\/p><\/div>\n<div class=\"team-card green\">\n<div class=\"team-tier badge green\">Q4: Exceeds<\/div>\n<div class=\"team-sup\">Carlos Rivera<\/div>\n<div class=\"team-name\">\/\/ Inbound Calls D<\/div>\n<div class=\"team-stats\">\n<div>\n<div class=\"team-stat-val\">12<\/div>\n<div class=\"team-stat-lbl\">Agents<\/div>\n<\/div>\n<div>\n<div class=\"team-stat-val\">15mo<\/div>\n<div class=\"team-stat-lbl\">Avg Tenure<\/div>\n<\/div>\n<div>\n<div class=\"team-stat-val\">Voice<\/div>\n<div class=\"team-stat-lbl\">Channel<\/div>\n<\/div><\/div>\n<\/p><\/div>\n<div class=\"team-card green\">\n<div class=\"team-tier badge green\">Q4: Exceeds<\/div>\n<div class=\"team-sup\">Tanya Williams<\/div>\n<div class=\"team-name\">\/\/ Email &#038; Chat A<\/div>\n<div class=\"team-stats\">\n<div>\n<div class=\"team-stat-val\">13<\/div>\n<div class=\"team-stat-lbl\">Agents<\/div>\n<\/div>\n<div>\n<div class=\"team-stat-val\">28mo<\/div>\n<div class=\"team-stat-lbl\">Avg Tenure<\/div>\n<\/div>\n<div>\n<div class=\"team-stat-val\">Digital<\/div>\n<div class=\"team-stat-lbl\">Channel<\/div>\n<\/div><\/div>\n<\/p><\/div>\n<div class=\"team-card green\">\n<div class=\"team-tier badge green\">Q4: Meets<\/div>\n<div class=\"team-sup\">Derek Huang<\/div>\n<div class=\"team-name\">\/\/ Email &#038; Chat B<\/div>\n<div class=\"team-stats\">\n<div>\n<div class=\"team-stat-val\">12<\/div>\n<div class=\"team-stat-lbl\">Agents<\/div>\n<\/div>\n<div>\n<div class=\"team-stat-val\">12mo<\/div>\n<div class=\"team-stat-lbl\">Avg Tenure<\/div>\n<\/div>\n<div>\n<div class=\"team-stat-val\">Digital<\/div>\n<div class=\"team-stat-lbl\">Channel<\/div>\n<\/div><\/div>\n<\/p><\/div>\n<div class=\"team-card green\">\n<div class=\"team-tier badge green\">Q4: Exceeds<\/div>\n<div class=\"team-sup\">Shayla Brown<\/div>\n<div class=\"team-name\">\/\/ Blended A<\/div>\n<div class=\"team-stats\">\n<div>\n<div class=\"team-stat-val\">13<\/div>\n<div class=\"team-stat-lbl\">Agents<\/div>\n<\/div>\n<div>\n<div class=\"team-stat-val\">19mo<\/div>\n<div class=\"team-stat-lbl\">Avg Tenure<\/div>\n<\/div>\n<div>\n<div class=\"team-stat-val\">Blended<\/div>\n<div class=\"team-stat-lbl\">Channel<\/div>\n<\/div><\/div>\n<\/p><\/div>\n<div class=\"team-card green\">\n<div class=\"team-tier badge green\">Q4: Exceeds<\/div>\n<div class=\"team-sup\">Marcus Johnson<\/div>\n<div class=\"team-name\">\/\/ Blended B<\/div>\n<div class=\"team-stats\">\n<div>\n<div class=\"team-stat-val\">12<\/div>\n<div class=\"team-stat-lbl\">Agents<\/div>\n<\/div>\n<div>\n<div class=\"team-stat-val\">24mo<\/div>\n<div class=\"team-stat-lbl\">Avg Tenure<\/div>\n<\/div>\n<div>\n<div class=\"team-stat-val\">Blended<\/div>\n<div class=\"team-stat-lbl\">Channel<\/div>\n<\/div><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/div>\n<p><script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/Chart.js\/4.4.0\/chart.umd.min.js\"><\/script><br \/>\n<script>\n\/\/ DATA\nvar Q = ['Q1','Q2','Q3','Q4'];\nvar CALL_SLA  = [0.61,0.72,0.84,0.91];\nvar EMAIL_SLA = [0.54,0.67,0.79,0.88];\nvar CHAT_SLA  = [0.58,0.70,0.83,0.92];\nvar CALL_CSAT = [3.4,3.7,4.1,4.5];\nvar EMAIL_CSAT= [3.2,3.6,4.0,4.4];\nvar CHAT_CSAT = [3.3,3.7,4.1,4.6];\nvar CALL_AB   = [9.1,6.8,3.8,1.6];\nvar CHAT_AB   = [10.3,5.6,2.6,0.7];<\/p>\n<p>var CYAN    = 'rgba(200,240,77,';\nvar GREEN   = 'rgba(0,255,136,';\nvar RED     = 'rgba(255,45,85,';\nvar GOLD    = 'rgba(255,214,10,';\nvar PURPLE  = 'rgba(191,95,255,';<\/p>\n<p>Chart.defaults.color = '#6a85a0';\nChart.defaults.font.family = \"'Share Tech Mono', monospace\";\nChart.defaults.font.size = 10;<\/p>\n<p>function lineChart(id, datasets, yMax, yLabel, targetLine) {\n  var ctx = document.getElementById(id);\n  if (!ctx) return;\n  var plugins = [];\n  if (targetLine) {\n    plugins.push({\n      id: 'target',\n      afterDraw: function(chart) {\n        var y = chart.scales.y.getPixelForValue(targetLine);\n        var ctx2 = chart.ctx;\n        ctx2.save();\n        ctx2.strokeStyle = 'rgba(255,214,10,0.4)';\n        ctx2.setLineDash([4,4]);\n        ctx2.lineWidth = 1;\n        ctx2.beginPath();\n        ctx2.moveTo(chart.chartArea.left, y);\n        ctx2.lineTo(chart.chartArea.right, y);\n        ctx2.stroke();\n        ctx2.fillStyle = 'rgba(255,214,10,0.8)';\n        ctx2.font = '9px \"Share Tech Mono\"';\n        ctx2.fillText('Target', chart.chartArea.right - 40, y - 4);\n        ctx2.restore();\n      }\n    });\n  }\n  return new Chart(ctx, {\n    type: 'line',\n    data: { labels: Q, datasets: datasets },\n    options: {\n      responsive: true, maintainAspectRatio: false, animation: { duration: 1200, easing: 'easeOutQuart' },\n      scales: {\n        x: { grid: { color: 'rgba(200,240,77,0.06)' }, ticks: { color: '#6a85a0' } },\n        y: { min: 0, max: yMax, grid: { color: 'rgba(200,240,77,0.06)' }, ticks: { color: '#6a85a0', callback: function(v){ return yLabel ? v + yLabel : v; } } }\n      },\n      plugins: { legend: { labels: { color: '#6a85a0', boxWidth: 12, font: { size: 9 } } } }\n    },\n    plugins: plugins\n  });\n}<\/p>\n<p>function barChart(id, datasets, yLabel) {\n  var ctx = document.getElementById(id);\n  if (!ctx) return;\n  return new Chart(ctx, {\n    type: 'bar',\n    data: { labels: Q, datasets: datasets },\n    options: {\n      responsive: true, maintainAspectRatio: false, animation: { duration: 1000 },\n      scales: {\n        x: { grid: { color: 'rgba(200,240,77,0.06)' }, ticks: { color: '#6a85a0' } },\n        y: { grid: { color: 'rgba(200,240,77,0.06)' }, ticks: { color: '#6a85a0', callback: function(v){ return v + yLabel; } } }\n      },\n      plugins: { legend: { labels: { color: '#6a85a0', boxWidth: 12 } } }\n    }\n  });\n}<\/p>\n<p>\/\/ INIT CHARTS\nwindow.addEventListener('load', function() {<\/p>\n<p>  \/\/ SLA overview\n  lineChart('sla-chart', [\n    { label:'Voice', data: CALL_SLA.map(function(v){return Math.round(v*100);}), borderColor: CYAN+'1)', backgroundColor: CYAN+'0.08)', tension: 0.4, pointRadius: 4, pointBackgroundColor: CYAN+'1)' },\n    { label:'Email', data: EMAIL_SLA.map(function(v){return Math.round(v*100);}), borderColor: GREEN+'1)', backgroundColor: GREEN+'0.08)', tension: 0.4, pointRadius: 4, pointBackgroundColor: GREEN+'1)' },\n    { label:'Chat',  data: CHAT_SLA.map(function(v){return Math.round(v*100);}), borderColor: PURPLE+'1)', backgroundColor: PURPLE+'0.08)', tension: 0.4, pointRadius: 4, pointBackgroundColor: PURPLE+'1)' }\n  ], 100, '%', 90);<\/p>\n<p>  \/\/ CSAT\n  lineChart('csat-chart', [\n    { label:'Voice', data: CALL_CSAT, borderColor: CYAN+'1)', backgroundColor: CYAN+'0.08)', tension: 0.4, pointRadius: 4 },\n    { label:'Email', data: EMAIL_CSAT, borderColor: GREEN+'1)', backgroundColor: GREEN+'0.08)', tension: 0.4, pointRadius: 4 },\n    { label:'Chat',  data: CHAT_CSAT, borderColor: PURPLE+'1)', backgroundColor: PURPLE+'0.08)', tension: 0.4, pointRadius: 4 }\n  ], 5, '\/5', 4.2);<\/p>\n<p>  \/\/ Abandon charts\n  barChart('call-abandon-chart', [\n    { label:'Abandon Rate %', data: CALL_AB,\n      backgroundColor: CALL_AB.map(function(v){ return v > 3 ? RED+'0.7)' : GREEN+'0.7)'; }),\n      borderColor: CALL_AB.map(function(v){ return v > 3 ? RED+'1)' : GREEN+'1)'; }),\n      borderWidth: 1 }\n  ], '%');<\/p>\n<p>  barChart('chat-abandon-chart', [\n    { label:'Abandon Rate %', data: CHAT_AB,\n      backgroundColor: CHAT_AB.map(function(v){ return v > 3 ? RED+'0.7)' : GREEN+'0.7)'; }),\n      borderColor: CHAT_AB.map(function(v){ return v > 3 ? RED+'1)' : GREEN+'1)'; }),\n      borderWidth: 1 }\n  ], '%');<\/p>\n<p>  \/\/ SLA all channels\n  lineChart('sla-all-chart', [\n    { label:'Voice SLA',  data: CALL_SLA.map(function(v){return Math.round(v*100);}), borderColor: CYAN+'1)', backgroundColor: CYAN+'0.06)', tension: 0.4, pointRadius: 5 },\n    { label:'Email SLA',  data: EMAIL_SLA.map(function(v){return Math.round(v*100);}), borderColor: GREEN+'1)', backgroundColor: GREEN+'0.06)', tension: 0.4, pointRadius: 5 },\n    { label:'Chat SLA',   data: CHAT_SLA.map(function(v){return Math.round(v*100);}), borderColor: PURPLE+'1)', backgroundColor: PURPLE+'0.06)', tension: 0.4, pointRadius: 5 }\n  ], 100, '%', 90);<\/p>\n<p>  \/\/ KPI counter animation\n  document.querySelectorAll('.kpi-value[data-target]').forEach(function(el) {\n    var target = parseFloat(el.dataset.target);\n    var suffix = el.dataset.suffix || '';\n    var start = 0;\n    var duration = 1400;\n    var startTime = null;\n    function step(ts) {\n      if (!startTime) startTime = ts;\n      var progress = Math.min((ts - startTime) \/ duration, 1);\n      var ease = 1 - Math.pow(1 - progress, 4);\n      var current = start + (target - start) * ease;\n      el.textContent = (target < 10 ? current.toFixed(1) : Math.round(current)) + suffix;\n      if (progress < 1) requestAnimationFrame(step);\n    }\n    requestAnimationFrame(step);\n  });\n\n  \/\/ Scroll reveal\n  var reveals = document.querySelectorAll('.reveal');\n  var obs = new IntersectionObserver(function(entries) {\n    entries.forEach(function(e, i) {\n      if (e.isIntersecting) {\n        setTimeout(function() { e.target.classList.add('in'); }, i * 60);\n      }\n    });\n  }, { threshold: 0.08 });\n  reveals.forEach(function(el) { obs.observe(el); });\n});\n\n\/\/ TAB SWITCHING\nfunction switchTab(tab) {\n  document.querySelectorAll('.tab').forEach(function(t) { t.classList.remove('active'); });\n  document.querySelectorAll('.panel').forEach(function(p) { p.classList.remove('active'); });\n  event.target.classList.add('active');\n  document.getElementById('panel-' + tab).classList.add('active');\n  \/\/ Reinit charts when switching to panels with charts\n  setTimeout(function() {\n    window.dispatchEvent(new Event('resize'));\n  }, 50);\n}\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u2190 Back to Portfolio Luis Ocadiz \u00b7 CX Leadership Director: Luis Ocadiz Reporting Period: FY \u2014 4 Quarters 100 Agents \u00b7 3 Channels \u00b7 1 Campaign Executive Performance Dashboard \/\/ Inbound Contact Center \u00b7 Voice \u00b7 Email \u00b7 Chat Overview Abandon Rate SLA Trends By Channel Team Inherited a struggling 100-agent contact center in Q1 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-217","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/luisocadiz.online\/index.php?rest_route=\/wp\/v2\/pages\/217","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/luisocadiz.online\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/luisocadiz.online\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/luisocadiz.online\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/luisocadiz.online\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=217"}],"version-history":[{"count":1,"href":"https:\/\/luisocadiz.online\/index.php?rest_route=\/wp\/v2\/pages\/217\/revisions"}],"predecessor-version":[{"id":218,"href":"https:\/\/luisocadiz.online\/index.php?rest_route=\/wp\/v2\/pages\/217\/revisions\/218"}],"wp:attachment":[{"href":"https:\/\/luisocadiz.online\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=217"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}