πŸ“š Table of Contents

  1. The 100ms That Cost $1M
  2. Why Performance Is a Product Problem
  3. The Business Impact of Speed
  4. The Performance Metrics That Matter
  5. Core Web Vitals: The PM’s Guide
  6. Common Performance Problems and Their Fixes
  7. Performance vs. Features: The Roadmap Trade-off
  8. Building a Performance Culture
  9. Questions to Ask Your Engineering Team
  10. Your Performance Action Plan
  11. The Bottom Line

The 100ms That Cost $1M

In 2022, I worked with an e-commerce company that had a performance problem they didn’t know they had.

The situation: Checkout was taking 4.2 seconds on average.

The discovery: A junior engineer noticed during a routine investigation.

The fix: They optimized the checkout flow, bringing it down to 2.8 seconds. A 1.4-second improvement.

The business impact:

  • Conversion rate increased from 3.2% to 3.8%
  • That 0.6% improvement on 500,000 monthly visitors
  • 3,000 additional conversions per month
  • At $40 average order value = $120,000 additional revenue per month
  • $1.44 million additional revenue per year

From 1.4 seconds of improvement.

The company had been debating a major redesign for months, expecting it to improve conversion. They spent $300,000 on the redesign. It improved conversion by 0.2%.

The performance fix cost $40,000 in engineering time. It improved conversion by 0.6%.

The naked truth: Performance optimization is often the highest-ROI investment you can make. But most PMs don’t know to prioritize it because they don’t measure it.


Why Performance Is a Product Problem

The Product Manager’s Performance Responsibilities

ResponsibilityWhy It’s PM’s Job
Define performance targetsWhat’s acceptable speed for your users?
Measure performance impactHow does speed affect your metrics?
Prioritize performance workPerformance competes with features
Communicate to stakeholdersWhy invest in “invisible” work?
Set performance budgetsWhat’s the maximum acceptable load time?

The Performance Value Chain

Fast Loading β†’ Better UX β†’ Higher Engagement β†’ More Conversions β†’ More Revenue

Slow Loading β†’ Poor UX β†’ Lower Engagement β†’ Abandonment β†’ Lost Revenue

Every 100ms of improvement matters:

IndustryImpact of 100ms Improvement
E-commerce+1% conversion
SaaS+2-3% engagement
Media+5-10% page views
Mobile apps+7% session length

The Business Impact of Speed

The Research (That Should Convince Stakeholders)

Google Study:

  • 53% of mobile users abandon sites that take >3 seconds to load
  • Every 1-second delay reduces conversion by 7%

Amazon Study:

  • 100ms of latency = 1% decrease in sales
  • They estimated a 1-second slowdown would cost $1.6B/year

Walmart Study:

  • Every 1-second improvement = 2% conversion increase

Pinterest:

  • 40% reduction in perceived wait time = 15% increase in sign-ups

The Performance-Conversion Curve

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ CONVERSION RATE BY PAGE LOAD TIME                        β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                         β”‚
β”‚  100% β”œβ”€                                               β”‚
β”‚       β”‚                                                β”‚
β”‚   90% β”œβ”€β”€β”€β”€β”€β”€β”€                                         β”‚
β”‚       β”‚       \                                         β”‚
β”‚   80% β”œβ”€β”€β”€β”€β”€β”€β”€β”€\                                        β”‚
β”‚       β”‚          \                                       β”‚
β”‚   70% β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€\                                      β”‚
β”‚       β”‚              \                                    β”‚
β”‚   60% β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€\                                 β”‚
β”‚       β”‚                   \                               β”‚
β”‚   50% β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€\                            β”‚
β”‚       β”‚                        \_______                    β”‚
β”‚   40% β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€\__________         β”‚
β”‚       β”‚                                                          β”‚
β”‚       └────────┬────────┬────────┬────────┬────────┬────────│
β”‚              0-1s    1-2s    2-3s    3-4s    4-5s    >5s    β”‚
β”‚                                                         β”‚
β”‚       Optimal    Good    Acceptable   Poor    Unacceptable   β”‚
β”‚                                                         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

The Performance ROI Calculator

Your Current State:
β”œβ”€β”€ Monthly visitors: 500,000
β”œβ”€β”€ Average conversion rate: 3.2%
β”œβ”€β”€ Average order value: $40
└── Current checkout time: 4.2 seconds

If you reduce checkout time by 1 second:
β”œβ”€β”€ Expected conversion increase: 2-3%
β”œβ”€β”€ New conversion rate: ~3.5%
β”œβ”€β”€ Additional conversions: 1,500/month
└── Additional revenue: $60,000/month = $720,000/year

Investment required: $40,000 (engineering time)
ROI: 18x in first year

The Performance Metrics That Matter

The Three Levels of Performance Metrics

Level 1: Business Metrics (Start Here)

MetricWhat It Tells You
Conversion rateAre slow pages hurting sales?
Bounce rateAre users leaving before page loads?
Session durationAre users engaging or leaving?
Pages per sessionIs slowness limiting exploration?

Level 2: User Experience Metrics

MetricWhat It Tells YouTarget
Time to First Byte (TTFB)Server response speed<600ms
First Contentful Paint (FCP)When content appears<1.8s
Largest Contentful Paint (LCP)When main content visible<2.5s
Time to Interactive (TTI)When page is usable<3.8s
Total Blocking Time (TBT)How long blocked<200ms
Cumulative Layout Shift (CLS)Visual stability<0.1

Level 3: Technical Metrics (Engineers Track These)

MetricWhat It Tells You
P50 latency50% of requests faster than this
P95 latency95% of requests faster than this
P99 latency99% of requests faster than this
Error ratePercentage of failed requests
ThroughputRequests handled per second

The Metric That Matters Most for PMs

P95 latency = The experience of 95% of your users

Why P95 and not average?

  • Average hides the slow experiences
  • 5% of users having terrible experience = thousands of frustrated users
  • P95 tells you what most users experience

Core Web Vitals: The PM’s Guide

What Core Web Vitals Are

Google’s standardized metrics for measuring user experience. They affect your SEO ranking.

The Three Core Web Vitals

1. Largest Contentful Paint (LCP)

What it measures: How fast the main content appears.

Target: < 2.5 seconds

Good for PMs to know: This is what users perceive as “page load time.”

Common causes:

  • Large images
  • Slow server response
  • Render-blocking JavaScript

2. First Input Delay (FID) β†’ Now Interaction to Next Paint (INP)

What it measures: How quickly the page responds to user interaction.

Target: < 200ms

Good for PMs to know: This is “responsiveness.” Can users click buttons immediately?

Common causes:

  • Heavy JavaScript execution
  • Too many event listeners
  • Long tasks blocking the main thread

3. Cumulative Layout Shift (CLS)

What it measures: How much the page shifts while loading.

Target: < 0.1

Good for PMs to know: This is “stability.” Do elements jump around?

Common causes:

  • Images without dimensions
  • Ads injecting content
  • Fonts loading late

Core Web Vitals Dashboard

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ CORE WEB VITALS DASHBOARD                               β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                         β”‚
β”‚  LARGEST CONTENTFUL PAINT (LCP)                         β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”‚
β”‚  β”‚ Current: 2.8s                                    β”‚     β”‚
β”‚  β”‚ Target: <2.5s                                    β”‚     β”‚
β”‚  β”‚ Status: ⚠️ NEEDS IMPROVEMENT                      β”‚     β”‚
β”‚  β”‚ Impact: SEO ranking, user perception              β”‚     β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β”‚
β”‚                                                         β”‚
β”‚  INTERACTION TO NEXT PAINT (INP)                         β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”‚
β”‚  β”‚ Current: 150ms                                    β”‚     β”‚
β”‚  β”‚ Target: <200ms                                    β”‚     β”‚
β”‚  β”‚ Status: βœ… GOOD                                    β”‚     β”‚
β”‚  β”‚ Impact: Click responsiveness                      β”‚     β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β”‚
β”‚                                                         β”‚
β”‚  CUMULATIVE LAYOUT SHIFT (CLS)                           β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”‚
β”‚  β”‚ Current: 0.15                                     β”‚     β”‚
β”‚  β”‚ Target: <0.1                                      β”‚     β”‚
β”‚  β”‚ Status: ⚠️ NEEDS IMPROVEMENT                      β”‚     β”‚
β”‚  β”‚ Impact: Visual stability, accidental clicks       β”‚     β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β”‚
β”‚                                                         β”‚
β”‚  SEO IMPACT: Moderate (2 metrics need improvement)       β”‚
β”‚                                                         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Common Performance Problems and Their Fixes

Problem 1: Slow Page Load

Symptoms:

  • High bounce rate
  • Users leaving before page renders
  • Poor conversion on landing pages

Common causes:

  • Large, unoptimized images
  • Too many HTTP requests
  • No caching
  • Slow server response

Fixes:

CauseFixEffort
Large imagesCompression, lazy loading, WebPLow
Too many requestsBundle JavaScript, CSSMedium
No cachingImplement browser cachingLow
Slow serverCDN, server optimizationMedium

Problem 2: Slow API Responses

Symptoms:

  • UI feels sluggish
  • Actions take seconds to complete
  • User frustration with “loading” states

Common causes:

  • Unoptimized database queries
  • Missing indexes
  • No caching
  • Too much data returned

Fixes:

CauseFixEffort
Slow queriesQuery optimization, indexesMedium
No cachingRedis, in-memory cacheMedium
Too much dataPagination, field selectionLow

Problem 3: Slow Mobile Experience

Symptoms:

  • Mobile conversion much lower than desktop
  • High mobile bounce rate
  • Mobile users spend less time

Common causes:

  • Desktop-only design
  • Heavy JavaScript
  • Large assets
  • Poor mobile network handling

Fixes:

CauseFixEffort
Heavy JSCode splitting, tree shakingHigh
Large assetsAdaptive loading, compressionMedium
Network issuesService workers, offline supportHigh

Performance vs. Features: The Roadmap Trade-off

The Allocation Framework

Recommended split:

CategoryAllocationExample
New features60-70%New capabilities
Performance15-20%Speed optimization
Technical debt10-15%Code health

The Performance Budget

What is a performance budget?

A limit on performance metrics that the team agrees not to exceed.

Example performance budget:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ PERFORMANCE BUDGET - Q1 2025                              β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                         β”‚
β”‚  Page Load:                                                 β”‚
β”‚  └── Homepage: < 2s                                    β”‚
β”‚  └── Product pages: < 2.5s                                β”‚
β”‚  └── Checkout: < 3s                                         β”‚
β”‚                                                         β”‚
β”‚  API Response:                                               β”‚
β”‚  └── P95 latency: < 500ms                                β”‚
β”‚  └── Error rate: < 1%                                      β”‚
β”‚                                                         β”‚
β”‚  Bundle Size:                                                β”‚
β”‚  └── Initial JS: < 200KB                                  β”‚
β”‚  └── Initial CSS: < 50KB                                    β”‚
β”‚                                                         β”‚
β”‚  ENFORCEMENT:                                               β”‚
β”‚  └── CI builds fail if budget exceeded                        β”‚
β”‚  └── PM review required to exceed budget                    β”‚
β”‚                                                         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Making the Trade-off Decision

When performance work conflicts with feature work:

  1. Measure current performance
  2. Calculate business impact of slow performance
  3. Estimate business value of the feature
  4. Compare ROI

Example decision:

Option A: Ship feature now, performance at 4s load time
β”œβ”€β”€ Feature value: $100K in new revenue
└── Performance impact: -$50K in lost conversions

Option B: Fix performance first, ship feature next sprint
β”œβ”€β”€ Performance improvement: +$80K in conversions
└── Delay feature cost: -$20K (2-week delay)

Decision: Option B has higher net value

Building a Performance Culture

The Performance Mindset Shift

From: “Performance is an engineering concern”
To: “Performance is a feature”

Weekly Performance Review

Add to your recurring meetings:

Weekly Performance Review (15 minutes)
β”œβ”€β”€ P95 latency trend
β”œβ”€β”€ Error rate
β”œβ”€β”€ Core Web Vitals
β”œβ”€β”€ Any performance incidents
└── Performance budget status

Performance in Feature Specs

Add to every feature spec:

## Performance Requirements

### Expected Impact
- Will this feature increase page weight? By how much?
- Will this feature add API calls? How many?
- What's the expected render time impact?

### Performance Budget
- Does this fit within our performance budget?
- If not, what trade-off are we making?

### Monitoring
- How will we measure performance impact?
- What alerts should we set up?

Questions to Ask Your Engineering Team

About Current Performance

  • “What’s our P95 latency right now?”
  • “What are our Core Web Vitals scores?”
  • “Where are our performance bottlenecks?”

About Performance Impact

  • “How will this feature affect page load time?”
  • “What’s the performance cost of this approach?”
  • “Is there a faster way to achieve the same result?”

About Performance Investment

  • “What performance improvements would have the highest impact?”
  • “What’s blocking us from being faster?”
  • “What performance work should be on the roadmap?”

Your Performance Action Plan

Week 1: Measure

  • Get access to performance dashboards
  • Understand current Core Web Vitals
  • Identify top 3 slowest pages/endpoints
  • Calculate performance impact on conversion

Week 2: Prioritize

  • Identify highest-impact performance improvements
  • Estimate effort vs. impact
  • Add top items to roadmap
  • Set performance targets

Month 1: Optimize

  • Implement top performance fixes
  • Set up performance budgets
  • Add performance to feature specs
  • Establish weekly performance review

Quarter 1: Culture

  • Performance is discussed in every planning
  • Performance budgets are enforced
  • Team is performance-conscious
  • Performance metrics are visible

The Bottom Line

Performance is not a technical metric. It’s a business metric.

Fast products:

  • Convert better
  • Rank higher in Google
  • Retain users longer
  • Generate more revenue

Slow products:

  • Lose users
  • Rank lower
  • Frustrate customers
  • Leave money on the table

Your job as PM:

  1. Know your performance metrics
  2. Understand the business impact
  3. Prioritize performance work appropriately
  4. Make performance visible to stakeholders

The shift: When you treat performance as a feature, you build better products. Products that users love because they work fast.

Start today: Find out your current page load time. If it’s >3 seconds, you have a performance problem that’s costing you money.


What’s your slowest page? What would 1 second of improvement mean for your business?

Related Reading: