Skip to main content
Card class: Non-HeroCategory: Ecommerce Platform

At a glance

Revenue by hour-of-day (00 to 23), aggregated across the 30D window. The £-weighted version of Peak Order Hours; reveals when the business actually earns money.
What it countsSUM(totalPrice) GROUP BY hour(createdAt) over the 30D window. Each hour-bucket is total customer-paid revenue placed in that hour across the period.
VAT / tax treatmentInherits store’s taxesIncluded mode.
ShippingIncluded.
DiscountsDeducted (post-discount).
RefundsNOT deducted.
Cancelled / voided ordersIncluded if Shopify indexed them.
CurrencyMulti-currency arithmetic without FX.
Channels / sourcesAll channels. POS sales create daytime humps in store-opening hours; B2B sales typically cluster in office hours.
Time window30D (default)
Alert triggerNone; descriptive distribution.
Rolesowner, marketing

Calculation

Calculated automatically from your Shopify data. See the At a glance summary above for what the metric tracks and the worked example below for a typical reading.

Worked example

A UK home-décor DTC brand on Shopify, GMT customers primarily UK + EU. 30D window 12 Apr 26 to 12 May 26.
Hour-band (UK time)RevenueShareNote
06:00-09:00£14,2004.1%Pre-work browse-to-buy
09:00-12:00£28,6008.3%Morning office
12:00-14:00£42,80012.5%Lunch peak
14:00-17:00£37,40010.9%Afternoon coast
17:00-20:00£58,20016.9%After-work peak
20:00-23:00£94,30027.4%Evening peak, primary buying window
23:00-00:00£29,8008.7%Late-evening spillover
00:00-06:00£37,80011.0%Overnight (some EU + insomniac UK)
Total£343,100100%
Six things to notice:
  1. Evening dominates revenue more than orders. The 20:00-23:00 slot is 27% of revenue but only ~22% of order count. Why? AOV is higher in the evening; customers spend more per order when relaxed at home with a cup of tea.
  2. Lunch peak is real but moderate. 12:00-14:00 is 12.5% of revenue. Sufficient to justify ad-pacing but not the primary target.
  3. The £/order signal varies. Compute revenue-per-order per hour: evening is ~£68 average, lunch is ~£52. The brand sells fundamentally different baskets to evening customers (premium homewares) vs lunchtime customers (impulse small-ticket).
  4. Email send-time decision. Send at 17:00-18:00 to capture the after-work peak, NOT 20:00 (peak buy time, when emails get lost in evening inbox-flood). Test 18:30 vs 16:00 for incremental optimisation.
  5. Site-reliability is paramount during 20:00-23:00. A 30-min outage during this window costs ~~30% of an evening’s revenue (~~£15-25k for this brand). Off-peak outages cost an order of magnitude less.
  6. Customer-service staffing should mirror. Expect order-related queries to peak the next morning (10:00-12:00); staff customer-service accordingly. Most brands under-staff Mon morning despite Sun evening being the heaviest buy window.

Sibling cards merchants should reference together

Revenue by Hour is the £-side; pair with the count and pattern siblings:
CardWhy pair it with Revenue by Hour
Peak Order HoursOrder-count companion. Compare to find AOV-per-hour.
Revenue by Day of WeekDay-level cousin; combine for specific-cell decisions (e.g. Friday 8pm).
Weekend vs WeekdayAggregated DoW summary.
Total RevenueAggregate; hour buckets sum to it.
Average Order ValueThe implicit AOV-per-hour ratio when paired with Peak Hours.
Top Discount CodesPromo-driven hourly spikes correlate with email-send times.

Reconciling against the vendor’s own dashboard

Where to look in Shopify Admin:
Shopify Admin → Analytics → Reports → “Total sales over time” with hourly granularity (Shopify Plus only)
The most direct equivalent. Pick the same window. Hour-bucket totals should match this card to within sync-lag tolerance, allowing for time-zone offset. Other Shopify Admin views:
  • Live View: real-time today’s-revenue ticker; useful for verifying current-day peaks.
  • Apps like Glew, Polar Analytics: hourly revenue breakdowns standard.
Why our number may legitimately differ from Shopify:
ReasonDirectionWhy
Time zoneHour-bucket shiftUTC vs store time zone. Convert manually for comparison.
Refund treatmentEitherShopify Net Sales adjust for refunds; we show gross.
Multi-currencyAggregate distortionWe don’t FX-normalise; per-currency hourly slices are clean, blended is not.
Channel filterEitherReports filtered to “Online Store” only differ from blended.
Sync lagOurs lower for “today”Most-recent 5-15 min may not be in.
Cross-connector reconciliation:
CardExpected relationshipWhat causes legitimate divergence
google_analytics.ga_revenue_by_hourShould track shapeGA4 misses 10-25% of orders due to ad blockers; hourly shape close, levels lower.
klaviyo.kl_revenue_by_send_timeLagged correlationEmail-attributed revenue lags send-time by 1-3 hours; pair to optimise send-time.

Known limitations / merchant FAQs

Why is the chart in UTC? Vortex IQ uses UTC for consistency. Convert by subtracting your customer’s primary time zone offset. UK summer = UTC+1; US Pacific = UTC-7/-8. My peak revenue hour and peak order hour differ. Why? AOV varies by hour. Evening shoppers tend to buy higher-AOV baskets than midday or morning shoppers. The order-peak captures volume; the revenue-peak captures monetary value. Both matter. Should I run flash sales at peak revenue hour or peak order hour? Generally peak revenue hour is the right target if your goal is total $. But if you’re testing a discount code’s adoption rate, peak order hour gives more redemption volume to evaluate. Why is overnight revenue meaningful in some windows? Three usual reasons:
  1. Customers in different time zones. UK store getting 11% overnight is mostly EU + insomniac domestic.
  2. Subscription billings. Recurring orders trigger automatically at billing-day midnight; appears as overnight revenue.
  3. B2B / wholesale with international buyers placing orders during their workday.
My multi-region store, can I split the curve by region? Not on this card directly. Filter the underlying orders by ship-to country in Shopify Admin for per-region hourly views. Multi-region blending is the main reason hourly curves look “softer” than they should; segmentation usually reveals sharper peaks. Why is my Black Friday hourly curve different? BFCM and major sale events have completely different hourly distributions:
  • Pre-launch midnight rush: sales often hit hardest at 00:00 launch.
  • Mid-morning second wave: when customers wake to news of the sale.
  • Late-night final push: customers grabbing deals before sale ends.
Don’t draw conclusions about normal hourly patterns from BFCM data; exclude the sale week from your 30D window for clean reads. Does subscription billing distort my chart? Mildly. Subscription billings hit on the original-purchase-time recurring; if many subscriptions started 9am Tuesday, the next billings appear as 9am Tuesday revenue. The pattern reinforces over time. Action playbook for using this card:
  1. Identify peak revenue hour: that’s when ad-spend ROI is highest.
  2. Identify low revenue hour: experiment with off-peak budget shifts.
  3. Email send-time: 1-3 hours before peak revenue hour.
  4. Site-reliability monitoring: monitor most intensively in peak windows.
  5. Customer-service staffing: lag-staff for the morning following peak hours.
  6. Ops / fulfilment: pick-and-pack workflow can be timed to absorb the previous evening’s order volume by next-morning shipping cut-off.

Tracked live in Vortex IQ Nerve Centre

Revenue by Hour is one of hundreds of KPI pulses Vortex IQ tracks across Shopify and 70+ other ecommerce connectors. Nerve Centre runs the detection layer; Vortex Mind investigates the cause when something moves; Ask Viq lets you interrogate any number in plain English. Start for free or book a demo to see this metric running on your own data.