Explore updates on Azure, AWS, AI, DevOps, FinOps, and interview preparation resources.

Case Study from a Retail SaaS Organization - FinOps

Case Study from a Retail SaaS Organization - FinOps

6/9/20213 min read

This post is not about theoretical FinOps. It reflects how we designed, rolled out, and operationalized FinOps for a retail-focused SaaS company running multiple products on Azure. The goal was never to chase immediate savings. The goal was to build cost confidence, predictability, and decision-making discipline across engineering, finance, and product teams.

The environment was complex but common: multiple subscriptions, multiple business units, independently evolving SaaS products, heavy R&D usage, and retail-driven seasonality. Costs were growing, but the bigger issue was that no one fully trusted the numbers—or knew how to act on them.

Starting with the Right Conversations, Not Tools

We began with conversations, not dashboards.

With the finance team, we focused on understanding:

  • The current Azure billing model and invoice structure

  • Existing benefits in use (Azure Hybrid Benefit, dev/test pricing, EA discounts)

  • How budgets, accruals, and forecasts were currently built

  • Where finance lacked predictability or confidence

With engineering and platform teams, we discussed:

  • Workload criticality and stability

  • Scale patterns and seasonal spikes

  • Environment sprawl and subscription boundaries

  • Known inefficiencies and technical debt

We did not negotiate with Microsoft directly, but we actively supported finance by providing data-driven inputs—usage trends, commitment readiness, and rate optimization opportunities—so negotiations were informed by real consumption patterns, not assumptions.

Defining Ownership: FinOps as a Shared Operating Model

FinOps was intentionally positioned as cross-functional, not centralized.

Responsibilities were clearly defined:

  • Engineering owned workload efficiency, right-sizing, and architecture choices

  • Finance owned budgets, forecasting, rate strategy, and commitments

  • Platform / Cloud Ops owned guardrails, policy enforcement, and automation

  • Product owners owned cost versus value trade-offs

A small FinOps core group acted as facilitators, not gatekeepers. Their role was to provide visibility, context, and options—not approvals. This was critical in building trust and avoiding friction.

Visualization and Cost Transparency Before Optimization

Before optimizing anything, we focused on visualization and data trust.

We built:

  • Daily and weekly cost views instead of monthly snapshots

  • Subscription-level and product-level breakdowns

  • Trend-based views showing how costs evolved over time

  • Environment-aware views separating prod, non-prod, and R&D

These views were shared during regular sync-up calls with engineering, finance, and product teams. The focus was not “why is this expensive?” but “what changed, and was it intentional?”

Visualization became the foundation for every FinOps discussion that followed.

Tagging as a Real-Time Control Mechanism

Tagging was treated as an operational control, not a reporting clean-up task.

We enforced a minimal, mandatory tag set:

  • BusinessUnit

  • Product

  • Environment

  • Owner

Tags were enforced at deployment time using policy. No retroactive fixes, no manual clean-ups. Teams understood that tagging was how they protected their budgets and enabled accurate chargeback—not a finance requirement imposed on them.

Workload Optimization: Fixing Usage Before Rates

We deliberately started with workload optimization before touching rate optimization.

This included:

  • Right-sizing VMs and databases based on utilization

  • Reviewing autoscaling behavior and scaling granularity

  • Identifying idle, orphaned, or over-provisioned resources

  • Applying non-production shutdown schedules

  • Aligning storage tiers and lifecycle policies with access patterns

This phase reduced noise in the data and stabilized usage, which was essential before making any long-term financial commitments.

Rate Optimization: Timing Matters

Only after usage stabilized did we move into rate optimization discussions.

We reviewed:

  • Where Azure Hybrid Benefit was applicable but underutilized

  • Whether dev/test pricing was consistently applied

  • Which workloads were eligible for savings plans versus reservations

  • Regional constraints and SKU limitations for reservations

There was pressure to move fast and “lock in savings,” but we pushed back with context:

  • Savings plans are commitment-based and irreversible

  • Reservations are region- and SKU-specific

  • Committing before understanding workload behavior introduces risk

We used historical usage trends, seasonality data, and forecast models to guide decisions—always emphasizing commit readiness over theoretical savings.

Forecasting as a Continuous Activity

Forecasting was not treated as a quarterly finance task.

We worked with finance to:

  • Align forecasts with engineering release cycles

  • Incorporate seasonality and expected scale events

  • Separate baseline run-rate from growth-driven spend

  • Validate forecasts during regular sync-ups

This made forecasts living documents, adjusted as workloads and priorities evolved.

Chargeback, Showback, and Product Accountability

With tagging, visualization, and forecasting in place, chargeback became practical.

We introduced showback first, allowing teams to understand their spend trends without immediate financial pressure. Over time, chargeback was introduced where maturity allowed.

Product owners became active participants in cost discussions, weighing spend against business impact rather than reacting to invoices.

Cadence: Making FinOps Operational

FinOps only worked because it had a rhythm:

  • Weekly or bi-weekly cost syncs with engineering

  • Monthly forecasting and budget alignment with finance

  • Periodic commitment and rate optimization reviews

  • Ongoing dashboard and alert refinement

These were working sessions, not status meetings. Data was presented visually, trends were discussed openly, and decisions were documented.

Duration, Handover, and Sustainability

The engagement ran for several months, from initial discovery through stabilization and handover.

By the end:

  • Cost visibility was embedded into daily operations

  • Optimization was continuous, not reactive

  • Commitments were intentional and data-backed

  • Internal teams owned dashboards, policies, and review cadence

FinOps was no longer a project—it became part of how the organization operated in the cloud.

This experience reinforced a core FinOps principle: optimization is a sequence, not a shortcut. Usage, rate, and commitment optimization must happen in the right order, supported by visibility, forecasting, and shared ownership.

The result was not just reduced waste, but increased confidence—across engineering, finance, and leadership—that cloud costs were understood, intentional, and aligned with business value.

If anyone reading this has implemented FinOps in a similar multi-product SaaS environment, I’d love to hear your experience. What worked well for you, and where did you face resistance?