Contact Centre Forecast vs Actual (Plotly)
Half-hourly offered calls against forecast with the rostered agent line on a second axis, exposing the mid-morning under-staffing.
Rendering…
Make it your own.
{
"data": [
{
"type": "scatter", "mode": "lines+markers", "name": "Forecast offered",
"x": ["08:00","08:30","09:00","09:30","10:00","10:30","11:00","11:30","12:00","12:30","13:00","13:30","14:00","14:30","15:00","15:30","16:00","16:30"],
"y": [180,260,410,520,560,540,505,470,430,395,410,455,480,470,440,380,300,210],
"line": {"color": "#0ea5e9", "dash": "dot"}
},
{
"type": "scatter", "mode": "lines+markers", "name": "Actual offered",
"x": ["08:00","08:30","09:00","09:30","10:00","10:30","11:00","11:30","12:00","12:30","13:00","13:30","14:00","14:30","15:00","15:30","16:00","16:30"],
"y": [172,268,447,596,631,588,529,462,418,402,431,489,522,498,451,372,288,196],
"line": {"color": "#f97316"}
},
{
"type": "bar", "name": "Agents rostered", "yaxis": "y2", "opacity": 0.45,
"x": ["08:00","08:30","09:00","09:30","10:00","10:30","11:00","11:30","12:00","12:30","13:00","13:30","14:00","14:30","15:00","15:30","16:00","16:30"],
"y": [22,26,34,40,42,42,40,38,34,32,34,38,40,40,38,32,26,20],
"marker": {"color": "#94a3b8"}
}
],
"layout": {
"title": "Contact centre - forecast against actual offered calls, Monday",
"xaxis": {"title": "Half-hour interval"},
"yaxis": {"title": "Calls offered"},
"yaxis2": {"title": "Agents rostered", "overlaying": "y", "side": "right", "showgrid": false},
"legend": {"orientation": "h", "y": -0.25},
"bargap": 0.3
}
}