Table of Contents
- Key Highlights
- Introduction
- What “cumulative” means and when to use a running total
- How to enable cumulative view in Shopify Analytics
- Using WITH CUMULATIVE_VALUES in ShopifyQL: practical examples
- The three canonical uses of cumulative views: on its own, with targets, and with prior-period comparisons
- Real-world scenarios: three merchant case studies
- How cumulative values are calculated — technical overview and SQL analogies
- Which metrics should be cumulative — a taxonomy
- Common pitfalls and how to avoid them
- Designing dashboards that use cumulative views effectively
- How to pair cumulative metrics with forecasting and planning
- Practical checklist for adopting cumulative metrics in your reporting workflow
- Examples of ShopifyQL queries for common cumulative analyses
- Governance, documentation and communicating cumulative analytics
- Where cumulative metrics integrate with broader analytics strategy
- Final considerations on interpretation and reporting hygiene
- FAQ
Key Highlights
- Shopify now supports cumulative (running total) visualizations in Analytics and ShopifyQL, letting merchants view how metrics build over a period rather than isolated daily values.
- Cumulative views are most powerful when used alone to reveal growth patterns, paired with target lines to monitor pacing, or compared against prior periods to detect trajectory shifts.
- Proper interpretation requires attention to metric types (counts vs rates), date ranges, seasonality and chart design; misuse can obscure declines or distort averages.
Introduction
Retail and subscription businesses measure success by the totals they reach: revenue, orders, signups, returning customers. Daily volatility can obscure whether those totals are tracking toward strategic goals. Shopify’s addition of cumulative metrics to Analytics — available via a toggle in the Visualization panel or by appending WITH CUMULATIVE_VALUES to a ShopifyQL query — converts day-by-day series into running totals. That simple shift clarifies momentum, simplifies pacing, and makes comparisons across periods far more intuitive.
Turning spikes and troughs into a single upward trajectory helps teams answer practical questions fast: Are we on pace to hit our weekly revenue target? Is this campaign generating more cumulative signups than last month? How quickly are new customers adding to lifetime value? The mechanics are straightforward, but the consequences for reporting, forecasting and decision-making are significant. This article explains what cumulative metrics do, how to use them in Shopify Analytics and ShopifyQL, where they add the most value, and how to avoid common interpretation mistakes.
What “cumulative” means and when to use a running total
A cumulative visualization plots a running total of a metric over a chosen date range. For a given day, the chart point equals that day’s value plus the sum of all prior values within the range. If your daily revenue on day 1 through day 7 is $100, $50, $200, $75, $125, $0, $150, the cumulative values become $100, $150, $350, $425, $550, $550, $700.
When to prefer cumulative views:
- Goal pacing: Leaders ask if current progress will hit monthly, weekly or campaign targets. Running totals show directly whether the trend line will reach the goal.
- Campaign-level performance: Running totals demonstrate incremental lift over an entire campaign window better than daily noise.
- Long-window aggregation: When the story is total accumulation across weeks or months, cumulative charts make the end result obvious without requiring mental arithmetic.
- When comparing two periods’ trajectories: Layering a prior-period cumulative series reveals whether the current period is gaining ground earlier or later than the comparison.
When cumulative views mislead:
- When you need to inspect volatility, daily dips, or cyclical patterns. Running totals smooth those features away.
- For rate metrics like conversion rate or average order value. Cumulative sums of rates are mathematically problematic and usually not meaningful.
- When date ranges differ in length or are not normalized, which makes direct comparisons invalid unless adjusted.
A running-total view provides clarity on accumulation. Proper choice of metric and range ensures clarity, not confusion.
How to enable cumulative view in Shopify Analytics
Shopify added a simple user control for merchants who want running totals without writing queries.
Steps inside Shopify Analytics dashboard:
- Open the report or custom visualization that displays the time-series chart.
- Locate the Visualization panel — where chart type, date range and other display options live.
- Toggle Cumulative (or similar checkbox) to turn daily values into a running total across the selected date range.
Behavior to expect:
- The chart recalculates every point as the sum of that day’s value plus prior days’ values within the range.
- If you add a target line, the cumulative series appears against that static target so you can see pacing.
- Adding a prior-period comparison overlays a cumulative series for the comparison dates, enabling direct trajectory comparison.
Visual design matters: Shopify’s implementation typically draws the cumulative series as a single rising line. When comparing two periods, use contrasting colors and include dashed or labeled lines to avoid confusion. Legends, tooltips and clear axis labels help readers interpret cumulative values versus daily averages.
Using WITH CUMULATIVE_VALUES in ShopifyQL: practical examples
ShopifyQL supports the same capability for advanced analytics and embedded reports. Add WITH CUMULATIVE_VALUES to your query to request running totals and return a result set where each row’s value is cumulative up to that row’s date.
Basic sales example Query: daily revenue cumulative for the last 30 days.
SELECT
date,
sum(amount) AS daily_revenue
FROM orders
WHERE processed_at >= '2026-04-01' AND processed_at < '2026-05-01'
GROUP BY date
ORDER BY date
WITH CUMULATIVE_VALUES
Output interpretation: Each daily_revenue value in the returned table is the running total from April 1 up to that date. Use that output to plot a cumulative chart in a custom report.
Comparing with prior period in ShopifyQL To compare this month’s cumulative revenue against the same month last year, you can run two queries or a single query that unions two time-shifted datasets and plots them. Example simplified pattern:
SELECT
date,
sum(amount) AS revenue,
'current' AS period
FROM orders
WHERE processed_at >= '2026-04-01' AND processed_at < '2026-05-01'
GROUP BY date
UNION
SELECT
date + interval '1 year' AS date, -- shift last year forward for alignment
sum(amount) AS revenue,
'prior' AS period
FROM orders
WHERE processed_at >= '2025-04-01' AND processed_at < '2025-05-01'
GROUP BY date
ORDER BY date, period
WITH CUMULATIVE_VALUES
Shifting the prior-period dates into the current window aligns the trajectories so they overlay meaningfully. The cumulative clause then computes running totals independently for each series.
Caveats and tips:
- ShopifyQL computes cumulative values in the order returned. Ensure ORDER BY date and any partition by period is correct.
- Use partitioning (if supported) to compute cumulative values separately for different categories (e.g., by marketing channel).
- Avoid applying cumulative to already-aggregated percentages; compute proper numerators and denominators first then display derived rates.
If you need moving-day cumulative (reset per week or per month), partition the query accordingly or run separate queries for each period.
The three canonical uses of cumulative views: on its own, with targets, and with prior-period comparisons
Shopify highlights three primary ways to apply cumulative views. Each approach answers different business questions.
Cumulative on its own: observing growth patterns Plotting cumulative revenue, orders or signups across a campaign window shows how easily teams can reach their thresholds. The slope reveals acquisition velocity: a steep slope early indicates concentrated activity (e.g., an initial email blast); a steady slope suggests consistent daily performance, often seen with evergreen marketing or paid media.
Practical uses:
- Track daily donation totals during a charity drive.
- Monitor total Black Friday sales across a weekend.
- Follow month-to-date subscription starts for a new plan.
Interpretation guidance:
- The slope (first derivative) indicates velocity; the change in slope indicates acceleration or deceleration.
- Plateaus mean no accumulation — investigate root causes rather than assume steady state.
- Sudden jumps point to promotions, large orders or batch processing; annotate charts to connect causes.
Cumulative with targets: pacing and the “on-pace” question Targets convert abstract ambitions into measurable lines. A target line on a cumulative chart creates a simple visual test: is the running total above or below the target trajectory?
How to construct a target line:
- Even pacing: divide the target by the number of days and plot a straight-line target from zero to the goal.
- Weighted pacing: if historical activity concentrates at certain periods (weekends, launch days), weight the target line accordingly.
- Dynamic targets: use weekly or daily adjusted targets reflecting seasonality or inventory constraints.
Example: A merchant wants $60,000 in revenue by month-end (30 days). An even-paced target is $2,000 per day, which plotted cumulatively becomes $2,000, $4,000, $6,000,... $60,000. Overlaying actual cumulative revenue immediately shows whether the merchant is ahead or behind pace.
Best practice:
- Keep the target annotation visible and labeled.
- Add a margin band (e.g., 10% above/below) to indicate acceptable variance.
- Update targets mid-period only with clear notes, as repositioning a target retroactively confuses stakeholders.
Cumulative with prior-period comparisons: trajectory not just totals Two periods may have equal totals, but their paths can differ. Overlaying cumulative series for current and prior periods highlights when momentum changes happened.
Example scenarios:
- A store that pulled ahead early this year but slowed in the last week will have two lines that cross.
- A subscription product that ramped quickly last year due to a webinar but is ramping slower this year will show a shallower current line compared to prior.
Interpreting crossovers:
- If the current cumulative line crosses above the prior line early and remains above, the business is outperforming the prior period on head starts and sustained performance.
- If lines converge late in the period, recent initiatives may be compensating for a weak start.
Use anomalies and annotations:
- Always annotate events like marketing pushes, stockouts, price changes and site incidents to make comparisons actionable.
- Pair comparisons with normalized metrics when lengths differ or holidays shift.
Real-world scenarios: three merchant case studies
Concrete examples help translate the cumulative concept into decisions.
Case 1 — DTC apparel brand preparing for Black Friday Situation: The brand sets a Black Friday weekend revenue target of $300,000 across a 4-day sale. Past data shows sales concentrate in the first 24 hours.
How cumulative helps:
- Before the sale, the team plots an even-paced target and a weighted target that assumes 50% of revenue in day one and the rest evenly across remaining days.
- During the sale, the cumulative line updates in near real-time. If day one underperforms the weighted target but matches the even pace, the team decides whether to push an extra promotion on day two.
- At the end, the cumulative view illustrates whether the marketing increments delivered sustained lift or merely front-loaded sales.
Decision outcome:
- Early lag triggers a flash discount on day two. The cumulative trajectory after the promotion shows acceleration, and the brand hits 95% of the target by the close.
Case 2 — Subscription box service launching a referral campaign Situation: The service expects 1,000 new subscribers over a 30-day campaign. Referral bonuses incentivize signups, but signups are resource-limited by fulfillment capacity.
How cumulative helps:
- The operations team uses the cumulative chart to monitor how close they are to capacity thresholds.
- When the cumulative subscriptions approach 75% of capacity half-way through the campaign, the team throttles referral incentives to avoid overcommitment.
- Comparing current cumulative signups against the previous campaign surfaces whether the new referral creative improved long-term traction.
Decision outcome:
- Throttling prevented fulfillment bottlenecks and kept churn low. Comparing cumulative curves showed the referral improved earlier-stage momentum but overall conversion rate stayed similar.
Case 3 — Marketing agency tracking campaign ROI Situation: An agency measures attributed revenue from a 90-day paid social campaign and compares it to the same period last year to validate strategy changes.
How cumulative helps:
- Cumulative revenue by campaign lets the agency see the incremental lift day by day and how quickly ad spend converts into sales.
- The agency overlays cost cumulative to calculate cumulative ROAS (revenue divided by spend). They compute cumulative revenue and cumulative spend separately, then form the ratio by date.
- The agency notes that although daily ROAS fluctuates, cumulative ROAS provides a smoother, more strategic view of whether the campaign will meet performance targets by the end.
Decision outcome:
- Seeing cumulative ROAS trending above target justified increasing budget late in the campaign. Had the agency relied solely on day-to-day ROAS swings, it might have cut budget prematurely.
How cumulative values are calculated — technical overview and SQL analogies
Understanding the math prevents misuse. Cumulative values represent aggregation across an ordered series.
SQL window function equivalent: The typical SQL approach uses a running SUM() window function:
SELECT
date,
SUM(daily_revenue) AS daily_revenue,
SUM(SUM(daily_revenue)) OVER (ORDER BY date ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS cumulative_revenue
FROM (
SELECT DATE(processed_at) AS date, SUM(amount) AS daily_revenue
FROM orders
WHERE processed_at >= '2026-04-01' AND processed_at < '2026-05-01'
GROUP BY DATE(processed_at)
) daily
GROUP BY date
ORDER BY date;
Key points:
- The inner aggregation computes daily totals.
- The outer window function sums the running total in the order of dates.
- Partitioning by category (channel, product) allows independent cumulative series per category.
ShopifyQL's WITH CUMULATIVE_VALUES performs this logic internally and is designed to be safe and efficient for typical report sizes. When queries include multiple series (periods or groups), ensure the cumulative computation partitions or separates series correctly to avoid cross-contamination.
Edge conditions to be aware of:
- Missing dates: If a date has no data, the cumulative function should still carry forward the prior total to keep the line steady. Ensure your query or visualization fills missing dates for continuity.
- Time zones and boundaries: Define the date boundary consistently (UTC vs local store timezone). Misalignment shifts day aggregates and cumulative values.
- Data corrections and backfills: When data is updated retroactively, cumulative values recompute and earlier points may change, shifting the chart historically. Annotate any retroactive adjustments for transparency.
Which metrics should be cumulative — a taxonomy
Not all metrics lend themselves to running totals. Use this taxonomy to decide.
Good candidates (absolute counts and monetary sums)
- Revenue (gross sales, net sales, refunded amounts separately observed)
- Orders or transactions
- New customer counts
- Signups, registrations, installs
- Units sold
- Total discount amount redeemed
Poor candidates (percentages, averages unless reconstructed)
- Conversion rate (daily or cumulative? Compute cumulative conversion properly by using cumulative conversions over cumulative visitors rather than summing daily rates)
- Average order value (AOV should be recomputed from cumulative revenue / cumulative orders, not summed)
- Bounce rate, retention rate, or any rate averaged over a varying denominator — use cumulative numerators and denominators first
How to handle derived metrics:
- For ratios, compute cumulative numerators and cumulative denominators then divide. Example: cumulative conversion rate = cumulative purchases / cumulative sessions (where sessions are the denominator).
- Avoid summing daily percentages. Summed percentages do not reflect underlying behavior.
Special cases:
- Returns and refunds: Track gross revenue cumulatively and also cumulative net revenue (gross minus refunds) to reflect the true business picture.
- Churn or cancellations: For cumulative active subscribers, adjust for cancels by subtracting cumulative cancellations from cumulative signups or compute net cumulative active users.
Common pitfalls and how to avoid them
Cumulative charts simplify but also introduce traps. Anticipate these mistakes and structure reports to reduce misinterpretation.
Pitfall: Masking decline with a rising total A cumulative line will always be flat or rising for positive metric values, even if recent performance has fallen sharply. A steady rise does not guarantee ongoing health.
Mitigation:
- Pair cumulative charts with a daily or moving-average chart beneath it.
- Add slope annotations (e.g., last 7-day increase) to show recent momentum changes.
Pitfall: Comparing unequal date ranges or misaligned periods Directly overlaying cumulative series from date ranges of different lengths or misaligned weekdays gives misleading comparisons.
Mitigation:
- Align periods by shifting dates (as shown in the ShopifyQL example), or normalize by percentage-of-period elapsed.
- Use indexed cumulative values (e.g., set both series to start at 100 on day 1) to compare growth shapes regardless of absolute sizes.
Pitfall: Applying cumulative to inappropriate metrics Percentages or averages summed across time yield meaningless totals.
Mitigation:
- Recalculate ratios from cumulative numerators and denominators.
- Present the derived metric alongside the underlying counts for clarity.
Pitfall: Ignoring seasonality Comparing a cumulative January to a cumulative November is rarely instructive without seasonality adjustments.
Mitigation:
- Compare the same calendar period year-over-year.
- Use seasonally adjusted baseline or normalize by daily expected volume.
Pitfall: Failure to account for data anomalies Large refunds, fraud reversals or late data corrections can create spikes or dips that skew cumulative totals.
Mitigation:
- Annotate and, when appropriate, create adjusted cumulative lines excluding known anomalies.
- Maintain an audit trail and versioned reports for transparency.
Designing dashboards that use cumulative views effectively
Cumulative charts belong in specific places within a dashboard. Placement and surrounding context determine their usefulness.
Where to place cumulative charts:
- In a “Goal Pacing” tile where leadership can instantly see progress toward targets.
- In campaign dashboards where the question is total lift over time.
- In operational dashboards that monitor capacity-limited metrics like shipments or production quotas.
Complementary panels:
- Small daily sparkline or 7-day moving average below or beside the cumulative chart to show short-term momentum.
- A KPI tile displaying percentage of goal achieved, change vs prior period, and days remaining.
- Annotations panel listing the events or initiatives that explain inflection points.
Chart design tips:
- Start cumulative charts at zero or clearly annotate if the baseline is not zero.
- Use contrasting colors and line styles for multiple series.
- Show tooltips that reveal both the cumulative number and the incremental daily figure.
- Display the target line as a dashed or distinct color and label target endpoints.
User roles and access:
- Executive dashboards should show cumulative goal pacing and high-level comparisons.
- Analysts may need access to raw daily series and the ability to toggle cumulative view to inspect roots of trends.
- Operations teams need cumulative numbers translated into capacity constraints (e.g., orders remaining for on-time fulfillment).
How to pair cumulative metrics with forecasting and planning
Running totals are not forecasting tools by themselves, but they provide inputs for projection.
Simple projection method:
- Compute average daily increase to date and multiply by remaining days, add to current cumulative total to get projected period-end total.
- Example: If cumulative revenue at mid-month is $30,000 (15 days), average daily revenue is $2,000; projected month-end is $2,000 * remaining 15 days + $30,000 = $60,000.
Weighted velocity projection:
- Use a weighted average that gives more recent days greater weight to capture acceleration/deceleration.
Integrating with statistical forecasting:
- Feed cumulative and daily series into time-series models (ARIMA, exponential smoothing) to project future cumulative lines.
- Compute confidence bands so decision-makers understand projection uncertainty.
Operational planning:
- Use cumulative pace against capacity limits to make real-time operational decisions (e.g., add shifts, increase inventory, throttle promotions).
- Combine cumulative revenue with margin and cost data to understand cumulative profit and margin to date.
Caveat:
- Forecasts based solely on cumulative linear projections assume stable conditions; adjust when you know marketing events, restocks or outages will affect future days.
Practical checklist for adopting cumulative metrics in your reporting workflow
A short actionable checklist reduces friction when introducing cumulative views.
- Identify the business question: goal pacing? campaign lift? capacity?
- Choose the right metric: prefer absolute counts and monetary sums; derive ratios using cumulative numerators/denominators.
- Select date range carefully: align periods for comparisons and ensure consistent timezone boundaries.
- Enable cumulative visualization in Shopify Analytics or append WITH CUMULATIVE_VALUES in ShopifyQL.
- Add a target line or prior-period overlay if relevant.
- Include a complementary daily or moving-average chart to show recent momentum.
- Annotate known events and data corrections.
- Communicate interpretation guidelines to stakeholders: what the cumulative line shows and what it hides.
- Revisit dashboards after each period to refine targets, bands and annotations.
Examples of ShopifyQL queries for common cumulative analyses
Below are reusable ShopifyQL patterns. Adapt date filters and groupings to your storefront.
Cumulative orders by day (last 30 days)
SELECT
date,
count(*) AS daily_orders
FROM orders
WHERE processed_at >= current_date - interval '30' day
GROUP BY date
ORDER BY date
WITH CUMULATIVE_VALUES
Cumulative revenue and refunds (net revenue calculation)
SELECT
date,
sum(case when financial_status = 'paid' then total_price else 0 end) AS gross_revenue,
sum(case when refund = true then refund_amount else 0 end) AS refunds
FROM orders
WHERE processed_at >= '2026-04-01' AND processed_at < '2026-05-01'
GROUP BY date
ORDER BY date
WITH CUMULATIVE_VALUES
Interpretation: Use cumulative gross_revenue and cumulative refunds to compute cumulative net revenue = cumulative gross_revenue - cumulative refunds.
Cumulative signups by marketing channel (partitioned)
SELECT
date,
channel,
count(*) AS signups
FROM customers
WHERE created_at >= '2026-04-01' AND created_at < '2026-05-01'
GROUP BY date, channel
ORDER BY channel, date
WITH CUMULATIVE_VALUES
Ensure the cumulative values are computed separately per channel by ordering and grouping.
Governance, documentation and communicating cumulative analytics
Introducing cumulative metrics changes the conversation. Create governance practices to ensure clarity.
Documentation:
- Record what cumulative series represent, how they are computed, and whether prior periods are shifted for comparison.
- Store canonical queries and dashboard components in a version-controlled repository or a centralized analytics catalog.
- Define naming conventions (e.g., revenue_cumulative_MTD, orders_cumulative_campaignA).
Training:
- Teach stakeholders how to read cumulative charts and warn them about the masked volatility.
- Provide standard “how to interpret” notes on dashboards for non-technical users.
Change management:
- When baseline definitions or targets change, communicate reasons and provide before/after views so stakeholders understand the impact.
- When retroactive adjustments occur (data backfills, refunds), annotate dashboards and notify impacted teams.
Where cumulative metrics integrate with broader analytics strategy
Cumulative visualizations complement, not replace, other reporting modes.
Use-cases in the analytics stack:
- Executive KPI dashboards for at-a-glance target monitoring.
- Campaign performance views for marketing and growth teams.
- Operational dashboards to ensure capacity and fulfillment alignment.
- Historical analysis feeds for data science models as features capturing period-to-date performance.
Integration with automation:
- Trigger alerts when cumulative progress deviates from expected pace by a predefined margin.
- Automate status reports that include cumulative-to-date percentages and projected period-end totals.
Link with experimentation:
- Use cumulative comparison to evaluate long-running experiments by looking at net adds or accumulated revenue rather than volatile daily differences.
- Ensure experiments have clean attribution and partitioning so cumulative results aren’t contaminated.
Final considerations on interpretation and reporting hygiene
Cumulative charts provide clarity on totals and momentum. Achieve reliable insight by maintaining high standards around data hygiene and presentation.
- Keep raw daily series accessible. Analysts will frequently need to drill down from cumulative to daily events.
- Make targets explicit and immutable once communicated, or clearly log any target changes.
- Normalize comparisons for days elapsed when assessing pacing in the middle of a period.
- Use annotations liberally. Cumulative charts without context invite speculation about causes for inflection.
- Avoid applying cumulative to unsuitable measures like rates without reconstructing them from counts.
Cumulative visualizations are a practical addition to any Shopify merchant’s toolkit. They translate raw daily data into a forward-looking, decision-useful view that answers the central question everyone asks: “Are we on pace?”
FAQ
Q: What happens to cumulative charts if a day has no data? A: A proper cumulative chart carries the prior total forward for dates with no data, producing a flat segment for that date. Ensure your query or visualization fills missing dates to maintain continuity.
Q: Can I apply cumulative to percentage metrics like conversion rate? A: Do not sum daily percentages. Compute cumulative conversion rate by dividing cumulative purchases (numerator) by cumulative sessions or visitors (denominator). This method reflects the true rate over the period.
Q: How does the WITH CUMULATIVE_VALUES clause work with multiple series or partitions? A: The cumulative clause computes running totals in the order of the result set. Partition your query or use groupings and proper ORDER BY clauses so cumulative values are calculated independently for each series (e.g., by marketing channel or period).
Q: When should I prefer cumulative vs daily charts? A: Use cumulative for goal pacing, campaign lift and total accumulation. Use daily or moving-average charts to examine volatility, detect immediate issues, or assess short-term performance.
Q: Can I compare current cumulative performance to the same period last year? A: Yes. Align the prior period by shifting dates or normalizing both series to a comparable baseline. Shifting prior-period dates into the current window lets the two cumulative lines overlay for direct trajectory comparison.
Q: Will cumulative charts always rise? A: For metrics that are strictly non-negative (like orders or revenue without negative entries), cumulative charts are flat or rising. If your metric can be negative (net revenue after refunds could dip), cumulative lines may decline.
Q: Are cumulative values affected by retroactive data corrections? A: Yes. Retroactive updates, refunds or data backfills change historical day values and thus earlier cumulative points. Maintain an annotation or audit log for transparency when such corrections occur.
Q: Can I export cumulative results? A: Shopify reports and ShopifyQL outputs supporting cumulative values typically allow export. Export the table with cumulative values for archival, further analysis, or integration with other tools.
Q: How do I build a target line for a cumulative chart? A: For a simple target, divide the total goal by number of days to get even daily increments and plot their cumulative sum. If historical patterns show uneven distribution, weight the daily increments accordingly for a more realistic target trajectory.
Q: What’s the best way to present cumulative metrics to non-technical stakeholders? A: Show the cumulative chart with a labeled target line, a complementary small daily trend chart, and concise annotations explaining inflection points. Present a single KPI tile showing percentage of target achieved to pair with the chart.
Q: Where can I learn more? A: Shopify’s official analytics documentation and the ShopifyQL reference include examples and details on cumulative visualizations and the WITH CUMULATIVE_VALUES clause. Follow your store’s analytics governance for any custom query patterns and naming conventions.