Build a Quarterly SKU Rationalization Analysis Workflow
For Brand Managers ·
What This Builds
Portfolio cuts are happening across the category right now, and a defensible keep, cut, or reformulate case has to hold up in a room full of people with their own opinions about which SKUs matter. Building that case by hand in a spreadsheet, sorting every item against margin, volume trend, and cannibalization risk, is a multi-hour job done from scratch every quarter. This workflow turns it into a repeatable three-prompt chain: define your criteria once, run every SKU through them, and get a drafted recommendation for each one you can defend or challenge.
Prerequisites
- Plus plan ($20/month) with data analysis enabled, so you can upload a spreadsheet directly
- A SKU-level export with volume, margin, and cost data (from your BI tool, Circana or Nielsen extract, or internal finance system)
- A rough sense of your team's existing cut criteria, even if it's never been written down formally before
The Concept
Picture briefing a new analyst once a quarter instead of explaining your rationalization criteria from scratch every time. You hand them the spreadsheet, tell them the rules (below a certain margin and trending down, flag it; strong margin but tiny volume, flag it for a different reason), and ask them to sort every row and explain their reasoning. That's what this chain of prompts does, except the "analyst" is ChatGPT working against your uploaded file, and the whole conversation is reusable next quarter with a fresh export.
Build It Step by Step
Part 1: Prepare the Export
Pull a SKU-level export with, at minimum, unit volume for the last several periods, margin percentage, and any velocity or trend figure your BI tool already calculates. Strip out anything that isn't needed for the analysis, and if the data comes from a syndicated source under a data-license agreement, check with whoever manages that contract before this data leaves your company's systems (see the note below).
Part 2: Define the Criteria (Prompt 1)
Upload the file to ChatGPT with data analysis enabled and start with a prompt that defines your rules explicitly, rather than asking the model to invent its own judgment calls:
"I've uploaded our SKU-level sales data. Using margin_pct, volume_trend, and velocity columns, flag any SKU where margin_pct is below [your threshold] and volume_trend has declined for two consecutive periods. Separately flag any SKU with strong margin but volume in the bottom 10% of the category, since those may be candidates for a different kind of decision. Show your work: list the exact numbers you used for each flagged SKU."
Part 3: Draft the Recommendations (Prompt 2)
Once the flagged list looks right, ask for a recommendation per item:
"For each flagged SKU, draft a two-sentence recommendation: keep, cut, or reformulate, with the specific numbers that support it. Note any SKU where cutting it might risk cannibalization loss to a competitor rather than a clean margin gain."
Part 4: Stress-Test It (Prompt 3)
Push back on the first pass before it goes anywhere near a portfolio review:
"Which of these recommendations is the weakest, and why? What additional data would make you more confident in the cut list?"
This step matters more than it looks. A model that only ever agrees with its own first answer isn't useful in a room where someone will ask the hard question anyway. Asking it to find its own weak points first means you walk in prepared for that question.
Real Example: A Salty Snacks Portfolio Review
Setup: An export of roughly 40 SKUs across a salty snacks line, each row carrying margin percentage, a four-quarter volume trend, and a velocity score from the category's syndicated data.
Input: The three-prompt chain above, run against the full export, with the threshold set to the team's existing informal cut line.
Output: A shortlist of eight SKUs flagged for review, each with a one-line rationale ("margin trending below category average for three straight quarters, no offsetting volume growth") and a note on two of them where the recommendation flags cannibalization risk from a competitor's adjacent product, worth a second look before cutting.
Time saved: Turns a multi-hour spreadsheet build into a working first draft in under an hour, leaving the remaining time for the debate the recommendations are meant to start rather than the mechanics of producing them.
Before this goes into a portfolio review: spot-check the margin and velocity figures ChatGPT cites for at least the top few flagged SKUs against the original export. Data analysis tools can misread a column header or apply a filter slightly differently than intended, and a wrong number in a room full of finance and sales partners undercuts the whole case.
What to Do When It Breaks
- ChatGPT loses track of the uploaded file partway through the chain → Long conversations with a large file attached can lose context. If answers start contradicting earlier ones, re-upload the file and restate the criteria from Prompt 1 rather than trying to patch a drifting conversation.
- The flagged list looks obviously wrong (too many or too few SKUs) → Your threshold language was probably ambiguous. Restate the criteria with exact numbers ("below 22%" rather than "low margin") instead of relative language the model has to interpret.
- Recommendations ignore an obvious business reason to keep a SKU (a loss leader, a retailer requirement) → The model only knows what's in the spreadsheet. Add a short list of known exceptions to Prompt 1 so it doesn't flag SKUs you already know you're keeping for reasons the data alone won't show.
Variations
- Simpler version: Run just Prompt 1 and Prompt 2 for a lighter-weight quarterly check, and save the stress-test prompt for the quarters where a cut decision is genuinely close.
- Extended version: Build a running Google Sheet log of every quarter's flagged list and outcome, then paste last quarter's decisions into a future chain as a comparison point, so the model can flag whether a previously "watch" SKU has moved into "cut" territory.
What to Do Next
- This week: Run it once against last quarter's data as a dry run before the next real review cycle.
- This month: Write down your actual cut criteria in one place so Prompt 1 doesn't have to be reconstructed from memory each quarter.
- Advanced: Pair this with the weekly data-to-slide pipeline to turn the quarterly output directly into review-ready slides instead of a chat transcript.
A Note on Data Sensitivity
SKU-level margin, cost, and syndicated sales data is exactly the kind of information a competitor would want and a data provider's license agreement usually restricts. Before uploading this export anywhere, confirm you're using an enterprise or no-training-data tier of ChatGPT rather than a personal consumer account, and check with IT or legal about whether your Nielsen or Circana contract has any restriction on moving that data into a third-party AI tool. When in doubt, aggregate or anonymize SKU identifiers before the file leaves your internal systems.
Advanced guide for Brand Manager professionals. These techniques use more sophisticated AI features that may require paid subscriptions.