How the projects connect
One marketplace, five decisions
Solid arrow: data reused in code · Dashed arrow: the same question from the other side
1 Price · Two-sided pricing engine
Q: What should each segment cost?
Decision: Choose prices that partners can serve. Test larger price rises before rolling them out.
Headline: +7.1% vs +3.2% — Contribution gain: both sides vs customers only
Feeds: 4 Supply & serve (Fitted demand response, reused in code); 5 Productise (Engine outputs the console is specified on); 2 Promote (Adds cross-price effects to single-product price response); 3 Retain (Price sets what partners earn)
Data: Synthetic data · calibrated demand
Jump to card ↓ Case study & code ↗
2 Promote · Promotion & cannibalisation
Q: Does a discount pay across the whole category?
Decision: Judge discounts on the whole category. Test whether extra sales outweigh lost margin and sales taken from other products.
Headline: +£20 → −£23 — Weekly contribution: promoted line vs whole category
Fed by: 1 Price (Adds cross-price effects to single-product price response)
Data: Public invoices · UCI Online Retail II
Jump to card ↓ Case study & code ↗
3 Retain · Partner retention
Q: Which partners can we keep, and is it worth it?
Decision: Prioritise partners whose outcome the offer can change, check service quality, and match the offer to why they might leave.
Headline: −₹33k → +₹1.17M — Calling likeliest leavers vs those you can help
Feeds: 4 Supply & serve (Retained partners are the supply)
Fed by: 1 Price (Price sets what partners earn)
Data: Simulation · known intervention effects
Jump to card ↓ Case study & code ↗
4 Supply & serve · Supply & serviceability
Q: What is the cheapest way to hold the service level?
Decision: Limit bookings to what can be served. Reprice where capacity is tight before paying to add partners.
Headline: ₹2.74M → ₹3.88M — Season contribution: today vs cap intake and reprice
Fed by: 1 Price (Fitted demand response, reused in code); 3 Retain (Retained partners are the supply)
Data: Synthetic marketplace · assumed costs
Jump to card ↓ Case study & code ↗
5 Productise · Pricing console · product specification
Q: What would a pricing team need to act on this safely?
Decision: Start with read-only recommendations and safety checks. Roll out small changes with monitoring and clear stop rules.
Headline: 61 weeks — To A/B test a +5% price move, hence monitored rollouts
Fed by: 1 Price (Engine outputs the console is specified on)
Data: Specification + evaluation · no live AI
Jump to card ↓ Case study & code ↗
Network design · Supply chain network design
Q: Where should the next distribution centre go?
Decision: Plan the new centre at Kunming. Use the fast method to screen options; verify the investment with the exact model.
Headline: 104% — Year-3 demand vs existing capacity
Data: Synthetic network · team project
Jump to card ↓ Case study & code ↗
Speech emotion · Speech emotion recognition
Q: Which calls should a reviewer hear first?
Decision: Use the model to order the review queue, not to label calls. Re-set the flag threshold for each new speaker pool.
Headline: 70% at 39% — Negative calls caught at the held-out flag rate
Data: Course-supplied audio · team project
Jump to card ↓ Case study & code ↗
1 Price What should each segment cost?
Decision: Choose prices that partners can serve. Test larger price rises before rolling them out.
Headline: +7.1% vs +3.2% — Contribution gain: both sides vs customers only
Feeds: 4 Supply & serve (Fitted demand response, reused in code); 5 Productise (Engine outputs the console is specified on); 2 Promote (Adds cross-price effects to single-product price response); 3 Retain (Price sets what partners earn)
Data: Synthetic data · calibrated demand
Jump to card ↓ Case study & code ↗
2 Promote Does a discount pay across the whole category?
Decision: Judge discounts on the whole category. Test whether extra sales outweigh lost margin and sales taken from other products.
Headline: +£20 → −£23 — Weekly contribution: promoted line vs whole category
Fed by: 1 Price (Adds cross-price effects to single-product price response)
Data: Public invoices · UCI Online Retail II
Jump to card ↓ Case study & code ↗
3 Retain Which partners can we keep, and is it worth it?
Decision: Prioritise partners whose outcome the offer can change, check service quality, and match the offer to why they might leave.
Headline: −₹33k → +₹1.17M — Calling likeliest leavers vs those you can help
Feeds: 4 Supply & serve (Retained partners are the supply)
Fed by: 1 Price (Price sets what partners earn)
Data: Simulation · known intervention effects
Jump to card ↓ Case study & code ↗
4 Supply & serve What is the cheapest way to hold the service level?
Decision: Limit bookings to what can be served. Reprice where capacity is tight before paying to add partners.
Headline: ₹2.74M → ₹3.88M — Season contribution: today vs cap intake and reprice
Fed by: 1 Price (Fitted demand response, reused in code); 3 Retain (Retained partners are the supply)
Data: Synthetic marketplace · assumed costs
Jump to card ↓ Case study & code ↗
5 Productise What would a pricing team need to act on this safely?
Decision: Start with read-only recommendations and safety checks. Roll out small changes with monitoring and clear stop rules.
Headline: 61 weeks — To A/B test a +5% price move, hence monitored rollouts
Fed by: 1 Price (Engine outputs the console is specified on)
Data: Specification + evaluation · no live AI
Jump to card ↓ Case study & code ↗
Network design Where should the next distribution centre go?
Decision: Plan the new centre at Kunming. Use the fast method to screen options; verify the investment with the exact model.
Headline: 104% — Year-3 demand vs existing capacity
Data: Synthetic network · team project
Jump to card ↓ Case study & code ↗
Speech emotion Which calls should a reviewer hear first?
Decision: Use the model to order the review queue, not to label calls. Re-set the flag threshold for each new speaker pool.
Headline: 70% at 39% — Negative calls caught at the held-out flag rate
Data: Course-supplied audio · team project
Jump to card ↓ Case study & code ↗