Enquire Now

Chris – Test

 

 

Group WIP / Open Order Dashboard

Senior management view of current open sales orders • September 2026 extract

ETA note: the Estimated Shipping Date values in this extract are all stored as the first day of a month, so they have been treated as monthly shipping estimates rather than exact dispatch dates. This avoids presenting misleading overdue or 7/14-day measures.

Open Order Value
Open Orders
Due This Month
Due Next Month
Future Revenue
No Valid ETA

Revenue by Company

Open-order value by group entity

Revenue by Expected Shipping Month

Based on monthly shipping estimates in the source extract

Top Customers by Open Order Value

Top 10 Open Orders

OrderCompanyCustomerETAValue

Exceptions / Actions

Orders on credit/payment/operational hold, back order, with blank status, or missing ETA. High-value exceptions are highlighted.
OrderCompanyStatusCustomerEstimated ShippingTimingRiskValue

${esc(k)}
${GBP.format(v)}

`).join('')||'

No data for current filters.

';}function esc(s){return String(s??'').replace(/[&"']/g,c=>({'&':'&','':'>','"':'"',"'":'''}[c]))}function render(){const a=getFiltered(),total=sum(a,o=>o.value),thisM=sum(a.filter(o=>o.timing==='This Month'),o=>o.value),nextM=sum(a.filter(o=>o.timing==='Next Month'),o=>o.value),future=sum(a.filter(o=>o.timing==='Future'),o=>o.value),noEta=sum(a.filter(o=>o.timing==='No Valid ETA'),o=>o.value);document.getElementById('kTotal').textContent=GBP.format(total);document.getElementById('kTotalSub').textContent=NUM.format(a.length)+' sales orders';document.getElementById('kOrders').textContent=NUM.format(a.length);document.getElementById('kAvg').textContent='Average '+GBP.format(a.length?total/a.length:0);document.getElementById('kThis').textContent=GBP.format(thisM);document.getElementById('kThisPct').textContent=pct(thisM,total);document.getElementById('kNext').textContent=GBP.format(nextM);document.getElementById('kNextPct').textContent=pct(nextM,total);document.getElementById('kFuture').textContent=GBP.format(future);document.getElementById('kFuturePct').textContent=pct(future,total);document.getElementById('kNoEta').textContent=GBP.format(noEta);document.getElementById('kNoEtaPct').textContent=pct(noEta,total);document.getElementById('entityBars').innerHTML=barHTML(aggregate(a,'entity'));document.getElementById('monthBars').innerHTML=barHTML(aggregate(a,'ship_month'));document.getElementById('customerBars').innerHTML=barHTML(aggregate(a,'customer'));const top=[...a].sort((x,y)=>y.value-x.value).slice(0,10);document.getElementById('topOrders').innerHTML=top.map(o=>`

${esc(o.order)}${esc(o.entity)}${esc(o.customer)}${esc(o.ship_date||'—')}${GBP.format(o.value)}

`).join('');const exc=[...a].filter(o=>o.risk!=='OK').sort((x,y)=>y.value-x.value);document.getElementById('exceptions').innerHTML=exc.map(o=>`

${esc(o.order)}${esc(o.entity)}${esc(o.status)}${esc(o.customer)}${esc(o.ship_date||'—')}${esc(o.timing)}${esc(o.risk)}${GBP.format(o.value)}

`).join('')||'

No exceptions for current filters.

';}function resetFilters(){['entity','status','timing'].forEach(id=>document.getElementById(id).value='');document.getElementById('search').value='';render();}['entity','status','timing'].forEach(id=>document.getElementById(id).addEventListener('change',render));document.getElementById('search').addEventListener('input',render);render();

Contact the Experts

Contact us today & see how we can help you.
We'll get back to you shortly.

  • This field is for validation purposes and should be left unchanged.
  • This field is hidden when viewing the form