All work

Shell · IBM iX · Power BI on Azure

Shell S&OP Right

The problem was never the data. It was visibility.

S&OP Right (internally ReactRight) gave Shell's supply crisis teams component-to-customer visibility in about ten minutes, replacing manual work that took days to weeks. Designed and shipped entirely inside Power BI.

  • $1.34MValue delivered, Americas
  • ~10 minTo full visibility
  • 3,000+Hours saved a year
Visual exploration for the S&OP Right welcome page, with navigation, a welcome panel and a planning-manager view.
Client
Shell Lubricants, via IBM iX
Role
Sole designer, end to end, embedded in a cross-functional team. Worked directly with the Product Owner.
Team
Product Owner, project manager, data architects and Power BI developers
Timeline
2021 – 2022
Platform
Power BI, Azure, PowerApps, Power Automate, Shell Design System
Status
Shipped. MVP, then stage 2 for production.

Confidentiality Client work delivered through IBM iX under NDA. Production screens and live data can't be shown. Images are explorations, sketches and wireframes; diagrams are abstractions of the architecture and decision logic as designed. Metrics are as reported by the client engagement team.

A supplier fire. A pandemic's worth of disruptions. Days to see the impact.

In 2019, a fire hit a major additive supplier in Rouen, France. Shortly after, Covid-19 produced the highest volume of supply disruptions Shell had seen, including additive shortages that affected several plants and customer accounts at once. Both exposed the same gap: when something broke upstream, nobody could quickly see what it touched downstream.

Tracing a disruption meant phone calls to plants, emails to sales teams, separate Excel trackers and desktop apps that didn't talk to each other, reassembling the same picture by hand every time.

The Product Owner framed the brief as "we need better visibility." That was accurate. The design question was what kind of visibility, surfaced how fast, and suppressing what.

  1. 01ComponentAdditives and base oils
  2. 02Blending plantWhere formulations are made
  3. 03ProductBill of materials broken down
  4. 04WarehouseWhere stock sits
  5. 05CustomerForecast and sales history
Diagram The chain the tool follows. Each hop was a separate system before S&OP Right.

The data already existed. Nobody could reach it fast enough.

The reframe that shaped every decision after

Where the days actually went.

The bottleneck was never any single system. It was the manual work of joining them: tracing one disruption by hand across five domains. By the time the picture was assembled, it was out of date, and teams were managing fallout instead of cause.

Before · days to weeks

  1. Day 0Disruption somewhere in the chain
  2. Days 1+Data pulled by hand: desktop apps, Excel, calls, email
  3. Days to weeksA picture assembled, already out of date
  4. Too lateManaging fallout, not cause

After · about ten minutes

  1. T+0Disruption
  2. T+~10 minFull chain traced, no manual query
  3. Time left to act while the cost is still recoverable

Not to scale.

Diagram Before and after: the time from a disruption to a shared picture of its impact.

Earning the mandate

The vision came from the Product Owner I worked with. Getting it built meant making the business case first: explaining why this mattered enough to commit engineering effort. The project then moved through an MVP, into a second stage for production use where impact was measured, and kept expanding, with architecture and information architecture rebuilt as new requirements came in.

Three things the system had to do.

How might we

  • … surface a disruption's downstream impact before the planner has to trace it manually across five systems?
  • … ensure planners see only what needs their attention, not every route that's performing normally?
  • … give EMEA and the Americas identical visibility while respecting their units, thresholds and planning conventions?
  • 01

    Surface before the cost locks in

    Show planners the exception while there's still time to act on it. The time between disruption and visibility had to shrink by an order of magnitude.

  • 02

    Make the chain queryable in seconds

    Model component → plant → product → warehouse → customer once, as connected data, so any disruption can be traced without manual joins.

  • 03

    Suppress what doesn't need attention

    A disruption can't be seen if it competes with hundreds of routes performing normally. Hiding the nominal is what makes exception-first possible.

Power BI was never meant to do this.

Power BI is a reporting tool, not an operations console, and the platform choice was non-negotiable. Shell had invested in it and its teams trusted it. So the job became getting operations-console behaviour out of a reporting platform, honestly, using what Power BI and the Azure stack could actually do.

Platform limitWhat I designed instead
No native way to trace a dependency chain across systemsA pre-assembled component-to-customer chain, modelled as connected data rather than joined on demand
Manual refresh is the BI normDirectQuery, so results update as soon as a scenario is created or refreshed
No native scenario input or workflow triggerA PowerApp scenario builder embedded in the console, triggering Power Automate to run the logic and write results to SQL
One global view risks losing regional trustA metric-selection control: same data, region-appropriate units, defaulting to the user's region

Report-first or exception-first.

Needs action

WatchComponent supply at riskAdditive below threshold · affected plants, products and customers traced

Nominal · suppressed

Nothing else needs your attention.

Silence is the signal that everything else is working.

Diagram Interactive and illustrative: the same data under two design philosophies. Not a production screen.

Report-first (initial assumption)

  • Surface everything; planners find exceptions by scanning.
  • Familiar, and easy to verify completeness.
  • But exceptions get buried, the planner interprets urgency, and load scales with data volume rather than severity.

Exception-first (final direction)

  • Suppress everything nominal; surface only what needs a decision.
  • Silence becomes a signal: nothing shown means nothing is wrong.
  • But it only works if planners trust it, so thresholds had to be defined precisely, per region.

A planner during a live additive shortage

  1. 01Disruption flaggedA supplier shortage is reported. The planner opens the console; no manual data pull.
  2. 02Exception surfacedOne exception at the top. Everything nominal is suppressed.
  3. 03Chain tracedComponent → plant → product → warehouse → customer, pre-assembled.
  4. 04Impact understoodWhich plants, regions and customer accounts, with severity clear before the meeting.
  5. 05Decision madeA scenario is created in the PowerApp, an action assigned and logged before the cost locks in.

What I designed first, and why it couldn't ship.

I started with Shell's own design system: established components, institutional trust, a visual language the organisation knew. When those designs went into Power BI, the platform couldn't reproduce them.

So I stopped trying to make Power BI approximate the ideal and asked what it does well. I explored other visualisation patterns for the dependency chain, then designed deliberately for what it could render under real-time conditions: bar graphs, line charts and diagram-style chain views. A custom build outside Power BI would have broken the DirectQuery pipeline the whole design depended on.

Slide showing a sketch progressing to wireframes of the scenario creation flow.
Sketch to wireframe, prepared for business validation and sign-off.
Visual exploration of the S&OP Right welcome page with role-based entry points.
Visual exploration for the welcome page, with entry points by planning role.

A greenfield tool would have given me more control and been ignored. Adapting to Power BI is why it shipped.

One view, two regions.

  • Same view, different units

    EMEA and the Americas see the same layout with region-appropriate units.

  • A metric selector

    Users choose which metric to see. The default is set per region.

  • Real-time by design

    DirectQuery, so users see current data, not a snapshot.

  • Scenario builder

    A PowerApp scenario builder that triggers Power Automate, feeding results straight back into the same view.

The handoff went to data architects and Power BI developers, not front-end engineers, so the deliverable was closer to a definition of measures, thresholds and conditional logic than to a redline.

Where the $1.34M comes from.

I didn't calculate it. Shell's business team produced the figure through its own value-tracking process, which is how benefit is attributed on engagements like this: the delivery team builds, the business quantifies. It was reported for the Americas once the tool reached production.

The mechanism is simpler than the number looks. Collapsing days-to-weeks of manual assembly into about ten minutes means disruptions are caught while they're still commercially recoverable, and removing the manual work is where the 3,000+ hours a year come from. Hours saved is the number I'd defend hardest, because it's directly observable.

What ten minutes was worth.

  • $1.34MValue deliveredAmericas, after production rollout
  • ~10 minEnd-to-end visibilityDown from days or weeks
  • 3,000+Hours saved a yearAcross teams

Value and hours are as reported by the client business team, not estimates I produced.

Recognition and reuse

  • EMEA SVP Award of Choice

    For end-to-end integrated supply crisis management.

  • Shell.ai Awards 2022

    Runner-up.

  • Logic reused

    The warehouse-tracing logic was shared with two other Shell digital products, Falcon and OptimiseRight.

The constraint was the best thing about this project.

I spent the first weeks quietly resenting Power BI. Every concept I liked ran into something the platform wouldn't do on its own. What changed my mind was noticing that the limitation and the adoption were the same fact: a new tool would have meant procurement, training, and a reason for a planner mid-crisis to open something unfamiliar.

If I did it again, I'd make the case for the tool's broader expansion earlier. And I'd point to this as the difference from a well-run delivery: nobody handed me a fully scoped brief. Turning a vision into funded, shipped work meant earning the mandate at each stage, from MVP to production to expansion.