Monthly Sales Performance Report
Quick Answer: A monthly sales performance report is an ecommerce rollup that combines revenue, profit, and customer behavior in one view so you can see what changed, why it changed, and whether growth is healthy. In Moselle, you can generate one instantly by asking Mo.
What is a Monthly Sales Performance Report?
A monthly sales performance report is a recurring rollup that summarizes an ecommerce brand's sales results for a given month across revenue, profitability, customer behavior, and operations β broken down by channel, category, and SKU.
Unlike a single topline revenue number, a proper monthly report combines:
Topline performance β net revenue, orders, units, and AOV
Profitability β gross margin, discount rate, returns rate
Customer behavior β new vs. returning revenue, repeat purchase rate
Channel and product mix β Shopify, Amazon, wholesale, paid social, by category and SKU
Operational signals β refunds, stockouts, shipping delays
It's the report a founder, ops lead, or planner uses to close the month with a clear picture of what worked, what didn't, and what to do next.
Why is a Monthly Sales Performance Report Important?
For an ecommerce brand, a strong monthly rollup is the single most-used artifact for decision-making. It connects marketing spend, inventory, and finance with one shared source of truth.
Key Benefits
See what actually changed. Separate price, mix, channel, and volume effects instead of guessing why revenue moved.
Catch unhealthy growth early. Revenue can climb while margin, repeat rate, or stockouts quietly erode the business.
Plan next month with confidence. Compare actuals against forecast to adjust buys, promos, and ad spend before the next cycle.
Align the team. One rollup that finance, marketing, ops, and planning all read from prevents conflicting numbers.
Use Cases by Team
Founders / Leadership
Month-end performance summary, board updates, fundraising narratives
Planning & Inventory
Compare actuals vs. forecast, flag stockouts and lost sales, adjust replenishment
Marketing
Identify underselling categories, prioritize promos and paid spend before month-end
Finance
Track gross and contribution margin, discount and return rates, channel profitability
Operations
Spot refund spikes, shipping delays, and fulfillment issues affecting repeat behavior
What Makes a Good Monthly Sales Performance Report?
A strong rollup is consistent, layered, and operationally honest. Topline numbers stay simple; detail lives in drilldowns that use the same definitions every month.
Key Sections and Fields
Structure the report so each layer answers a different question.
Topline
Net revenue, gross sales, orders, units sold, AOV
Profitability
Gross margin, contribution margin, discount %, returns %
Customer
New vs. returning revenue, repeat purchase rate, cohort retention by first-purchase month
Channel & Product
Revenue by channel (Shopify, Amazon, wholesale, paid social), by category, by SKU, by region
Operations
Refunds, stockouts, lost sales from out-of-stock, fulfillment/shipping delays
Forecast vs. Actuals
Projected vs. actual units and revenue, gap by category, on-pace status
Formatting Best Practices
Lead with a 3β5 bullet executive summary β the metrics that moved most, plus the one action for next month.
Keep the top layer to 6β8 KPIs. Push everything else into drilldowns.
Show comparisons, not just numbers. Every metric should be paired with last month, last year, and forecast.
Use consistent definitions month over month. Net revenue, returning customer, and stockout should mean the same thing in every report.
Rank categories and SKUs by gap, not alphabetically. Surface what needs action first.
Common Gotchas
These are the issues that quietly break monthly rollups for ecommerce brands:
Timezones. Shopify, Amazon, and ad platforms each report in different timezones. Pick one (usually the brand's HQ timezone) and convert everything to it before rolling up β otherwise month-end orders land in the wrong month.
Bundles and kits. A bundle is one order line but contains multiple SKUs. Decide upfront whether unit counts roll up to the bundle SKU or to the component SKUs, and apply it consistently.
Refunds and cancellations. Refunds issued in May for April orders need to be attributed to the original order month, not the refund month, for net revenue and margin to be accurate.
Mixing raw and normalized metrics. Don't put gross sales and net revenue side-by-side without labeling clearly β it leads to wrong conclusions.
Gift cards and store credit. These often inflate gross sales when issued and again when redeemed. Pick one recognition point.
Channel double-counting. Orders that flow from Amazon into a Shopify reporting tool can appear in both channels if not deduped.
Stockouts that hide demand. Sales of zero on an out-of-stock SKU isn't low demand β it's lost sales. Flag stockout days separately.
How to Build a Monthly Sales Performance Report
A complete rollup pulls from several systems, then summarizes by month first and allows drilldowns by channel, category, and cohort using the same definitions.
Data You Need
Sales platform (Shopify, Amazon, etc.)
Orders, units, gross sales, discounts, refunds
Product catalog
SKU, category, bundle composition, cost of goods
Customer data
First-purchase date for cohort and new-vs-returning splits
Inventory system
Stockout days, on-hand by SKU, lost-sales estimates
Forecast / plan
Monthly projected units and revenue by category
Ad & marketing platforms (optional)
Spend by channel for contribution margin
Build Approach
Define your metrics once β net revenue, returning customer, stockout β and reuse the definitions every month.
Roll up to the month first at the order or order-line level, normalizing for timezone and bundles.
Layer drilldowns by channel, category, SKU, and cohort using those same definitions.
Compare against forecast and prior periods so every KPI has context.
Close with a written summary of what moved, why, and the recommended action.
Building this manually each month in a spreadsheet or SQL is doable but slow. Most ecommerce teams spend a full day or more closing the month β which is what Moselle's Mo automates.
How to Get a Monthly Sales Performance Report Instantly in Moselle with Mo
Mo generates your full monthly sales performance report in one prompt β topline, category breakdown, forecast vs. actuals, and marketing recommendations to close gaps before month-end.
Before You Start
A confirmed forecast is loaded in Moselle
Mo needs a monthly projection to compare actuals against
Sales data is synced and up to date
Ensures month-to-date actuals reflect current performance
Products are organized by category
Required for the category-level breakdown
Time Required: 5 minutes Difficulty: Beginner
The Report Prompt
Copy and send this prompt to Mo. It generates the complete report in one response.
Save and Re-Run Every Month
Once Mo generates your report, save it so you can re-run it in seconds every month.
Re-Run it Each Month
Open your Favourite Prompts in Mo
Select Monthly Sales Performance Report
Update
[current month]to the relevant monthSend β Mo will generate the full report instantly
Your complete report β topline summary, category breakdown, and marketing recommendations β is ready to review and share.
Recommended Check-In Cadence
Start of month
Confirm your forecast is loaded and establish your baseline projection
Mid-month
Run the full report β identify gaps early enough to act
Final week
Re-run to prioritize last-minute marketing pushes before month close
Month close
Run the final report for leadership and feed learnings into next month's plan
Frequently Asked Questions
What data does Mo use to calculate the unit gap?
Mo compares your cumulative month-to-date actual sales units against the monthly projection loaded in your Moselle forecast. The gap is the difference between where you are and where your projection says you should be at this point in the month.
How does Mo handle bundles and kits in the rollup?
Mo follows your product catalog setup in Moselle. If your bundles are configured to roll up to component SKUs, unit counts will reflect components; if they roll up to the bundle SKU, counts will reflect bundles. Confirm your bundle configuration before running the report to avoid double-counting.
What timezone does the report use?
The report uses the timezone configured for your Moselle workspace. Make sure your sales integrations are aligned to the same timezone so month-end orders aren't misattributed.
Why is my category breakdown missing some categories?
Mo can only break down categories that are set up in your product catalog. If a category is missing, check that your products are correctly categorized in Moselle before running the report.
How specific are Mo's marketing recommendations?
Recommendations are based on the unit gaps Mo identifies in your data. The more complete your sales and forecast data, the more targeted the recommendations. Mo will indicate which category each recommendation targets and estimated unit impact where data is available.
Can I run this report for a past month?
Yes β replace `[current month]` in the prompt with the month you want to analyze. Mo will pull historical actuals and compare them against the forecast projection for that period.
Can I add channel or customer cohort breakdowns?
Yes β extend the prompt to ask for revenue by channel or new-vs-returning customer splits. Mo will include any cuts your connected data supports.
Related Guides
Save Your Favourite PromptsForecast vs ActualsMonthly RollupLast updated