Every Operation Has This Data. Almost None Use It.
If your operation logs timestamps — when an order came in, when a ticket was opened, when a call arrived, when a specimen was received — you have everything you need to build a data-driven staffing model. Not a gut-feel one. Not a "we've always done it this way" one. A model built from your actual volume patterns, updated every time you run it.
The question is never whether the data exists. It almost always does. The question is whether anyone has ever pulled it into a shape that answers the staffing question directly: when does volume hit, how reliably does it hit, and what does the distribution look like on a bad day versus a typical one?
"Your ticketing system, your LIS, your order management platform — they're all logging timestamps that nobody is analyzing for staffing purposes."
This notebook closes that gap. You point it at a Google Sheet containing your timestamps, set two configuration values, and run it. What comes out is a self-contained interactive HTML report with hourly distributions, a day-of-week heatmap, a median arrival curve, and a staffing guidance table — all derived from your actual data.
What Operations This Works For
The only requirement is a datetime column. That's it. The notebook auto-detects the column name, parses the timestamps, and builds the analysis. Everything else — the labels, the report title, the staffing action text — is configurable in two lines.
The Only Config You Need
Open the notebook in Google Colab. Cell 2 is the only cell you edit:
# Your Google Sheet URL — share as "Anyone with link can view"
GOOGLE_SHEET_URL = "https://docs.google.com/spreadsheets/d/YOUR_SHEET_ID/edit"
# What does one row represent?
# "order", "call", "ticket", "transaction", "visit", "specimen"...
EVENT_LABEL = "order"
# What is your operation called? Used in the report title.
OPERATION_NAME = "Fulfillment Operations"
That's the entire configuration. The notebook handles the rest — column detection, date parsing, distribution math, chart generation, report output.
No datetime column name convention required. The notebook scans your column names for keywords like "date", "time", "timestamp", "created", "received", "arrival", "submitted" and picks the best match. If your column is called something unusual, it falls back to the first column that parses as a datetime. You'll see which column was detected in the Cell 4 output.
How It Works
-
Export your event timestamps to Google Sheets
One column of datetimes is all you need. Additional columns are ignored. 90+ days gives reliable distributions; 6-12 months surfaces seasonal patterns.
-
Share the sheet and paste the URL into Cell 2
File → Share → "Anyone with the link can view" → Copy link. Paste into GOOGLE_SHEET_URL. Set your EVENT_LABEL and OPERATION_NAME.
-
Runtime → Run All
The notebook builds a daily volume matrix (one row per calendar date, one column per hour), computes median, IQR, and P5/P95 distributions per hour, and generates all charts.
-
Download the HTML report
Cell 7 triggers an automatic download. One file, no dependencies, opens in any browser. Email it, share it on a drive, drop it in Slack.
What the Report Shows
The output is four analytical layers, each designed to answer a different staffing question.
Hourly distribution chart — not just average volume by hour, but the full distribution: median, interquartile range (Q1–Q3), and 5th–95th percentile whiskers. The IQR tells you what a typical day looks like. The P95 tells you what you need to be ready for on a busy day. Peak zone hours are shaded automatically.
Day × Hour heatmap — average arrivals for every combination of day of week and hour of day. Monday 10 AM looks different from Thursday 10 AM looks different from Saturday 10 AM. The heatmap makes that visible in a single glance, with hover tooltips showing exact values.
Median arrival curve — the median per hour plotted as a line chart with IQR band, top-5 hours highlighted in gold. Clean, readable, presentable to anyone.
Staffing guidance table — every hour classified as PEAK, MOD, or LOW based on where it falls relative to the 75th percentile of hourly medians. Each zone gets a recommended action derived from your configuration. Not generic advice — your operation name and event label are woven into the text.
The report is a file, not a dashboard. No login, no BI license, no sharing permissions to configure. A single HTML file that opens in any browser. Send it in an email and the recipient sees the full interactive report — hover tooltips, all charts, staffing table — with zero setup.
The Free Template
The Google Sheets template is the manual version of the same analysis. It uses three helper columns (hour, date integer, day-of-week) extracted from your timestamp column, then builds hourly averages, a day × hour breakdown, and a staffing zone classification using COUNTIF and SUMPRODUCT formulas — no pivot tables, no manual refresh.
Paste your timestamps into column A, and all the metrics update automatically. It won't give you full percentile distributions — that requires the daily volume matrix the notebook builds — but it gives you mean arrivals per hour, day × hour averages, and zone classifications that update live with your data.
Mean vs. median. The free template shows mean arrivals per hour. The notebook gives you the full distribution — median, IQR, P5/P95. For staffing purposes, median is usually more useful than mean because it's robust to outlier days. If your operation has occasional volume spikes that are 3× normal, the mean overstates your typical day. The notebook surfaces both.
What You Get
Free
Google Sheets template with helper columns pre-built and sample data loaded. Formulas update when you paste your own timestamps. Shows hourly means, day × hour breakdown, and zone classification.
Get the TemplateNotebook
Full Google Colab notebook — Google Sheets connector, full percentile distributions (median, IQR, P5/P95), day × hour heatmap with hover tooltips, median arrival curve, staffing guidance table, and self-contained interactive HTML output.
Buy the NotebookDone For You
I connect it to your actual data source, configure it for your operation and team structure, and walk your team through interpreting the output. Starting at $5,000.
Book a Free 30-Min Call →Wrapping Up
Staffing conversations that start with "it feels like we're always busy around 10 AM" end with a gut-feel schedule that's right about 60% of the time. Staffing conversations that start with "here's our median volume by hour with IQR bands and a day × hour breakdown" end with an evidence-based model that can be updated monthly as patterns shift.
The data is already in your system. The notebook just reads it.
Free Template
Get the Google Sheets template free.
Pre-loaded with sample data. Paste your timestamps in and all metrics update automatically.