---
title: 'How Much Do Idle Dev and Staging Environments Really Cost?'
description: 'Most teams underestimate what they spend on non-production AWS resources. Here is the math, with realistic numbers, and what it adds up to over a year.'
date: '2026-05-06'
readingTime: '5 min read'
---

## The Number Most Teams Do Not Want to Know

If you have ever pulled up AWS Cost Explorer and felt a small wave of nausea, you are not alone. Dev, staging, QA, and demo environments are the largest single source of cloud waste at most engineering organizations — and almost nobody has an accurate number for what they cost.

This post walks through the math with realistic instance sizes and prices. The point is not to shame anyone. The point is that once you have a real number in front of you, the decision to do something about it gets a lot easier.

## The Hours Math

There are **168 hours in a week**. A typical engineering team uses non-production environments for roughly:

- Business hours: 9 AM to 6 PM, Monday through Friday = **45 hours**
- Occasional weekend or evening work: **5 hours**
- Total active use: **50 hours**

That leaves **118 hours per week** — about **70% of the week** — where the environment is running but nobody is touching it. Over a year that is **6,136 hours of idle time per resource**.

You are paying for every one of those hours.

## What a Realistic Non-Production Stack Costs

Let us cost out a deliberately modest non-production setup in `eu-west-1`:

| Resource                 | Type            | Hourly | Monthly    |
| ------------------------ | --------------- | ------ | ---------- |
| Dev app server           | m5.large        | $0.115 | $84        |
| Staging app server       | m5.large        | $0.115 | $84        |
| QA app server            | m5.large        | $0.115 | $84        |
| Dev database             | db.m5.large     | $0.171 | $125       |
| Staging database         | db.m5.large MAZ | $0.342 | $250       |
| Demo environment EC2     | m5.xlarge       | $0.230 | $168       |
| **Monthly total (24/7)** |                 |        | **$795**   |
| **Annual total (24/7)**  |                 |        | **$9,540** |

This is a small setup. Many teams are running three to five times this. Now let us see what scheduling does to the bill.

## What You Save by Scheduling

Schedule the same stack to run only during business hours plus a small buffer (7 AM to 8 PM on weekdays = 65 hours per week, about 39% of the week):

| Resource             | Monthly (24/7) | Monthly (scheduled) | Saved      |
| -------------------- | -------------- | ------------------- | ---------- |
| Dev app server       | $84            | $33                 | $51        |
| Staging app server   | $84            | $33                 | $51        |
| QA app server        | $84            | $33                 | $51        |
| Dev database         | $125           | $49                 | $76        |
| Staging database     | $250           | $98                 | $152       |
| Demo environment EC2 | $168           | $66                 | $102       |
| **Monthly total**    | **$795**       | **$312**            | **$483**   |
| **Annual savings**   |                |                     | **$5,796** |

That is **61% off the non-production bill** without changing a single thing about how anyone works. The team still has the environment during business hours. They still have it for occasional evening or weekend work. They just stop paying for it at 3 AM on a Tuesday.

## What Storage Still Costs

Worth being honest about: EBS volumes and RDS storage keep billing even when the compute is stopped. For the stack above, storage is roughly:

- 6 EBS volumes (100 GB gp3 each) = ~$48/month
- RDS allocated storage (200 GB total) = ~$26/month
- **Total storage cost: ~$74/month**

Storage is not affected by scheduling. The savings come from compute — but compute is the vast majority of the bill, so the percentages still work out.

## Scaling Up the Math

That was one team's small stack. Real organizations have many teams.

**Mid-size company (5 product teams, similar stack each):**

- Monthly waste: ~$2,400
- Annual waste: ~$28,800
- With scheduling: **~$17,000 in annual savings**

**Larger engineering org (15 teams, multiple environments per team):**

- Monthly waste: ~$8,000-$12,000
- Annual waste: ~$96,000-$144,000
- With scheduling: **~$60,000-$85,000 in annual savings**

These are not aggressive numbers. They are what we see in real audits at companies that have never thought systematically about non-production scheduling.

## The Hidden Costs Beyond AWS

Idle environments do not just cost money. They cost in other ways too.

**Engineering attention.** Every running environment is something that can break, fill up disk, get flagged in a security scan, or page someone at 2 AM.

**Security surface area.** Every running instance is a potential entry point. Stopped instances cannot be attacked.

**Cognitive load.** Teams who know they have $10,000/month of waste running spend mental energy feeling bad about it. Teams who have scheduled their environments stop thinking about it entirely.

## Why Teams Do Not Do This

Most teams know they are wasting money. They do not act on it because:

- "We will get to it after the current quarter ends."
- "It is on the list, just not at the top."
- "The savings are not big enough to be worth the engineering time."
- "We might need the environment outside business hours."

The third one is the most common, and it is wrong. The engineering time to set up scheduling is hours, not weeks, especially with a managed tool. The "we might need it" objection is easily handled by giving engineers a button to start the environment on demand.

## What to Do This Week

You do not need to schedule everything. Even partial scheduling on your most expensive resources captures most of the savings. A 30-minute exercise:

1. Open AWS Cost Explorer.
2. Filter to EC2 and RDS, group by tag (`Environment` or similar).
3. Sort non-production resources by cost. Identify the top five.
4. Schedule those five to stop overnight and on weekends.

You have just captured the majority of available savings with a small fraction of the work.

Whether you use [ParkMyAWS](https://parkmyaws.com), AWS Instance Scheduler, or a homegrown Lambda is less important than actually doing it. Every month you wait, the AWS bill collects another month of waste you cannot get back.
