Case Studies  /  saas-platform-mttr-reduction

How a B2B SaaS Platform Reduced MTTR by 45% with Structured Incident Response

A B2B SaaS platform serving enterprise customers struggled with scattered incident response across Slack threads, email, and multiple tools. By implementing centralized incident management with real-time collaboration, automated monitoring, and integrated runbooks, the team reduced mean time to resolution from 187 minutes to 103 minutes — a 45% improvement that significantly enhanced service reliability.

November 6, 2025 7 min read
case-study

Overview

A rapidly growing B2B SaaS platform providing real-time analytics to enterprise customers faced a critical challenge: their incident response process was taking far too long. With an 18-person engineering team distributed across three timezones and a small 3-person SRE team managing increasingly complex microservices infrastructure, the company’s mean time to resolution had ballooned to over three hours.

This prolonged response time wasn’t just a technical inconvenience. Each minute of downtime directly impacted enterprise customers who depended on the platform for business-critical analytics. The team knew they needed to fundamentally transform how they detected, coordinated, and resolved incidents.

The Challenge

Scattered Communication and Lost Context

The team’s incident response process was fragmented across multiple tools. When an issue occurred, engineers scrambled between Slack threads, email chains, and PagerDuty notifications trying to piece together what was happening. Critical context was buried in Slack channels, repeated questions slowed progress, and new responders joining an ongoing incident had no centralized timeline to understand what had already been tried.

“We’d have five engineers asking the same questions in different Slack threads,” the SRE lead explained. “By the time someone found the answer buried in a thread from 30 minutes ago, we’d already wasted precious time.”

Manual Monitoring and Alert Noise

The monitoring setup generated over 850 alerts per day, with approximately 65% being false positives. Engineers had become numb to the constant noise, sometimes missing critical alerts among the flood of non-urgent notifications. Detection times averaged 9 minutes simply because alerts were buried or ignored.

Manual triage consumed significant time as engineers evaluated each alert individually, trying to determine severity and impact before taking action. There was no intelligent filtering or correlation—every alert demanded attention regardless of actual priority.

No Access to Procedures During Crises

Operational runbooks existed, scattered across Google Docs, Confluence pages, and sometimes only in senior engineers’ heads. During high-pressure incidents, responders wasted valuable minutes searching for procedures or waiting for someone who knew the correct steps to come online.

“We’d be 20 minutes into a database failover incident before someone found the runbook link,” a senior engineer recalled. “And half the time, the procedure was outdated anyway.”

Unclear On-Call Ownership

The team maintained a manual on-call schedule in a spreadsheet. “Who’s on-call right now?” became a frequent question in Slack, wasting time that should have been spent resolving issues. Coverage gaps during handoffs and timezone transitions created confusion about who owned incident response.

Acknowledgment tracking was non-existent. The team had no way to know if the on-call engineer had even seen the alert, leading to duplicated efforts and uncertainty during critical moments.

The Bottom Line

Before implementing changes, the team’s incident response metrics told a concerning story:

  • Mean Time to Resolution (MTTR): 187 minutes
  • Time to Detection: 8-12 minutes (alert noise and manual monitoring)
  • Time to Acknowledgment: 5-10 minutes (unclear on-call ownership)
  • Alert Volume: 850+ alerts per day
  • False Positive Rate: 65% of all alerts
  • Engineer Burnout: High, with on-call rotation seen as painful duty

The Solution

Why a Centralized Platform

The team evaluated several approaches: continuing with their current toolset and improving processes, adopting separate best-of-breed tools for each function, or implementing a unified incident response platform.

They chose Upstat because it addressed their core problems through integrated capabilities rather than adding more tools to coordinate. The platform combined monitoring, incident management, runbook integration, and intelligent alerting in a way that matched their workflow instead of forcing them to adapt to rigid tooling.

Multi-Region Monitoring for Early Detection

The team configured health checks for their critical services across multiple geographic regions. Instead of relying on users to report problems, the monitoring system detected issues within 2-3 minutes through distributed checks that validated service availability from different locations.

Performance metrics tracking went beyond simple up/down status. The system measured DNS resolution time, TCP connection establishment, TLS handshake duration, and time to first byte—providing early warning when services began degrading before complete failures occurred.

When monitors detected failures, the system automatically created incidents with relevant context, eliminating the manual triage step that had previously consumed precious time.

Centralized Incident Management with Real-Time Collaboration

Each incident received a unique sequence number for easy reference during verbal communication. INC-1, INC-2, INC-3—simple identifiers that eliminated confusion about which incident was being discussed.

The centralized incident view brought together everything responders needed: participant lists with acknowledgment status, a real-time activity timeline showing all actions taken, threaded comments for coordination, and links to affected services and relevant runbooks. Engineers could mention colleagues using @ mentions to pull in specific expertise, and real-time updates ensured everyone saw changes instantly.

Custom status workflows allowed the team to track incidents through their specific process: New, Investigating, In Progress, Monitoring, and Resolved. The isOpen flag on statuses enabled accurate duration tracking that excluded time spent in resolved states, providing clean MTTR calculations.

Integrated Runbook Access

Service-specific runbooks were linked directly to incidents through catalog entity associations. When an incident affected the payment processing service, the relevant runbooks appeared immediately in the incident view—no searching required.

Step-by-step execution tracking guided responders through procedures with decision-driven branching for conditional scenarios. Execution history provided an audit trail of exactly which procedures were followed and what decisions were made during each incident.

Intelligent Alert Routing with Anti-Fatigue

The notification platform implemented multi-layered suppression to eliminate alert noise while ensuring critical notifications always reached responders. Deduplication prevented duplicate alerts for the same issue. Rate limiting controlled notification frequency. Maintenance window suppression silenced expected alerts during planned work.

Priority-based routing ensured critical alerts bypassed all suppression rules and reached on-call engineers through multiple channels: Slack, SMS, and email simultaneously for critical severity; Slack and email for high priority; Slack only for medium priority.

The integration with on-call scheduling automatically routed alerts to the current on-call engineer, eliminating the “who’s on-call?” question entirely.

Automated On-Call Management

The platform’s on-call system automated shift scheduling with weekly rotation across the SRE team. Timezone support ensured handoffs occurred at reasonable hours for each engineer. Override management allowed temporary schedule changes without modifying the underlying rotation.

The integration with on-call scheduling made it easy to identify and manually add the current on-call engineer to incidents. Acknowledgment tracking provided visibility into whether alerts had been seen by responders.

Implementation

Deployment Approach

The team took a phased deployment over six weeks to minimize disruption and validate the approach before full commitment.

Week 1-2: Monitoring Setup The SRE team configured health checks for the 15 most critical services first. They set up multi-region monitoring in three locations: US East, US West, and EU West. Thresholds were configured conservatively initially—failing checks in two out of three regions before triggering incidents—to avoid false positives during the learning phase.

Week 3-4: Incident Management Migration The team began creating new incidents in Upstat while maintaining their existing Slack-based process for the first week. This parallel operation allowed them to build confidence in the new workflow. By the end of week 4, they made Upstat the single source of truth for incident tracking.

During this phase, they configured custom status workflows matching their existing process to minimize workflow changes. Labels were created for categorization: Service, Database, Frontend, Backend, Security, Performance.

Week 5: Runbook Migration Engineers migrated operational runbooks from Google Docs into the platform, starting with the 10 most frequently used procedures. Each runbook was linked to the relevant catalog entities so they appeared automatically during incidents affecting those services.

Week 6: Alert Routing and On-Call The final phase enabled intelligent alert routing with anti-fatigue rules and configured on-call schedules. The team started with conservative suppression settings and gradually tuned based on observed patterns.

Configuration Decisions

Several key configuration choices shaped the implementation’s success:

Status Workflow Customization The team retained familiar status names but added the “Monitoring” status for post-fix observation periods. This allowed incidents to move from “Resolved” (fix deployed) to “Monitoring” (watching for recurrence) before final closure, improving accuracy of resolution metrics.

Alert Severity Mapping Monitor failures were mapped to incident severity based on service criticality: payment services generated severity 1 (critical), customer-facing APIs generated severity 2 (high), internal tools generated severity 3 (medium). This ensured appropriate response urgency and notification routing.

Anti-Fatigue Tuning Initial suppression rules were conservative to avoid missing important alerts. Over two weeks, the team gradually increased suppression based on observed patterns, ultimately reducing alert volume by 84% while maintaining 100% coverage of legitimate issues.

Integration with Existing Tools

The platform integrated with the team’s existing Slack workspace for notifications, maintaining familiar communication channels while adding structure. Engineers received incident updates in dedicated Slack channels and could comment directly from Slack or the web interface.

Catalog entities were created for each microservice, allowing the team to link incidents to affected services and track service-specific incident patterns over time.

Results

Dramatic MTTR Improvement

The numbers told a clear story of improvement. Mean time to resolution dropped from 187 minutes to 103 minutes—a 45% reduction that translated to over 80 minutes faster resolution per incident.

Breaking down the improvement by phase:

  • Time to Detection: Reduced from 9 minutes to 2 minutes (multi-region monitoring)
  • Time to Acknowledgment: Reduced from 7 minutes to under 2 minutes (automated routing and clear ownership)
  • Time to Resolution: Reduced from 171 minutes to 99 minutes (centralized coordination, runbook access)

Alert Noise Elimination

Alert volume dropped from 850 per day to approximately 135 per day—an 84% reduction. More importantly, the false positive rate fell from 65% to 15%, meaning engineers now spent time on legitimate issues rather than evaluating noise.

“I actually trust alerts now,” one engineer noted. “When something pages me, I know it’s real and I know exactly what to do.”

Operational Efficiency Gains

The team observed significant improvements in day-to-day operations beyond raw MTTR numbers:

Reduced Duplicate Work Centralized incident timelines eliminated repeated questions and duplicated debugging efforts. New responders joining an incident could quickly understand the current state without asking questions already answered.

Faster Onboarding New engineers could reference historical incidents with complete timelines to understand how the team handled similar issues. Runbook execution tracking showed exactly which procedures were followed, providing learning opportunities.

Improved On-Call Experience On-call rotation became less burdensome with clear ownership, automated scheduling, and confidence that critical alerts would reach them through multiple channels. Engineers reported significantly reduced stress during on-call weeks.

Business Impact

The operational improvements translated directly to business value:

Customer Satisfaction Faster incident resolution meant shorter service interruptions for enterprise customers. Customer support tickets related to platform availability decreased by 38% in the three months following implementation.

Team Retention On-call burnout, previously a significant concern in one-on-ones and retrospectives, became a non-issue. The SRE team went from discussing on-call stress in every team meeting to rarely mentioning it.

Scalability With more efficient incident response, the 3-person SRE team could support continued platform growth without immediate need for additional headcount. The platform’s automation handled the increased monitoring and coordination overhead.

Key Takeaways

Start with High-Impact Services

Don’t attempt to monitor everything simultaneously. The team’s approach of starting with the 15 most critical services allowed them to prove value quickly and build confidence before expanding coverage. This phased approach also helped tune alert thresholds effectively.

Centralization Beats Best-of-Breed Tools

The team’s previous approach of using specialized tools for each function created coordination overhead that consumed more time than it saved. A unified platform that integrated monitoring, incidents, runbooks, and on-call scheduling eliminated the context switching and information silos that slowed response.

Anti-Fatigue Rules Require Tuning

Conservative initial suppression settings prevented missing critical alerts during the learning phase. Gradually increasing suppression based on observed patterns over several weeks allowed the team to dramatically reduce noise without missing important notifications. This tuning process was essential—aggressive suppression from day one would have risked missing alerts.

Runbook Integration Drives Adoption

Making runbooks accessible directly within incidents eliminated the friction of searching for procedures during high-pressure moments. This visibility also exposed outdated runbooks that needed updating, improving overall operational documentation quality.

Real-Time Collaboration Reduces MTTR

Centralized incident timelines with real-time updates eliminated the scattered communication that previously consumed resolution time. Engineers working on the same incident could coordinate effectively without repeated status checks in multiple Slack threads.

The 45% MTTR reduction came not from a single feature but from the compound effect of improvements across the entire incident lifecycle: faster detection through multi-region monitoring, quicker acknowledgment through automated routing, better coordination through centralized incidents, and faster resolution through integrated runbooks. Each improvement built on the others, creating an incident response process that was greater than the sum of its parts.

Ready to Reduce Your MTTR?

See how Upstat's incident management platform helps teams respond faster and more effectively.