Joyanto Roy
Demand planning & analytics
Demand planning & analytics
Carlsbad, California
Global demand planning
Planning seasonal launches across channels. Connecting consumer demand, inventory coverage, and working capital.
Comparable launches · Marketing & seasonality · Channel forecast
Launch S&OP · Freight economics · Working capital
Config packs · Imputed history · Snowflake
San Diego, California
Inventory operations
Location-level replenishment across 500+ kiosks. Using transaction velocity, lead time, and field exceptions to identify where stock is needed.
SQL Server · Power Query · Replenishment logic
San Francisco, California
eCommerce transformation
Moving from a legacy storefront to Shopify, and connecting online merchandising with the workflows needed to support a growing retail business.
Shopify · Customer experience · Workflow design
San Francisco, California
Experiments & coaching
Helping growth and product teams turn broad questions into hypotheses, experiments, and recommendations. Work spanning 18 cohorts and 200+ students.
Experiment design · Product design · Growth marketing
San Mateo, California
Workforce analytics
Translating customer questions into useful product decisions. Building a roadmap around segmentation, employee feedback, and executive reporting.
Product roadmap · Segmentation · Data visualization
Santa Clara, California
Technical research and development analysis
Working with scientists and engineers to understand technical activities, compare innovations, and build a documented chain of evidence.
Technical interviews · Benchmarking · Evidence synthesis
San Diego, California
Joyanto Roy
Curiosity has taken me across products, retail, and supply chains. I like asking questions, connecting ideas, and making sense of complex problems with the people closest to them.
Meet JoySan Diego, California
For demand planning, inventory, allocation, and analytics work.
Bachelor of Business Administration in AccountingMaster in Professional AccountingThe University of Texas at Austin
How I workGlobal Demand Planner · NIXON · Case Study
A launch S&OP plan: coordinate factory releases, protect availability across channels, and control freight and cash.
Launch S&OP · sales and operations planning
A seasonal product needs to launch together on our website, with wholesale partners, and on Amazon. An ocean delay can leave a channel without stock while the campaign is already running.
The decision: agree what must be available at launch, work backward to factory departures, and air only the quantity needed until ocean inventory is ready.
Illustrative NIXON planning case. The quantities and dates demonstrate the approach; they are not claimed historical results.
Start with the promise
Sales, marketing, and merchandising agree the date, product range, and opening allocation for each channel. Demand and Supply turn that promise into one plan. Ex-factory dates can differ; consumer launch dates do not.
Work backward
Air takes 5 days; ocean takes 45 days. Amazon also needs 30 days at its distribution centers. Its shipment therefore leaves earlier than stock for our website or wholesale partners.
Here, the vendor’s initial production plan leaves a ten-day selling gap. First test whether the vendor can release ocean stock earlier. Moving those departures ten days earlier closes the planned gap and removes the base need for air. Compare that option’s production, storage, and financing costs.
Size the opening shipment
For a 4,000-unit order, forecast consumer demand over the ten days before ocean stock is ready. Treat the wholesale buyer’s agreed opening order separately.
| Channel | Basis for opening stock | Air units |
|---|---|---|
| Direct to consumer (DTC) | 20 units/day × 10 days | 200 |
| Wholesale | 100-unit opening order agreed with buyer | 100 |
| Amazon marketplace | 10 units/day × 10 days | 100 |
| Total | Launch stock by air; remaining 3,600 by ocean | 400 |
These quantities add together across channels. Confirm wholesale receiving and retailer readiness; the example assumes no extra processing time there. Air covers the planned gap, with no extra disruption reserve included.
Test the coverage before adding a reserve. Freeze each channel’s forecast at its air-release decision date, then score demand over the actual ten-day bridge. WMAPE measures volume error, bias flags repeated over- or underforecasting, and MAD expresses the miss in units. Review the distribution of shortages and ocean delays against the service target; a monthly average or a fixed MAD multiplier does not determine the air quantity.
Make the trade-off visible
The premium is 400 × ($10 − $7.50) = $1,000. Most inventory still travels by ocean; the launch no longer depends entirely on its arrival.
At $750 retail and $100 product cost, one preserved DTC sale contributes about $600 before the extra air premium, allowing 3% payment fees, $20 outbound fulfillment, and $7.50 baseline inbound freight. Two otherwise lost DTC sales can cover the $1,000 premium. This is a break-even screen, not a forecast of profit: if customers simply buy later, do not count those sales as incremental.
Practice behind the case. Quarterly ex-factory batches could share terms starting with the quarter’s last shipment, followed by 45 days to pay. Earlier batches therefore had a longer supplier-funded window. The planning judgment was to combine those terms with staged releases, sales receipts, and alternative routes.
Simple example below: freight is net 30 from each shipment and product is net 45 from its own ex-factory date. These dates illustrate the cash sequence; they do not recreate the quarterly arrangement.
In this schedule, DTC air freight is due on day +20 and product on day +35. At three-day payouts, the 200-unit opening batch generates $141,500 after the stated selling allowances by day +12 if it sells to forecast. That cash helps fund bills; it is not profit.
Wholesale pays 30 days after accepted delivery. Amazon pays 30 days after consumer sale, at assumed net proceeds of 75% of retail; wholesale sells at 50% of retail. Amazon’s earlier air shipment creates bills on days −10 and +5, before its first marketplace payout on day +30. Finance therefore checks the whole shipment calendar.
The funding base changes the answer. If agreed terms let a small final shipment defer the whole $400,000 product invoice, compare the $1,000 air premium with interest on the borrowing avoided across that invoice. Deferring an otherwise borrowed $400,000 for 30 days at 5% saves about $1,644; the financing-only break-even is about 19 days.
This is a separate conditional financing example, not savings added to the cash schedule above. It assumes the full $400,000 would otherwise remain borrowed. Use daily borrowing after sales receipts in the actual decision, and count only an extension caused by the plan. If both routes get the same quarterly due date, neither gets a payment-term advantage.
Decision rule: approve the smallest split whose expected protected contribution and operating benefits exceed all added costs. Bring ocean forward when that is cheaper and feasible; expand air only for a justified risk.
Risk versus reward
| Reward ↑ Risk → | Lower risk | Higher risk |
|---|---|---|
| Higher reward | Approve the bridgeReliable opening demand and a workable air route justify the premium. | Stage the commitmentProtect the opening stock; hold a defined reserve and set a release deadline. |
| Lower reward | Use oceanOcean meets the launch or customers will wait without material loss. | Rework the planResolve product readiness, weak demand, or shared bottlenecks before spending more. |
Air reduces dependence on a vessel or dock. It does not remove shared supplier, customs, or tariff risk. An extra delay reserve is a separate decision; an Amazon air rescue still needs 35 days including DC processing.
A shared decision
Monthly S&OP approves the launch quantities, freight budget, cash requirement, and contingencies. Weekly launch reviews escalate any channel shortage before the last feasible air departure. Supply proposes the revised quantity and cost; Finance and the launch owner approve the change.
Further reading: McKinsey on cross-functional launch planning ↗
NIXON · Cohort analysis & demand planning · Case Study
Start with comparable products. Adjust for the launch they will actually get. Separate consumer demand from wholesale load-in.
How much should a new product carry into launch—and how much belongs in DTC versus wholesale?
Start with a transparent two-comp baseline. Use broader launch history to improve comp selection, estimate launch conditions, and explain channel differences. Update the plan as demand arrives, keeping each method accountable to the baseline.
Worked example · synthetic data, not reported NIXON results. The plan covers two pre-launch weeks plus the first seven selling weeks. DTC opens on launch day; wholesale load-in ships before it. All totals and scorecards use this same nine-week launch window.
A and B make the arithmetic inspectable. The methods integrated below describe how to develop and test this approach on a broader, dated launch history; they are not fitted-model results from these two products.
01 · Establish the comparison
Match franchise, price, CMF, region, distribution, and weeks since launch. A franchise collector release needs comparable collector launches. An ultra-limited drop can serve as a sustain campaign, keeping interest in the franchise after launch. Its supply-constrained sales should be compared with similar campaigns, not used as the demand curve for a volume launch.
| Input | Comp A | Comp B | New item C |
|---|---|---|---|
| Marketing support | Paid ads + site hero + email | Paid ads + site hero + email | Email only |
| Seasonal index | 1.00 | 1.00 | 1.20 |
| Stockout-adjusted all-channel units | 3,360 | 5,040 | To forecast |
| Weight in baseline | 50% | 50% | One new launch |
Top-line baseline: (3,360 + 5,040) ÷ 2 = 4,200 units. The comps are alternatives for one launch, so average them; do not add them. Equal weights make the starting assumption transparent.
Across earlier launches, group products by franchise, price, CMF, planned channel reach, and launch support. Scale numeric features and encode categories using the training history. Use attributes known before the new launch; its later sales cannot influence which comps are selected.
The output is a shortlist with reasons for inclusion, not a forecast. Merchandising reviews the nearest relevant group and selects A and B. Keep collector releases and sustain drops separate from volume launches; if no credible group exists, document the weak match instead of forcing one. The equal-weight average remains the benchmark.
Method reference: An Introduction to Statistical Learning · Clustering.
02 · Find the normal selling pattern
Wholesale’s large pre-launch orders belong in the launch commitment, but not in the consumer selling-rate sample. Exclude those weeks and any stockout weeks using launch dates, order records, and availability flags. Missing demand during a stockout is not zero demand.
Week 4: A retains 0 sales + 280 estimated lost units; B retains 0 + 420.
Apply TRIMMEAN to the eligible, clean weekly records to estimate the normal pace. In this example, A returns 280 units/week and B 420 units/week: an average of 350 units/week, or 2,450 DTC units over seven selling weeks, before launch adjustments.
This steady-flow rate is a DTC proxy until channel records validate it. TRIMMEAN trims both tails; it does not identify wholesale orders, detect stockouts, or assign channels by itself.
| Historical record | Comp A | Comp B | Treatment |
|---|---|---|---|
| Pre-launch wholesale load-in | 1,400 | 2,100 | Keep in launch total; exclude from pace |
| Six fully in-stock selling weeks | 1,680 | 2,520 | Six eligible weekly observations |
| Week 4 · fully out of stock | 0 observed sales | 0 observed sales | Keep actuals; exclude week from rate sample |
| TRIMMEAN(eligible weeks, 1/3) | 280/week | 420/week | Remove one low and one high week from rate sample |
| Week 4 estimated lost units | 280 | 420 | One full week × clean weekly rate |
| Stockout-adjusted launch total | 3,360 | 5,040 | Load-in + observed sales + estimated lost units |
A’s eligible weekly totals are 210, 238, 266, 294, 322, and 350; B’s are 1.5 times A’s. TRIMMEAN with 1/3 removes one observation from each tail, leaving four: (238 + 266 + 294 + 322) ÷ 4 = 280. Trimming changes the rate estimate; it does not delete the original weekly records.
With only six eligible weeks, 20% or a rounded 33.33% trim would remove zero observations in Excel. Use 1/3 exactly for this illustration. The fraction is not a universal policy; validate it on a broader history. These symmetric values illustrate the process, not a demonstrated accuracy gain from trimming. No wholesale replenishment occurs during the selling weeks in this simplified history.
Retain original weekly sales, returns, channel, product age, campaign exposure, and availability records. Alongside them, store imputed historical demand: an estimate of what could have sold during a confirmed stockout. Keep observed units, estimated lost units, and the combined history in separate fields.
| Selling week | Observed units | Estimated lost units | Adjusted history |
|---|---|---|---|
| W3 | 266 | 0 | 266 |
| W4 · stockout | 0 | 280 | 280 |
| W5 | 294 | 0 | 294 |
Week 4’s actual sales remain 0. The 280 estimated lost units bring its adjusted history to 280. Use that adjusted history when comping the next NPI so limited availability is not carried forward as weak demand. For partial stockouts or a changing launch curve, refine the estimate using in-stock exposure and matched product-age weeks.
Uncorrected history: 3,850 × 0.75 × 1.20 = 3,465 units
Stockout-adjusted history: 4,200 × 0.75 × 1.20 = 3,780 units
The correction adds 315 units to C’s illustrative plan. That is the effect of the demand estimate, not proof those sales were lost or that the next launch will succeed.
For each correction, retain the reason, availability evidence, method, assumptions, reviewer, timestamp, and version. Keep previous versions and the original transactions. Genuine zero-sales weeks remain zero when the product was available. Impute only identified gaps; review large corrections against comparable launches, traffic, returns, and later catch-up sales. Save the exact history version used by each forecast so a later correction cannot rewrite what was known at the decision date.
SAP Learning · Cleansing sales history ↗03 · Normalize the launch conditions
A and B received paid ads, a site hero, and email. C gets email only. Use an illustrative 0.75 marketing factor, then a 1.20 seasonal factor for C’s stronger selling period. A weaker season would use a factor below 1.00.
4,200 − 1,050 + 630 = 3,780 units.
4,200 × 0.75 × 1.20 = 3,780 units
These factors are assumptions, not measured marketing lift. Estimate them from comparable exposure or controlled tests, keeping season, price, and availability separate. If the marketing story changes, revise the assumption and save a new forecast version.
Fit weekly demand across earlier launches using product age, calendar season, price, channel reach, and actual marketing exposure. Product age and calendar time are separate: a launch-week spike should not become a holiday effect. Keep observed sales and imputed demand flagged, and check whether conclusions change when estimated weeks are excluded.
Predict the same product under the comps’ launch support and under C’s email-only plan in its target season. That comparison can replace the assumed 0.75 and 1.20 factors. Model the effects together and allow channel responses to differ; do not apply the same marketing or seasonal uplift a second time. If hero placement, ads, and email always occur together, the history cannot reliably separate their individual effects.
Method reference: Forecasting: Principles and Practice · Marketing and seasonal predictors.
Regression can predict an association; it does not establish incremental sales. Where feasible, randomly assign eligible audiences to email-only support or the added campaign. Agree the test window and success measure in advance, hold price and product availability comparable, and compare units and contribution per assigned customer. Check total purchases across channels so a channel shift is not mistaken for new demand.
Use the estimated difference and its uncertainty to inform the next marketing assumption. Check that the tested audience and campaign resemble the next launch before transferring the result. If randomization is impractical, retain the historical relationship as a planning estimate rather than label it causal lift.
Method reference: Microsoft Research · Controlled experimentation.
04 · Reconcile the channel plan
| Channel | Calculation | Forecast units | Timing |
|---|---|---|---|
| DTC | 350/week × 7 weeks × 0.75 × 1.20 | 2,205 | Launch day through week 7 |
| Wholesale balance | 3,780 − 2,205 | 1,575 | Pre-launch allocation |
| All channels | DTC + wholesale | 3,780 | Full nine-week launch window |
The 1,575-unit wholesale balance is an allocation hypothesis, not proof of consumer demand or a firm order. Reconcile it against account orders, opening inventory, return rights, and retailer sell-through. One buyer’s load-in is a different signal from many individual DTC purchases.
For simplicity, both channels receive the same adjustment factor. Real channel responses can differ. This example covers DTC sales and brand shipments to wholesale; retailer sales are a validation signal, never added again. Include marketplace as its own channel where present.
Fit a small, pruned tree on earlier launches to test whether attributes such as collector status, price band, or distribution reach explain DTC share or channel forecast error. Require enough launches in each branch and stable performance on later launches. A rule such as “collector release with broad DTC reach” is a candidate to test, not a finding asserted by this example.
The output is an understandable segment rule for reviewing allocation. Use a separate rule only if it improves on the pooled plan; otherwise retain the common baseline. Reconcile any revised DTC share to the same total and validate the wholesale remainder with account evidence.
Method reference: An Introduction to Statistical Learning · Decision trees.
05 · Learn as the launch unfolds
The adjusted comp curve supplies the opening forecast. As each week closes, compare clean, in-stock DTC demand with the corresponding week since launch. Test a time-series update that smooths the observed-to-planned demand ratio and, if supported by enough history, its trend. Learn the update strength on older launches so one unusually strong week does not rewrite the entire season.
Project that update over the remaining launch-age curve, using only campaign plans and evidence available at that review. Model wholesale load-in and replenishment separately; a bulk order should not reshape the DTC curve. Treat stockouts as constrained observations and report their estimates separately.
Decision output: a new forecast version by channel and week, with a plausible demand range for Supply to review. Preserve the original launch commitment. Compare an updated curve with the unchanged comp curve at the same review date and over the same remaining horizon.
Method reference: Forecasting: Principles and Practice · Updating level and trend. The ratio update described here is a candidate adaptation to launch demand, to be tested against the simpler curve.
06 · Test the forecast against actuals
Freeze the forecast and the comp-history version before pre-launch load-in. Compare later, channel-tagged actuals against that frozen forecast. Here DTC is stronger than planned while wholesale is weaker; a small total miss would hide both.
Actual − forecast: DTC +195 units; wholesale −75 units.
Action: review the DTC allocation and near-term supply; check wholesale commitments before reducing them. Do not apply DTC’s upside to every channel. The 120-unit net miss conceals 270 units of absolute channel error.
| Channel | Forecast | Actual | Forecast − actual |
|---|---|---|---|
| DTC | 2,205 | 2,400 | -195 |
| Wholesale | 1,575 | 1,500 | +75 |
| Total | 3,780 | 3,900 | -120 |
| Week | Adjusted forecast | Later actual |
|---|---|---|
| W1 | 236.25 | 245 |
| W2 | 267.75 | 280 |
| W3 | 299.25 | 320 |
| W4 | 315 | 350 |
| W5 | 330.75 | 375 |
| W6 | 362.25 | 400 |
| W7 | 393.75 | 430 |
Where total actual demand is zero, percentage WMAPE and bias are undefined; retain unit errors. Flag stockout-affected evaluation windows and report estimated demand separately; do not score the model against its own imputations.
The scorecard above checks the worked example; it does not validate a trained model. Build a broader history of complete launches across seasons and channels. Train on older launches, tune on successive later launch groups, and reserve the most recent complete group for a final untouched test. Keep each launch together rather than randomly splitting its weeks across training and testing.
Illustrative evaluation layout · all scores are synthetic; no model was fitted.
S1–S6 are hypothetical later launches, not measured NIXON outcomes.
| Candidate | What changes | What must be demonstrated |
|---|---|---|
| Simple benchmark | Clean, equally weighted A/B history and average launch curve | A reproducible starting forecast |
| Judgment-adjusted plan | The declared marketing and seasonal assumptions used here | Whether the adjustments help beyond the raw comp average |
| Model challenger | Test comp selection, fitted effects, segment rules, then curve updates separately | A repeatable improvement at the same decision date and horizon |
| Planner override | A documented change after reviewing commercial evidence | Added value beyond the best validated forecast |
At each cutoff, fit comp-selection rules, historical corrections, and model settings using only records available then. Supply the future marketing plan known at that point, not realized spend learned afterward. Score the original nine-week launch plan separately from later updates over their remaining horizons.
Compare WMAPE, MAD, and forecast bias by channel, segment, and planning horizon; use MAPE with its zero-demand limitations stated. Also review service, excess inventory, returns, and expedites. Agree a useful improvement threshold with Supply and Finance before testing. Adopt a method only when its gains hold across later launches without unacceptable segment bias or operating cost; otherwise keep the simpler forecast.
Method reference: Forecasting: Principles and Practice · Evaluation through time.
07 · Turn the evidence into a commitment
Demand planning owns the baseline and exceptions. Marketing confirms exposure; merchandising validates the comps; Sales reconciles wholesale orders and returns. Supply checks the next available delivery, and Finance reviews the cash and inventory exposure.
At each review, forecast by channel through manufacturing lead time plus the fastest feasible transit and receiving time. Net against usable inventory and confirmed inbound supply; set any safety stock from forecast error and the service target. The launch forecast is an input to that decision, not an automatic purchase order.
After each launch, retain its observed weekly sales and publish a separately versioned, stockout-adjusted history for future NPI comparisons. Keep forecast versions and override reasons. Evaluate service, excess inventory, returns, and expedites alongside forecast error. This illustration demonstrates the method; it does not establish a measured business improvement.
View Air vs. Ocean Case StudyNIXON · Demand planning systems · Case Study
Choose the platform around the planning work. Keep history, assumptions, and forecast releases connected.
A forecast becomes difficult to trust when historical corrections live in one file, launch assumptions in another, and each channel rebuilds its own version of the model.
One shared data foundation. Versioned configuration packs. A rolling forecast that carries its evidence with it.
Architecture proposal · Extending the cohort approach into a repeatable planning process. The record examples and 13-week horizon are illustrative.
01 · Choose the platform
The team needs weekly demand by product, location, and channel, with traceable corrections and an approved forecast everyone can use. The platform must support that work and the people maintaining it.
A forecasting method estimates demand; a platform supports the process. Comparable launches, regression, or time-series methods can be used across different tools. Forecast quality still depends on the history, assumptions, method, and evaluation against later outcomes.
| Approach | Strengths | Trade-offs |
|---|---|---|
| Excel + Python | A familiar place to explore data, inspect a baseline, and review exceptions. Useful for a bounded model or prototype. | Shared history, repeated refreshes, approvals, and workbook copies need explicit controls. Native Python in Excel has restricted connectivity; a separate Python service is a different setup. |
| A planning cube | A planning system such as IBM TM1 organizes measures by product, channel, location, time, and scenario. Planners can edit totals, spread changes to detail, and test scenarios. | Dimensions, calculation rules, integrations, licenses, and administration need ownership. Specialized forecasting methods may require an additional modeling layer. |
| Cubeless Snowflake framework | Shared relational tables and views retain observed history, estimates, rules, and forecast issues. SQL and Snowpark can process that data near where it is stored. | Planner entry, allocations, overrides, and release workflows must be built or integrated. Engineering support, compute usage, and maintenance remain real costs. |
Why cubeless here? This proposal assumes the shared history already resides in Snowflake, several channels and teams reuse it, and an engineering owner can operate the model. Those conditions favor a common data foundation with versioned config packs. A 13-week horizon alone does not justify rebuilding a working planning process.
When to choose differently: favor a planning cube when frequent top-down allocations, scenario edits, and established planner workflows dominate. Keep Excel + Python when a smaller model meets the review and control requirements. Excel can also remain the review interface for either a cube or a Snowflake-backed process.
Selection test: use the same historical cutoff and forecasting recipe to compare reconciliation, planner review effort, refresh time, and total operating cost. No option is assumed to be inherently faster, cheaper, or more accurate.
Select a component to see its inputs and owner. Trace a DTC forecast, or follow a stockout correction through review and release.
One connected planning system
Observed sales, stockout evidence and approved rules stay connected to the forecast. Each release preserves the versions that produced it.
02 · Establish a trustworthy history
Retain source sales, orders, returns, inventory availability, and product attributes. Standardize planning history at product × location × channel × day, then roll it into the agreed retail weeks. Check mapping uniqueness before joining records; shared inventory pools must not be counted once for every channel. Record both when an event happened and when it became available to planning, so a late correction cannot quietly enter an earlier backtest.
| Record | What is retained | How it is used |
|---|---|---|
| Observed history | Source identifier, revision, event date, received time, units and channel | Reconcile to source transactions; preserve genuine zero-sales periods |
| Imputed history | Estimated lost units, stockout evidence, method, version and review status | Fill confirmed gaps in demand evidence without rewriting sales |
| Adjusted history | Observed units + the selected version of estimated lost demand | Compare launches and create a planning baseline |
| Forecast issue | Issue time, source cutoff, input versions, config pack, transformation release, model version and scenario | Reconstruct what was known when the forecast was approved |
Comp A, week 4: 0 observed + 280 estimated = 280 adjusted units
The same record from the cohort case now has a durable trail. An estimate is not a transaction. Keep the original zero, retain revisions to the estimate, and pin the chosen history version to each forecast issue. Do not count retailer sell-through again on top of the brand’s wholesale shipments.
03 · Put assumptions under control
A config pack is a versioned bundle of business rules for a defined planning segment. It is part of this design, not a native Snowflake product feature. The same forecasting process reads different approved packs rather than relying on copied workbooks or hard-coded exceptions.
| Setting | Illustrative rule | Accountable team |
|---|---|---|
| Scope and calendar | Product group, region, channel mapping and retail-week calendar | Merchandising + Demand |
| History treatment | Separate load-in; flag stockouts; select an approved imputation method | Demand + Data |
| Forecast recipe | Eligible comps, model version, marketing plan and seasonal factors by target week | Demand + Marketing |
| Rolling horizon | Next 13 weeks; review weekly; extend if the supply decision needs more coverage | Demand + Supply |
| Release controls | Effective dates, validation thresholds, approval owner and exception rules | Demand + Finance |
Resolve one approved pack per series and effective period. Reject overlapping scope or missing settings rather than silently selecting a convenient default. Release a new pack version when an assumption changes; retain the old one for the forecast already issued. Configuration selects approved methods and parameters, not arbitrary executable code.
04 · Run the forecast as a governed cycle
Synthetic DTC series · units · independent of the correction walkthrough
Follow a column to see how the forecast for one target week changed as evidence arrived. The original issues stay intact.
| Forecast issued | W1 | W2 | W3 | W4 | W5 | W6 |
|---|---|---|---|---|---|---|
| Before W1 | ||||||
| Before W2 | — | |||||
| Before W3 | — | — | ||||
| Before W4 | — | — | — | |||
| Observed later | 103 | 122 | 147 | 161 | — | — |
Select a forecast value to follow its target week across issues.
Persist forecasts at issue × product × location × channel × target week × scenario. The issue identifier distinguishes two forecasts for the same future week. Keep baseline, override, and approved quantities separate. A “current approved” view selects one complete release, so reports cannot mix old and new rows.
The 13-week example is a planning choice, not a fixed system limit. Cover the manufacturing, transit, and receiving decision window. Supply then nets the demand plan against usable stock and confirmed inbound inventory; it does not reduce the demand history to match constrained supply.
05 · Make the connections efficient
Keep large transformations near the data in Snowflake. Use shared SQL transformations for common calendar, product, and channel logic; use Snowpark for approved estimation or forecasting routines that need Python. Reporting tools and Excel consume the released output rather than downloading and rebuilding the full history.
Use incremental processing where it is supported and beneficial. A corrected stockout can affect later rolling windows, and a new pack can affect a whole segment. Track those dependencies rather than assuming that only newly arrived rows need work. A new forecast issue may still need to score every eligible series.
Measure refresh duration, data freshness, rows scanned, and credits per approved run under realistic history and change volumes. Faster refresh is useful only if the plan reconciles and reaches the team before its decision cutoff. No speed or cost improvement is assumed here.
06 · Prove reliability before scaling
| Test | Evidence required |
|---|---|
| Reconciliation | Observed totals tie to source records; adjusted totals equal observed plus selected estimates; joins do not multiply quantities |
| Point-in-time replay | Retained inputs, transformation release, pack and model reproduce the baseline; retained approved overrides reconstruct the issued forecast |
| Incremental equivalence | The incremental result matches a full rebuild at the same cutoff, including stockout revisions, late arrivals and config changes |
| Failure recovery | Retries do not duplicate rows; incomplete or unapproved runs never replace the current approved release |
| Forecast value | Compare later launches with the simple comp baseline at matching issue dates and horizons, using WMAPE, MAD and forecast bias |
| Planning usefulness | A planner can trace a material change and its owner; Supply and Finance receive reconciled quantities on time |
Begin with one product group and its channels, run alongside the existing process, and investigate differences before expanding. Score against reliable observed demand; report availability-constrained periods separately. Never treat imputed demand as independent ground truth. Retain the zero-demand limitations of percentage metrics and judge overrides separately. Accuracy, reliability, and operating cost all need evidence.
07 · Make it a shared operating process
Demand owns the model and exception review. Merchandising maintains product relationships and comp eligibility. Marketing supplies the exposure plan; Sales validates wholesale commitments and returns. Data engineering owns dependable ingestion and orchestration. Supply sets the decision horizon, while Finance reviews approvals and inventory exposure.
The intended result is a forecast that can roll forward without losing its past: current evidence for the next decision, a common release for every team, and a preserved record of the assumptions behind each commitment. Start with a small, traceable model; expand after it reconciles, meets the planning cutoff, and proves useful against the baseline.
Revisit Cohorts & Launch DemandInventory Operations Analyst · Tricopian / FuelRod
Transactions, battery swaps, returns, charged-unit rotation, and inventory varied across airports, theme parks, convention centers, and other high-traffic venues. A network average could hide the location about to stock out.
Refreshable Excel dashboards combining Power Query with SQL Server data, plus kiosk-level thresholds using transaction velocity, seasonal demand, and field exceptions.
The logic surfaced which locations needed replenishment, which had slow-moving inventory, and how shipment timing and quantity should change by venue.
A healthy network total does not guarantee availability at a busy kiosk. Location velocity and replenishment lead time determine where the next unit is useful.
Worked example · fixed assumptions
Consider a sample location with 100 available units, no inbound stock, a 30-unit buffer, and a seven-day review period.
12 units/day × 7 days + 30 buffer = 114 units
16 units remain at the expected arrival date. Replenish 98 units to cover lead time, the next seven days, and the buffer.
Constant demand, certain lead time, and a fixed buffer simplify the example. A live plan also needs swaps, returns, usable capacity, shipment constraints, and field exceptions.
All model inputs are synthetic. The example demonstrates a stock threshold, not FuelRod’s operating policy or actual kiosk performance.
eCommerce Manager · Far West Fungi
A legacy Yahoo storefront constrained the customer experience, digital merchandising, and the workflows needed to connect online growth with a real-world retail business.
Migrated direct-to-consumer commerce to Shopify and redesigned the surrounding operating workflows, connecting digital merchandising with retail and online customer journeys.
The platform connected product presentation and customer experience with the workflows needed to run the online business.
Revenue = visits × conversion rate × average order value. That decomposition separates traffic, buying behavior, and basket size; the reported 10× outcome alone does not establish which factor caused the growth.
DTC revenue growth
Reported growth shown as a relative comparison. The bars do not represent actual revenue or a year-by-year growth path.
Growth & Product Design Scrum Master · Tradecraft
Early-stage companies brought messy growth and product questions. Multidisciplinary student teams needed a way to move from opinion to evidence inside a three-month program.
Sourced startup engagements and coached teams to frame hypotheses, design experiments, interpret signals, and turn what they learned into client-ready recommendations.
Product design and growth marketing teams learned to share a problem definition, evidence standard, and decision cadence across 18 cohorts.
Define a success measure before the experiment. A promising result still needs enough observations and a fair comparison before it becomes a recommendation.
The same discipline applies to forecasting: assumptions become useful when they are explicit, testable, and updated.
Product Marketing Manager · QuestionPro
Retail and frontline organizations needed more than survey responses. Leaders needed fast, segmented views of engagement—and product teams needed clear priorities.
Managed the Workforce analytics roadmap and helped shape Pulse, turning customer and Sales needs into engineering priorities for heatmaps, scorecards, eNPS, trend comparisons, team segmentation, and rapid check-ins.
Connected the language of customers and Sales with the specificity Engineering needed to build useful executive analytics.
More detailed segmentation can reveal a problem, but small groups create unstable comparisons and privacy concerns. A useful view needs context as well as a score.
Favorable responses · Lower → Higher
Synthetic values; higher is favorable in every column.
Reading the visualization
In this example, Team D’s support score deserves a closer look. Before a conclusion, check response counts, participation, prior waves, and comments.
eNPS = % promoters − % detractors
For a separate synthetic sample: 55% promoters, 25% passives, and 20% detractors yield an eNPS of +35. It is a different measure from favorable-response percentages.
Conceptual display only; it demonstrates the product logic without reproducing customer or company data.
R&D Associate · KPMG
Research tax-credit positions had to connect complex engineering work to qualification standards and prior technologies—with enough evidence to withstand scrutiny.
Partnered with scientists and engineers to understand technical activities, benchmark innovations against what came before, and support clear, defensible positions.
Learn the operating reality from subject-matter experts, structure the evidence, test the claim, and communicate the conclusion in language decision-makers can use.
A conclusion should trace back to an interview, a documented activity, or a comparison. Keep the technical evidence distinct from assumptions and interpretation.
A strong analysis makes its assumptions, comparisons, and evidence trail inspectable.
Working method
Name the decision, owner, time horizon, constraints, and cost of being wrong.
Connect the source data, automate refreshes, and make the transformations visible.
Choose math that fits the decision: forecast, analog, regression, threshold, or experiment.
Translate model output into trade-offs Finance, Revenue, Operations, and regional teams can debate.
Monitor variance and exceptions, then update assumptions as evidence arrives.
Advanced Excel · Power Query / M · SQL Server · Dynamics 365 Business Central
Forecasting · Regression · Variance analysis · Segmentation · Benchmarking · Experiment design
KPI reporting · Business reviews · Buy and replenishment logic · Exception monitoring · GenAI modeling
Cross-functional work
Finance, Operations, and Product bring different questions to the same numbers. My work is to make the assumptions and trade-offs clear enough for those teams to make a decision together.
Connect forecast choices to inventory investment, revenue expectations, and the cost of upside versus downside.
SHARED VIEWScenario + varianceConvert demand signals into buy quantities, shipment timing, mode priorities, transfers, and exception queues.
SHARED VIEWConstraint + actionTranslate launches, lifecycle, customer needs, and market context into explicit model assumptions and testable choices.
SHARED VIEWSignal + assumptionAbout me
Joy, for short. I work where demand planning, analytics, and everyday operations meet.
My work has taken me from technical research and software products to eCommerce and global demand planning. I've helped teams understand customer feedback, move a retail business online, and decide what to buy and where to put it.
At NIXON and FuelRod, the numbers connected directly to inventory and replenishment decisions. At QuestionPro and Far West Fungi, understanding the customer shaped the product and the way the business worked.
Coaching at Tradecraft and working with scientists and engineers at KPMG taught me to ask questions, listen to the people doing the work, and make complicated ideas easier to discuss. I bring that same attention to conversations with Finance, Product, and Operations.
A model is one part of the work. Making the assumptions clear—and helping a team agree on what to do with the result—is another.