Back to blog
Tutorial

Cash-flow forecast for your Shopify store

The four numbers that decide whether a Shopify store builds cash or bleeds it, where to read each one, and the five steps that turn them into a 12-month forecast you can keep current in twenty minutes a month.

The Foreqast Team July 8, 2026 10 min read

If you run a Shopify store, your bank balance can swing hard from month to month: a big inventory order goes out, ad spend ramps, a payout lands a few days late. A cash-flow forecast is just a simple picture of what your balance will look like over the next few months — so nothing catches you off guard. You can build one in a spreadsheet in an afternoon. Here are the five steps.

Prefer to follow along with the finished sheet? Grab the free cash-flow forecast template for Shopify & WooCommerce — every formula in this guide is already wired up.

The four numbers everything else is built on

Before the grid, the inputs. You do not need a dashboard full of metrics to forecast a Shopify store — you need four numbers. Get these right and the forecast is roughly right; get them wrong and no amount of spreadsheet polish will save it. Here is what each one does to your cash, and exactly where to read it in Shopify.

1. Orders per month

The engine. Everything downstream — revenue, restocking, shipping, fees — scales with how many orders you ship. Track it monthly so you can see seasonality and the effect of promos.

In Shopify: Analytics → Reports → Sales over time (or the "Orders" metric on your Analytics overview). Read the last few complete months.

2. Average order value (AOV)

What each order is worth. Multiply it by orders and you have revenue. Small AOV moves — a bundle, free-shipping threshold, an upsell — flow straight to the top line without needing a single extra visitor.

In Shopify: Analytics → Reports → Average order value. If you can't see it directly, divide total sales by order count for the period.

3. Contribution margin per order

The number founders skip — and the one that decides whether growth helps or hurts. It's what's left from an order after the costs that scale with it: AOV − product cost − shipping − payment fee. If it's positive, every order funds the business; if it's thin, scaling ads just burns cash faster.

In Shopify: pull product cost from your cost per item field (Products → a product → Cost per item; the Profit reports use it), shipping from your carrier/Shopify Shipping, and fees at ~2–3%. Do the subtraction once per typical order.

B6=B2-B3-B4-B5
Per order (€)
Avg order value58.00
− Product cost22.00
− Shipping5.00
− Payment fee (2.7%)1.60
Contribution margin29.40
Number 3 — contribution margin per order is just AOV minus the costs that scale with it. Positive means every order funds the business.
Why margin, not revenue, tells the truth

Two stores with the same revenue can have wildly different cash flow. The one with a healthy contribution margin keeps cash after every sale; the one running on a 3% margin needs perfect timing just to stay level. Margin is the number that decides how hard you can push.

4. Refund & return rate

The quiet leak. A 10% return rate doesn't just cut revenue 10% — you often eat the shipping both ways and can't resell the item. Model it as a haircut on revenue: orders × AOV × (1 − refund rate).

In Shopify: Analytics → Reports → Returns (or "Refunds") over time, as a share of sales.

NumberWhat it drivesWhere in Shopify
Orders / monthVolume of everythingReports → Sales over time
Average order valueRevenue per orderReports → Average order value
Contribution marginCash kept per orderCost per item + shipping + fees
Refund rateRevenue actually collectedReports → Returns
B6=B2*B3*(1-B5)
This month
Orders920
Avg order value (€)58
Contribution margin / order (€)29.40
Refund rate8%
Revenue (€)49,091
Cash margin (€)24,884
All four together — orders × AOV give revenue, the refund rate trims it, and margin per order turns it into the cash you actually keep.

Step 1 — Lay out your months

Open a spreadsheet. Put the next 12 months across the top row, and leave the left column for labels. Every number you enter lives under the month it actually happens in. That is the whole grid — revenue rows near the top, cost rows below, and a few summary rows at the bottom.

A1Cash-flow forecast
JanFebMar
Revenue
Costs
Net cash flow
Cash at end
Step 1 — months across the top, your rows down the side. That empty grid is the entire forecast; each step below fills in one more row (highlighted) until it's complete.

Step 2 — Forecast your revenue (two ways)

This is the step that matters most, and you have two honest options. Pick the one that fits how much detail you want.

Option A — the historical way (fastest)

Take your last three months of Shopify revenue and carry the average forward, or add a modest monthly growth rate if you are clearly trending up. This is a "historical" forecast: it assumes next month roughly looks like the recent past. Perfect for a first draft.

Option B — the driver-based way (more control)

Build revenue from the numbers that actually create it: orders × average order value × (1 − refund rate). Now you can plan a promo month by nudging orders up, or model a price change through AOV. This is a "driver-based" forecast, and it is far more useful once you want to steer.

B5=B2*B3*(1-B4)
JanFebMar
Orders8209101,050
Avg order value (€)585860
Refund rate8%8%7%
Revenue (€)43,75548,55858,590
Step 2, Option B — driver-based revenue. The three input rows are yours to set; the green row is one formula, orders × AOV × (1 − refund rate), copied across the months. (Option A is simpler still: one row, last three months' average carried forward.)

Both are legitimate. Start with Option A to get a plan on the page today, and move to Option B when you want to test decisions. You can find all three inputs in Shopify Analytics — orders, average order value, and returns — which is what the four numbers above walk through.

B2Revenue = orders × AOV × (1 − refund rate)
JanFebMar
Revenue (€)43,75548,55858,590
Orders8209101,050
Avg order value (€)585860
Refund rate8%8%7%
Costs
Net cash flow
Cash at end
Step 2 — add revenue (highlighted) and the drivers that build it, shown lighter underneath: orders, average order value and refund rate — just like the driver rows in Foreqast.

Step 3 — Add your costs

List your costs as separate rows so you can see what moves with sales and what does not:

CostHow to estimate it
Cost of goods (restocking)Roughly your product cost × the orders you expect to ship
Shipping & fulfilmentAverage label cost × orders
Payment fees~2–3% of revenue (Shopify Payments / PayPal)
AdvertisingYour planned monthly ad budget
Fixed costsSalaries, apps & subscriptions, rent — flat each month

Notice the first three scale with orders, while the last row stays flat. Keeping them apart makes the next step honest. Each of these lines has its own short deep-dive — follow the links above for the exact formula behind restocking, shipping and payment fees, ad budget and fixed costs.

B7Costs = COGS + shipping + ads + fixed costs
JanFebMar
Revenue (€)43,75548,55858,590
Orders8209101,050
Avg order value (€)585860
Refund rate8%8%7%
Costs (€)39,00062,00047,000
COGS (€)12,00033,50018,000
Shipping (€)4,0004,5005,000
Advertising (€)5,0006,0006,000
Fixed costs (€)18,00018,00018,000
Net cash flow
Cash at end
Step 3 — add costs (highlighted) and the cost drivers underneath: COGS, shipping, ads and fixed costs. The big Feb COGS is a restock.

Step 4 — Net cash flow and cash balance

Add a Net cash flow row (revenue minus all costs, per month). Then add a Cash at end of month row: start with what is in the bank today, and each month add that month's net. This bottom row is the one that matters — it shows the exact month your balance dips, and whether a big restock would take you under.

B10Cash at end = last month's cash + this month's net
JanFebMar
Revenue (€)43,75548,55858,590
Orders8209101,050
Avg order value (€)585860
Refund rate8%8%7%
Costs (€)39,00062,00047,000
COGS (€)12,00033,50018,000
Shipping (€)4,0004,5005,000
Advertising (€)5,0006,0006,000
Fixed costs (€)18,00018,00018,000
Net cash flow (€)4,755−13,44211,590
Cash at end (€)24,75511,31322,903
Step 4 — add the two summary rows (highlighted). The Feb restock pushes net cash flow negative, but the Cash at end row shows the balance still holds above zero. That bottom row is what you watch.
Profit isn't cash

A month can look profitable and still leave you short — inventory is paid up front, but the cash comes back only as you sell through. Always watch the cash balance row, not just revenue.

Step 5 — Keep it current (and add a downside)

A forecast is only useful if it stays fresh. Put a 20-minute reminder on the 1st of each month: drop in last month's real Shopify numbers, adjust the months ahead, re-read your ending cash. Each month you replace the oldest projection with what actually happened and extend one month further out.

B2January now holds real actuals, not a projection
JanFebMar
Revenue (€)43,75548,55858,590
Orders8209101,050
Avg order value (€)585860
Refund rate8%8%7%
Costs (€)39,00062,00047,000
COGS (€)12,00033,50018,000
Shipping (€)4,0004,5005,000
Advertising (€)5,0006,0006,000
Fixed costs (€)18,00018,00018,000
Net cash flow (€)4,755−13,44211,590
Cash at end (€)24,75511,31322,903
Step 5 — each month, replace the oldest projection with your real numbers (January, highlighted) and extend one month further out. Keeping it current is the whole habit.
Doing this without the monthly upkeep

This is exactly the part a tool automates. Foreqast comes with the Shopify model already set up — orders, AOV and refunds sync in, the restocking, shipping and payment-fee lines are pre-wired, and both the historical and the driver-based revenue options from Step 2 are one click each. Same five-step forecast, kept current for you. It's an optional shortcut, not a requirement — the spreadsheet works fine too.

Here's the exact same five-step forecast living in Foreqast — the category rows and their drivers, with Shopify and Meta feeding the numbers automatically:

Forecast Jan 26Feb 26Mar 26Apr 26May 26
Revenue43,75548,55858,59052,29354,427
Shop revenue Σ orders × AOV × (1 − refunds)€43,755€48,558€58,590€52,293€54,427
Orders Shopify8209101,0509801,020
Avg order value Shopify€58€58€60€58€58
Refund rate Shopify8%8%7%8%8%
Cost of goods11,20011,48012,74014,70013,720
COGS (restocking) Σ prev-month orders × €14€11,200€11,480€12,740€14,700€13,720
Avg purchase cost Manual€14€14€14€14€14
Marketing5,0005,0006,0006,0006,000
Advertising driver-based€5,000€5,000€6,000€6,000€6,000
Ad budget Meta Ads€5,000€5,000€6,000€6,000€6,000
Other expenses9,4009,4009,4009,4009,400
Other expenses last period€9,400€9,400€9,400€9,400€9,400
Net cash flow€18,155€22,678€30,450€22,193€25,307
Cash at end€38,155€60,833€91,283€113,476€138,783
The Foreqast forecast — the same rows as your spreadsheet, but Shopify feeds orders, AOV and refunds, Meta feeds ad spend, and every category keeps its drivers underneath. The dashed cells are the levers you plan ahead; net cash flow and ending cash recompute on their own.
The five steps
  • Months across, lines down.
  • Revenue: historical average, or orders × AOV × (1 − refunds).
  • Costs: split the order-driven ones from the fixed ones.
  • Two summary rows: net cash flow and ending cash.
  • Update monthly to keep it current.

Forecast your store without the spreadsheet upkeep

Foreqast sets up the Shopify model from Step 2 for you and keeps your cash flow current automatically — historical or driver-based, your choice.

Get early access →

No credit card required.

How this works in Foreqast

Free online course

Cashflow Forecasting & Financial Modelling for eCommerce Founders

Go from a blank spreadsheet to a working cash-flow forecast for your shop.

Lesson 3 of 7 · Module: Revenue Modelling

Open the course

Beginner → Practitioner · eCommerce & Shopify founders

The app

Order your next restock against a number

  • Shopify and accounting synced, orders and fees included
  • See what a restock does to your cash before you place it
  • Ad budget, shipping and payment fees in the same curve
Try it on your shop

No credit card. First forecast in about 20 minutes.

Self-check

How much control do you have over your money?

Twelve questions on what you can see, how far ahead, and what your decisions are based on. About three minutes.

Start the self-check
ShopifyE-commerceCash FlowForecastingHow-To