← All work
Flexera · FinOps / cloud cost management · B2B SaaS

Flexera already had a way to catch cloud cost spikes. Almost nobody used it

Flexera's cloud cost optimization platform helps enterprises manage spend across AWS, Azure and GCP. I led discovery, research synthesis and design for a rebuilt AI-based anomaly detection experience, working across Product, Engineering and the Data Science team over a single quarter, from usage data to a shipped MVP.

“In plain terms: an anomaly is just a point where a number breaks its usual pattern, like a spike in a graph. Here, the number is cloud spend, and each spike is money someone didn't expect to pay. Catching it fast is the difference between a quick fix and a budget surprise a month later.”

Design target
20–30% faster
anomaly investigation, the hypothesis behind the new experience
Early signal
~5/6 customers
correctly identified the top cost contributor
Line graph of daily cloud spend with two sharp spikes marked as anomalous
Skills applied
Discovery researchStakeholder interviewsProduct analyticsPrototypingAI/ML UX
The problem

FinOps practitioners, engineering leads and finance stakeholders needed a reliable way to detect, understand and act on unexpected cloud cost spikes before they compounded into budget overruns.

The existing experience required users to manually define dimensions and filters just to surface anomalies in the first place, and once something did get flagged, it came with no explanation, no way to filter further, and a disconnected workflow that redirected users away from their cost view. Customers didn't lack demand for anomaly detection. They lacked a trustworthy, explainable way to act on it.

“It'll flag a spike, but it won't tell me why. Was it a pricing change, a new workload, someone forgetting to tear down an environment? I still have to go dig for that myself.”

“Before I forward an anomaly to an engineering owner, I need to be able to explain why it fired. If I can't, they'll just close it out as noise and I've burned my credibility.”

— Head of FinOps, Flexera enterprise customer

Approach

Led with research over assumptions: audited usage data, interviewed FinOps practitioners on how they actually chase cost spikes, and aligned Product, Engineering and Data Science on a shared anomaly lifecycle before any design work began.

Outcome

Shipped automatic AI-based anomaly detection with root cause analysis, giving practitioners a trustworthy “what changed and why” with no manual configuration.

Project timeline

One quarter: discovery to ship

Weeks 1–3
Discovery

Usage data review, stakeholder & FinOps interviews, current-state gap analysis, cross-functional lifecycle framework.

Weeks 4–8
Design & prototyping

Data model definition, user journey mapping, wireframing, iteration with algorithm and engineering teams on what's feasible for MVP.

Weeks 9–12
MVP delivery

Shipped system-generated anomalies experience: navigation destination, filterable/groupable table, detail slide-out with root cause analysis concept.

Scope, objectives & constraints

What discovery and design needed to accomplish

Before any design work began, we set clear objectives for what research needed to answer.

Key design & research objectives

Understand why the existing Cost Anomalies feature had ~8% follow-through and near-zero adoption.

Learn how different FinOps personas, and different customer organizations, actually use cost and anomaly data day to day.

Define an anomaly data model and lifecycle that design, product, and the algorithm team could all build against.

Decide, with evidence rather than opinion, what belonged in the Weeks 9–12 MVP versus a later iteration.

Research & findings

The evidence base the MVP was built on

Before talking to a single user, usage data already made the case that something structural was broken, not just a rough edge. That reframed the research question from “how do we improve anomaly detection” to “why are practitioners choosing not to use it, and what would make them trust it.”

1. What the usage data already told us

0.7%
Visitor adoption, 30 days

37 of 5,155 eligible

3.4%
Account adoption

12 of 355 accounts

2m 19s
Average time on page

Down 36.3%

56
Page views

Down 40.4%

30-DAY FUNNEL — TABULAR COST VIEW → COST ANOMALIES PAGE
Tabular view
235
unique visitors started
216 dropped, 92%avg. 4d 17h before moving on
Cost anomalies page
37
unique visitors reached it

19 of those 37 arrived from the tabular view, the intended path

18 arrived from the incidents page instead

INSIGHT

Most of the 235 people who opened the tabular cost view never continued into the anomalies view. Of the 37 who did, only 19 came through that intended path; the rest arrived from the incidents page instead.

2. Auditing the current experience

Annotated audit of the existing Tabular View and Cloud Cost Anomalies pages, marking manual filter setup, low prominence of the anomalies entry point, and unexplained anomaly charts

A current-state gap analysis of the existing Cost Anomalies tool surfaced concrete, fixable reasons for the drop-off.

Minimal detection logic: anomalies were flagged using basic Bollinger Bands, with no explanation of why a point fell outside the band.

No root cause analysis: nothing surfaced likely factors like resource utilization, pricing changes or billing errors.

No deep filtering, suppression or annotation: no way to filter by resource type, cost impact or time period, mute recurring noise, or leave context for a teammate.

Disconnected workflow: users were redirected out of their tabular cost view into a separate page just to see anomalies.

INSIGHT

The tool detected anomalies fine. It never explained them, filtered them, or kept users in their existing workflow, which is where the drop-off came from.

3. What FinOps practitioners told us

Stakeholder interviews kept circling back to the same moment: right after an anomaly fires, when someone has to figure out what actually happened. Practitioners weren't short on alerts. They were short on a trustworthy explanation and a next step they could hand off with confidence.

It'll flag a spike, but it won't tell me why. Was it a pricing change, a new workload, someone forgetting to tear down an environment? I still have to go dig for that myself.

Head of FinOps, Flexera enterprise customer

Before I forward an anomaly to an engineering owner, I need to be able to explain why it fired. If I can't, they'll just close it out as noise and I've burned my credibility.

Head of FinOps, Flexera enterprise customer

When something gets flagged, I want to know how confident the system is and what's driving that, not just an arrow pointing up with no context behind it.

VP of Enterprise Architecture, Flexera enterprise customer

Once we confirm what caused an anomaly, that should route straight to whoever owns the resource, with the fix attached, not sit in a list for me to chase down manually.

FinOps Analyst, Flexera enterprise customer

INSIGHT

When the team scored friction points against UX impact and speed to fix, the absence of any root cause explanation ranked as the top priority. Practitioners could tolerate a noisy alert if they could explain it, but not an unexplained one. Missing alerting came next, with thin recommendations a step behind. Overwhelming graphs and broken in-page search moved to the backlog as lower-impact.

4. How usage actually varies by customer

Follow-up conversations with the product and research team surfaced behavioral nuance that a single FinOps persona glosses over.

Different customers, different jobs: one customer tracked cost-of-goods-sold per client, filtering by customer then grouping by service and region; another used the platform purely for internal infrastructure. No single default view could serve both without flexible grouping and filtering.

The tabular view as a pre-screening tool: some users check the percent-change table before ever setting up an alert, formalizing one only after spotting something concerning by eye.

Tables over graphs: once an anomaly is found, people need to drill into the resource level to investigate, and several sessions surfaced a clear preference for tables over charts for that.

Friction with scale: too many dimensions generated too many charts, burying real anomalies, and lazy-loaded content broke in-page search on large datasets.

INSIGHT

Users brought the context themselves: scan the percent-change table to guess which dimension moved, then manually set up that exact combination of filters just to confirm it. The system never looked for the anomaly on its own.

5. Aligning Product, Engineering and Data Science on a shared lifecycle

We mapped the full lifecycle of a cloud cost anomaly, assigned a RACI owner to every step, and used a crawl/walk/run maturity model to set a shared target instead of five different mental models of “done.”

Flexera cost-anomaly lifecycleFive lifecycle stages — Detection, Notification, Analysis, Resolution, Retrospective — where only Detection and Analysis shipped in the MVP; a dashed path shows Retrospective feeding back into Detection for a future closed loop.FEEDS FORWARDSHIPPEDDetectionrecord createdNOT BUILTNotificationin-app onlySHIPPEDAnalysisfind the whyLATERResolutionissue resolvedLATERRetrospectiveloop backShipped this MVPNot built yet

Detection: record created. Analysis: find the why / identify the root cause.

Notification: stakeholders alerted. Email and in-app alerts are not implemented; instead, important alerts surface within the anomaly record itself.

Jobs to be done

What FinOps advisors were actually hiring the anomalies page to do

FinOps practitioners are simply the people at a company whose job is watching the cloud bill, they're who gets asked “why did our AWS spend jump” and has to have an answer. The research surfaced a pile of pain points, but pain points alone don't tell you what to build. Jobs to be Done reframes the question: instead of “what's broken,” it asks “what is this person actually trying to accomplish when they open this page, and what would let them consider it done.” That framing mattered here because the old tool wasn't failing at one task, it was failing to support the underlying reasons people came to it in the first place.

We didn't run a separate JTBD study. We derived the jobs from our existing research, combining behavioral and analytical data. We grouped repeated needs into jobs, then validated them against the highest-impact friction points.

The three jobs map onto the three moments anyone dealing with an unexpected cost spike goes through: catching it early (detect that something's off), judging it in context (investigate whether it's a real problem), and explaining it confidently (decide what to do next and hand it off). Working sessions with internal FinOps advisors and engineering surfaced these jobs directly, captured on the research board below.

Discovery board showing anomaly table iterations, engineering discussion notes and sticky-note feedback from FinOps advisors

How each job traces back to research

Each job carries its own chain: a research finding exposed a pain point, the pain point implied a human need, and that need was restated as a job the MVP had to serve.

JOB 1: CATCH IT EARLY

When cloud spend moves across dozens of services and accounts, advisors wanted to know what's unusual without combing through raw cost dashboards, so they could catch a problem while it's still small, not find it in a monthly review after the money is gone.

Evidence: “We don't need what we have right now. Without doing anything our users want to know what is unusual.” — internal Flexera FinOps advisor.

Job 1 trace: catch it earlyFrom the finding that 92% of visitors dropped off before reaching the anomalies view, to the job of catching problems early, to the MVP's decision to detect on a daily/weekly grain, and what's next.92% dropped offbefore anomalies viewKnow it's wrongwhile still smallCatch itearlyCreates records atdaily/weekly granularityAmortized unblended,most stable metricExpand to other3 cost metricsResearch findingNeed · decision · whyJob → MVP decisionNext / not yet
JOB 2: JUDGE IT IN CONTEXT

When an anomaly surfaces, advisors wanted to see it against the specific dimensions their team actually watches, service, region, usage type, billing center, so they could decide in seconds whether it's worth acting on instead of digging for context first.

Evidence: advisors converged on the same baseline dimensions repeatedly, and were explicit that one threshold can't fit a $50/month billing center and a $500,000/month one. “It would be great if the table had the feasibility to choose the dimensions.” — internal Flexera FinOps advisor.

Job 2 trace: judge it in contextFrom advisors converging on the same service/region/billing-center dimensions, to the job of judging an anomaly in context, to the MVP's decision to auto-find the key dimension combination, and what's next.Converge on baselinedimension: serviceSee it against myteam's own numbersJudge it incontextAI finds key dimensioncombination automaticallyDefault sort bycost impactRe-test with powerusers, many dimensionsResearch findingNeed · decision · whyJob → MVP decisionNext / not yet
JOB 3: EXPLAIN IT CONFIDENTLY

When an anomaly needs to go to someone outside FinOps to get fixed, advisors wanted to explain why it fired before forwarding it, so it gets resolved instead of dismissed as noise, and their credibility with the receiving team stays intact.

Evidence: when friction points were scored against UX impact and speed to fix, the absence of any root cause explanation ranked as the top priority, ahead of missing alerts and thin recommendations.

Job 3 trace: explain it confidentlyFrom no-root-cause ranking as the top friction point, to the job of explaining an anomaly confidently, to the MVP's decision to pair a graph with an auto-built top-contributors table, and what's next.No root cause =top friction pointKnow why beforeforwarding itExplain itconfidentlyGraph + auto-builttop-contributors table4 of 100 accounts,not the full listDrill-down for deeperroot-cause workResearch findingNeed · decision · whyJob → MVP decisionNext / not yet

Lined up together, the three jobs are really one experience in three steps: detect that a cost anomaly happened, investigate whether it's a real problem worth acting on, and decide what to do next, with enough of an explanation to hand it off. That's the shape the MVP took: a table to detect and investigate, a detail view to explain.

From jobs to a tested user journey

What we learned: three jobs kept surfacing in every working session, catch it early, judge it in context, explain it confidently, and each traced back to a specific finding in the research.

How we tested it: we walked each job back through the same internal FinOps advisors and engineering, and checked it against the friction-prioritization scoring, to make sure the proposed journey actually matched how they work, not just what they'd said in passing.

User journey

Two entry paths, one shipped, one sequenced for later

Path 1, the system proactively surfacing AI-detected anomalies in a new Anomalies navigation, is what the MVP shipped. Path 2, users defining their own alert rules and thresholds with email or in-app notification, was mapped in full but marked “not implemented in MVP.”

Cloud cost anomaly detection user journey showing the shipped system-generated anomalies path into a detail slide-out, and the not-yet-implemented alert configuration path

Why the journey is shaped this way

Strip away the domain and this is a familiar shape: someone gets a warning, and has to decide fast whether it's real and what to do about it. Three challenges in that shape drove the journey.

Challenge

A warning with no explanation gets ignored. People don't act on alerts they can't justify to someone else.

UX thinking

The moment that decides whether the product gets used isn't when the alert fires, it's right after, when the person has to decide whether to trust it.

Journey decision

One click takes someone straight from a flagged item to its explanation, so the trust-deciding moment happens immediately, not several screens later.

Challenge

Asking someone to set up rules and filters before they can see anything useful is asking for work up front, before they know it'll pay off. Most people won't do it.

UX thinking

Show value before asking for setup. Let configuration come later, once someone already has a reason to dig deeper.

Journey decision

The system surfaces likely problems on its own, with no setup required. Manual configuration exists, but it's a later option, not the entry point.

MVP design

The experience we shipped

Annotated MVP anomaly detection design: navigation, anomalies table with date range and row grouping, and the detail slide-out with cost trend graph and top contributors table
Next steps

What we planned to validate after the MVP

User testing

Keep testing the shipped experience with users to catch usability issues the MVP timeline didn't leave room to chase down, and to find further opportunities for improvement.

Analytics

Watch how people actually use the key areas of the product:

Table data, and how people explore it

Date range picker usage

Setting up the funnel for slide-out interactions for root cause analysis

Together, testing and analytics were meant to confirm what we assumed rather than leave it assumed: whether the new journey actually behaves the way the research said it would, and where it still needs another look.

Senior product designer in Berlin. Slow mornings, careful research, no shortcuts either way.

Sections
Connect
LinkedInResume ↓Berlin, Germany
© 2026 Nisha Kumari. Precision in the process, delight in the details.