Quickvee Help Center

Hourly sales report — time-of-day breakdown

🚧 Draft article — source ticket MM-509 is still in To Do.

The Hourly Sales Report slices the day into one-hour buckets and shows how each hour performed — by sales count, net sales, cost of goods sold, gross profit, margin percentage, and tax collected. It's the answer to questions like "When is my store busiest?", "Which hour makes me the most profit?", and "Should I cut staffing in the evening?"

Access path: Quickvee Web → ReportingSales Reports → select Hourly Sales Report

1_ Quickvee Web (merchant backend) → Reporting → Sales Reports  (1)-20260610-125508.jpg
1_Sales Reports → select Hourly Sales Report (1)-20260610-125533.jpg


A combined bar-and-line chart sits at the top to show net sales and sale count visually side by side, and a 22-column hourly table sits below it for the full numeric breakdown.


The filter bar

1_The Filter Bar (6)-20260610-125606.jpg

Date range

  • Quick filters — Today, Yesterday, Last 7 Days, Last 30 Days

  • Manual — Start Date / End Date pickers for any custom range

When the date range spans more than one day, the hourly buckets aggregate across every day in the range9:00 AM–10:00 AM in a 7-day report shows the sum of seven 9 AM hours, not seven separate buckets. The report's purpose is to identify the time-of-day pattern, not the day-by-day trend (use Daily Sales Totals for that).

Outlet

For multi-store accounts, the Outlet dropdown selects which location. Each store has its own hourly pattern — what's the busiest hour at one store can be a slow hour at another.

Search & Export

  • Search — applies filters and reloads the chart and table

  • Export Report — downloads the report. Particularly useful here because the table is 22 columns wide and reads more naturally in Excel


The Sales by Hour of Day chart

1_The Sales by Hour of Day Chart (1)-20260610-125819.jpg


Series

What it shows

Net Sales (bars)

Each hour's net sales as a vertical bar. Bar height represents revenue for that hour

Sale Count (line/markers)

Each hour's transaction count overlaid as a separate series. Lets you spot mismatches — high sales with low transaction count means high-ticket hours; high count with modest sales means cheap-impulse hours

The X-axis runs from 12:00 AM to 10:00 PM (and beyond if the store has late activity). Hours with no activity show no bar.

Display Options

Display Options at the top right of the chart lets you toggle which metrics to display — for example, hiding Sale Count to see only revenue.

📷 Add screenshot: Sales by Hour of Day bar-and-line chart


Reading the detail table

Below the chart is a 22-column table — one column per hour of the day plus a Total column. Six rows of metrics span across every column.

1_Reading the Detail Table (2)-20260610-125703.jpg

Row

What it shows

Sales Count

Number of paid transactions completed in that hour. Refunded orders reduce the count

Net Sales

Revenue from sales completed in that hour after refunds and discounts. Pre-tax

Cost of goods sold

Cost basis of items sold in that hour, drawn from each product's configured cost price

Gross profit

Net Sales − Cost of goods sold for that hour

Margin (%)

Gross Profit ÷ Net Sales × 100 for that hour

Tax

Total tax collected on sales completed in that hour — the customer-paid tax for the hour

The Total column

The rightmost column sums every hour into a range-level total:

  • Total Sales Count — every transaction in the range

  • Total Net Sales — matches Daily Sales Totals' total minus tax

  • Total Cost of goods sold — total cost basis for the range

  • Total Gross profit — total dollars earned after cost

  • Total Marginblended margin across every hour (computed against Total Net Sales and Total Cost, not the arithmetic mean of hourly margins)

  • Total Tax — total tax remitted in the range


Common workflows

"When is my busiest hour?"

Quick filter → Last 7 Days → Search. Read the Sales Count row. The hour with the highest count is your busiest transaction hour — useful for staffing decisions.

"When do I make the most money?"

Read the Net Sales row. The hour with the highest net sales is your most revenue-rich hour — often (but not always) the same as the busiest hour. Compare both rows to spot hours where one diverges from the other.

"Which hour has the best margin?"

Read the Margin (%) row. Hours with higher margin are selling a different product mix — typically because category mix shifts through the day. A high-margin morning might be selling accessories while a lower-margin evening is selling commodity items.

"Should I open earlier or close later?"

Run for Last 30 Days to smooth out day-to-day noise. Look at the bookend hours — the first hour the store is open and the last hour. Compare their Gross Profit and Sales Count against the cost of labor that hour requires.

"Find the dead zone"

In the chart, find the hour where the bar is shortest (but non-zero). That's your slowest selling hour — a candidate for a happy-hour promotion, a featured product, or simply a reduced-staff hour.

"Reconcile against the day's totals"

Run for a single day. Compare Total Net Sales + Total Tax to that day's total in Daily Sales Totals — they should match. If they don't, an order's timestamp may have landed outside operating hours.

"Compare today against last week"

Run for Today, note the hourly pattern. Run for Last 7 Days, compare today's hour-by-hour shape against the rolling average. If today's evening is unusually slow vs. the 7-day evening pattern, something is off about today's traffic.


Important notes

Hours aggregate across the date range. For a multi-day report, 2:00 PM–3:00 PM sums every 2 PM hour in the range. Use Daily Sales Totals for per-day numbers.

Refunds reduce the hour they were processed, not the hour they were originally rung up. A refund at 4 PM today against an 11 AM sale yesterday reduces today's 4 PM bucket.

Cost is drawn from each product's configured cost price. Products with no configured cost contribute $0 to Cost of goods sold — which inflates Gross profit and Margin artificially. Custom items typically have no cost and can skew an hour's margin upward.

Net Sales is pre-tax. Customer-paid total per hour is Net Sales + Tax. To match till close, use Daily Sales Totals (which is gross-of-tax).

Hours with zero activity are not shown in the chart but appear with zero values in the table. The table is the complete reference.

Filters do not auto-apply. Changing dates or outlet requires tapping Search.

Margin is calculated against Net Sales (after discounts) and Cost (excluding tax). Total Margin is a blended figure weighted by hourly volume — not the average of the hourly margins.

Hour boundaries are merchant local time. The 9 AM bucket means the merchant's local 9 AM, not UTC. Cross-outlet comparisons assume each outlet's timezone is configured correctly.


Calculation reference

Field

Formula

Sales Count

Total Orders − Refunded Orders

Net Sales

Subtotal − Refund Amount − Store Credit Refund − Discounts − BOGO − Mix Match − Loyalty Points Redeemed

Cost of Goods Sold

Total Cost Price − Refunded Cost Price

Gross Profit

Net Sales − Cost Price

Margin (%)

(Gross Profit / Net Sales) × 100

Tax

Collected Tax − Refunded Tax

Discount components included: Coupon, BOGO, Mix Match, Loyalty Points. All 24 hours are displayed even if no data exists. Margin is calculated only when Net Sales > 0.

Internal reference

Source ticket: MM-509 — Sales - Hourly Sales Report