A Shopify revenue forecast is a projection of upcoming revenue based on historical patterns and current marketing inputs. Most merchants either don't forecast (planning is reactive) or forecast badly (gut-feel projections that miss by 30%+). The 90-day rolling model walks through three components — base trend, seasonal lift, marketing-driven growth — that produce forecasts within 10% of actual for most stores under $1M/year.

This guide is the model, the inputs, and the failure modes that produce systematically optimistic (or pessimistic) forecasts.

Why most forecasts fail

Three failure modes:

  1. Optimism bias. Founders forecast based on best-case scenarios. Actual revenue typically lands 20% below forecasted.
  2. Ignoring seasonality. "Last month was $40K, next month will probably be $42K" misses that next month is December (or January post-holiday slump).
  3. No marketing accountability. Forecast assumes growth that requires marketing spend that wasn't budgeted.

Better: forecast components separately. Each component has explicit assumptions you can stress-test.

The 3-component model

Component 1: Base trend

Rolling 90-day average revenue, extended forward. The "do nothing changes" baseline.

base_trend_monthly = (revenue_last_90d / 90) × 30

For a store doing $100K in last 90 days: base trend = $33K/month.

This baseline assumes everything stays the same — same traffic, same conversion, same marketing spend. Your actual forecast adjusts up or down from here.

Component 2: Seasonal multiplier

Year-over-year multiplier for the forecast month. If December historically does 1.6× October revenue, your December forecast is base trend × 1.6.

Compute from prior year's monthly revenue:

seasonal_multiplier = revenue_target_month_last_year / avg_monthly_revenue_last_year

For most consumer-product Shopify stores:

  • Spring (March-April): 0.95-1.05× of average
  • Summer (May-July): 0.85-0.95×
  • Fall (August-October): 1.0-1.1×
  • November: 1.4-1.8× (Black Friday driver)
  • December: 1.4-1.7× (holiday gift)
  • January: 0.7-0.85× (post-holiday slump)
  • February: 0.85-0.95×

If you don't have a year of data, use industry-standard multipliers above. They're approximate but better than ignoring seasonality.

Component 3: Marketing-driven growth

Net new revenue from marketing investments above baseline.

marketing_growth = (incremental_ad_spend × historical_ROAS) - revenue_from_replaced_organic

If you're increasing Meta spend by $5K/month at 3× ROAS, expect $15K incremental revenue. Minus any cannibalization from existing organic traffic (typically 10-20% of paid lift comes from customers who would have bought organically).

Be honest. Most merchants over-estimate marketing ROAS, under-estimate cannibalization. Use your trailing 3-month measured numbers, not aspirational ones.

Putting it together

Forecast = (base trend × seasonal multiplier) + marketing growth

For a store with:

  • Base trend: $33K/month
  • October seasonal multiplier: 1.05
  • Marketing growth from $4K spend at 3× ROAS, 15% cannibalization: $10,200

October forecast = (33K × 1.05) + 10.2K = $44.85K

If actual lands at $43K, model is within 4% — useful for planning. If it lands at $35K, you missed something (ad creative fatigue, competitive pressure, etc.) — investigate which component was wrong.

Refining the model

Once the basic model is running, three refinements add accuracy:

1. Cohort-based base trend

Replace the simple 90-day average with cohort-based revenue (see cohort analysis guide). Customers acquired in different months have different spending patterns; aggregating obscures it.

For maturing stores with 6+ months of data, cohort math improves forecast accuracy.

2. Channel-specific marketing

Don't average across channels. Compute marketing growth per channel (Meta, Google, TikTok) at their respective ROAS. Different channels respond differently to budget changes.

See traffic-source analysis guide for channel-level signal.

3. Subscription-aware splitting

If you have a subscription program, split base trend into "subscription MRR" and "one-time orders." Subscription has lower variance; one-time has more.

forecast = subscription_MRR + one_time_base × seasonal × marketing_factor

The 90-day rolling discipline

Re-forecast every 30 days using the most recent 90 days as base. This:

  • Catches trend shifts: if revenue dropped meaningfully in the last 30 days, the base trend reflects it within a month.
  • Smooths out noise: 90-day window absorbs week-to-week variation.
  • Aligns with planning: forecasts become Monday-of-month-1 input for the rest of the month's decisions.

Don't re-forecast weekly (too much noise) or monthly using all-time history (slow to catch real changes).

What forecasting unlocks

Three operational decisions improve with reliable forecasts:

1. Inventory planning

Knowing you'll do $60K in December lets you order 50% more inventory of top SKUs in October. See inventory management guide.

2. Cash flow

Inventory + payroll + marketing all drain cash before customers pay. A 90-day forecast tells you cash flow, not just revenue. Critical for stores at scale or with thin margins.

3. Hiring decisions

A forecast showing $80K/month revenue justifies a $5K/month full-time support hire. Without forecasting, hiring is gut-feel and often poorly timed.

Common forecasting mistakes

  • Ignoring seasonality: forecasts December at base trend, misses 50% lift.
  • Using aspirational ROAS: forecasts assume 5× ROAS when current trailing-90 is 2.8×.
  • Not adjusting for marketing fatigue: assumes paid spend will scale infinitely at current ROAS.
  • Forecasting too far out: 12-month forecasts beyond signal noise. Stick to 90 days.
  • Hiding bad news: forecast that "next month will be better" isn't a forecast, it's hope.

A worked example: forecasting Q4

A skincare store in October forecasting Q4:

Inputs:

  • Base trend (last 90 days): $42K/month
  • Last year Q4: October $44K, November $63K, December $78K, January $31K
  • Last year average monthly: $48K
  • Seasonal multipliers: Oct 0.92×, Nov 1.31×, Dec 1.63×, Jan 0.65×
  • Planned marketing increase Q4: +$3K/month at 2.8× ROAS, 15% cannibalization

Forecasts:

  • October: 42K × 0.92 + 3K × 2.8 × 0.85 = $45.8K
  • November: 42K × 1.31 + 3K × 2.8 × 0.85 = $62.2K
  • December: 42K × 1.63 + 5K × 2.8 × 0.85 = $80.4K (extra spend for holiday push)
  • January: 42K × 0.65 + 3K × 2.8 × 0.85 = $34.4K

Q4 total: $222.8K. Compare against last year's Q4 ($216K). 3% growth forecast.

If actuals land at: Oct $44K, Nov $61K, Dec $77K, Jan $33K → total $215K. Model was 3.5% optimistic — reasonable, especially with December's slight underperformance probably due to ad fatigue.

The merchant uses the model to plan inventory orders for November and December, which arrived 30 days before holiday peak. The next forecasting cycle uses the January base trend.

Frequently asked questions

How often should I forecast?

Monthly minimum. Re-forecast on the first of each month using the most recent 90 days. Don't forecast weekly (too much noise).

Do I need a year of data to forecast?

No, but more is better. With 3 months of data, you can do base trend + crude seasonality estimate. With 12 months, the seasonal multiplier is much more accurate.

What about Shopify's built-in forecasting?

Shopify Plus has revenue forecasting built into Analytics for stores on the Plus plan. It's reasonable as a starting point — but the manual model gives you assumption visibility that Plus's black-box model doesn't.

Should I forecast at the SKU level?

At $200K+/month, yes for top-10 SKUs (informs inventory). Below that, store-level monthly forecast is enough.

Does DropifyXL forecast?

Indirectly. DropifyXL surfaces signals that inform forecasts (seasonal trends, subscription health, restock urgency). The forecasting math itself sits outside the tool.

Key takeaways

  • Three-component forecast: base trend (rolling 90-day) + seasonal multiplier + marketing growth.
  • Re-forecast monthly. Compare actual to forecast at month-end.
  • Use trailing 90-day ROAS, not aspirational. Marketing growth should be honest.
  • Ignoring seasonality is the #1 cause of forecast errors. Monthly multipliers handle most of this.
  • Forecasting unlocks inventory planning, cash flow management, and hiring decisions.

A forecast within 10% of actual is actionable. A forecast within 30% is hope. The discipline of comparing forecasts to actuals every month makes the model better over time.