Blame | Last modification | View Log | RSS feed
## LMS Dashboards — cross-region management roll-up (SOP §18). Loaded into #main-content by the sidebar.## Model: regions[], summaryJson, stateFunnelJson, slaHeatmapJson, ageingJson, fromDate, toDate.## Styling in resources/css/lms-dashboard.css; behaviour in resources/js/lms-dashboard.js (window.LmsDash).<section class="wrapper lms-dash"><ol class="breadcrumb"><li><i class="fa fa-home"></i><a href="${rc.contextPath}/dashboard">Home</a></li><li><a href="#" class="lead">Leads</a></li><li>LMS Dashboards</li></ol><div class="lms-head"><div><div class="lms-crumb">Management · Cross-region roll-up</div><h1>Dashboards</h1><div class="lms-sub">Funnel, SLA compliance and ageing across regions. Derived from the lead record.</div></div><div class="lms-filters"><select id="lmsFilterRegion" title="Region"><option value="">All regions</option>#foreach($r in $regions)<option value="$r.getId()">$!r.getName()#if($r.getRegionCode()) ($r.getRegionCode())#end</option>#end</select><input type="date" id="lmsFilterFrom" value="$!fromDate" title="From (created)"><input type="date" id="lmsFilterTo" value="$!toDate" title="To (created)"></div></div><!-- Roll-up KPIs --><div class="lms-kpis" id="lmsDashKpis"></div><!-- State funnel --><div class="lms-card"><h2>State funnel — New → Onboarded by region</h2><div class="desc">Reached counts per region · click a row to list that region's leads.</div><div id="lmsStateFunnel"></div><div class="lms-label" style="margin-top:14px;">Conversion % by region</div><div style="position:relative; height:200px;"><canvas id="lmsConvChart"></canvas></div></div><div class="lms-grid lms-g2"><div class="lms-card"><h2>SLA compliance — owner heat-map</h2><div class="desc">On-time first contact % · BM × recent weeks.</div><div id="lmsHeatmap"></div><div class="lms-note">Green ≥ 90% · red < 40%. SLA = first contact within 5 hrs of creation (SOP §11).</div></div><div class="lms-card"><h2>Ageing — stuck open leads</h2><div class="desc">Open leads untouched > 7 days, by stage · click to list.</div><div id="lmsAgeing"></div></div></div><div class="lms-grid lms-g2"><!-- Report suite (SOP §18.2) with honest coverage badges --><div class="lms-card"><h2>Standard dashboards (SOP §18.2)</h2><div class="desc">What ships from the lead record today vs what needs its source system.</div><div class="report" data-report="state"><span class="r-ico">📈</span><div><div class="r-name">State Funnel <span class="r-badge live">Live</span></div><div class="r-desc">New → onboarded by region, conversion, SLA%.</div></div></div><div class="report" data-report="sla"><span class="r-ico">⚖️</span><div><div class="r-name">SLA Compliance <span class="r-badge live">Live</span></div><div class="r-desc">% first-contact within SLA, owner heat-map.</div></div></div><div class="report" data-report="ageing"><span class="r-ico">⏳</span><div><div class="r-name">Ageing <span class="r-badge live">Live</span></div><div class="r-desc">Stuck by stage, days since last action.</div></div></div><div class="report" data-report="mgmt"><span class="r-ico">👑</span><div><div class="r-name">Management Roll-up <span class="r-badge live">Live</span></div><div class="r-desc">Cross-region leads, onboardings, value.</div></div></div><div class="report" data-report="bgc"><span class="r-ico">📊</span><div><div class="r-name">BGC Daily <span class="r-badge partial">Partial</span></div><div class="r-desc">Created + dispositions real; call volume is a proxy — no telephony yet.</div></div></div><div class="report" data-report="audit"><span class="r-ico">🧪</span><div><div class="r-name">Audit Hygiene <span class="r-badge partial">Partial</span></div><div class="r-desc">Missing dispositions / HOLD shown; DND & recording flags pending source.</div></div></div><div class="report" data-report="rbm"><span class="r-ico">🔄</span><div><div class="r-name">RBM Servicing <span class="r-badge soon">Pending data</span></div><div class="r-desc">Repeat-order / complaint / TAT need order + ticket data.</div></div></div></div><!-- What to fix --><div class="lms-card"><h2>What to fix</h2><div class="desc">Where the funnel is leaking most.</div><div class="callout"><div class="c-head">Regions with low conversion</div><div class="c-desc">Rows flagged red in the state funnel are converting under 20%.</div><div class="c-act">→ Open the region row to review its stuck leads.</div></div><div class="callout" style="border-left-color:var(--warn);"><div class="c-head">SLA slipping</div><div class="c-desc">Amber heat-map cells / rows sit below 60% on-time first contact.</div><div class="c-act">→ Chase the owner's breached-no-contact queue in Command Center.</div></div><div class="callout" style="border-left-color:var(--navy);"><div class="c-head">Ageing backlog</div><div class="c-desc">Open leads untouched > 7 days lose revival odds fast.</div><div class="c-act">→ Click an ageing stage to work the oldest first.</div></div></div></div></section><script>(function () {var summary = $summaryJson;var stateFunnel = $stateFunnelJson;var slaHeatmap = $slaHeatmapJson;var ageing = $ageingJson;if (window.LmsDash) {window.LmsDash.initDashboards({summary: summary,stateFunnel: stateFunnel,slaHeatmap: slaHeatmap,ageing: ageing,regionId: $('#lmsFilterRegion').val() || '',from: '$!fromDate',to: '$!toDate'});}})();</script>