What are RPO and RTO, and what should a 10-person SaaS aim for?
By the Keel team · Last checked · 4 min read
Short answer
RPO, the recovery point objective, is the most data you can afford to lose, measured in time. RTO, the recovery time objective, is the longest you can afford to be down. A small SaaS on AWS can often reach an RPO of minutes using Amazon RDS point-in-time restore, and an RTO of a few hours, as long as restores are tested and timed.
About 5 min
Typical RDS point-in-time restore gap
Source: AWS docs
35 days
Longest RDS automated backup retention
Source: AWS docs
What is RPO in plain English?
RPO is how far back in time you are willing to go when you recover.
An RPO of one hour means that, in the worst case, you accept losing the last hour of data. It is decided by how often your data is backed up or replicated, not by how quickly you restore.
What is RTO in plain English?
RTO is how long your product can be unavailable before the damage is unacceptable.
An RTO of four hours means you aim to be working again within four hours of deciding to recover. It is decided by how fast you can restore, reconfigure and verify, which you only know by testing.
What RPO and RTO should a small SaaS aim for?
A small SaaS can usually aim for an RPO of minutes and an RTO of a few hours for its main database, with looser targets for files, caches and analytics.
There is no single right answer, but these are reasonable starting points for a SaaS team of around ten people. Agree them with whoever owns customer contracts, because some enterprise customers will ask.
| System | Example RPO | Example RTO | Typical AWS approach |
|---|---|---|---|
| Main production database | Minutes | A few hours | RDS automated backups with point-in-time restore |
| Customer file uploads | Hours | A day | S3 versioning, optionally replication |
| Search index or cache | Rebuildable | A few hours | Rebuild from the database |
| Analytics and reporting | A day | Days | Daily snapshots or exports |
Amazon RDS point-in-time restore can usually restore to within about the last five minutes, which makes an RPO of minutes realistic for the main database. RTO is harder, because it includes people and process as well as the restore itself.
Does Multi-AZ mean you do not need backups?
No. Multi-AZ keeps a standby copy of your database in another availability zone, which protects you against an instance or zone failure.
But it replicates every change, including accidental deletes, bad migrations and corruption. Only backups let you go back to a point before the mistake. You need both for different reasons.
How do you know if you can meet your RTO?
You know by timing a real restore from start to a working application, not just the database restore.
Add up the steps:
- Noticing the problem and deciding to restore.
- Running the restore itself.
- Pointing the application and secrets at the restored database.
- Checking the data and running a smoke test.
- Telling customers you are back.
If the total is longer than your RTO, either speed up the slow steps, for example with a written runbook and pre-built restore scripts, or agree a longer RTO honestly. The RDS restore guide shows how to time the restore step.
How do RPO and RTO apply to a full AWS region outage?
Covering a full region outage means copying backups to a second region and being able to rebuild from infrastructure as code, usually with a longer RTO than for everyday incidents.
A full region outage is rare but possible. Covering it means copying backups to a second region and being able to rebuild your infrastructure there, which is much easier if everything is defined as code. For many small SaaS teams, a sensible middle ground is cross-region backup copies plus infrastructure as code, with a longer RTO for that scenario than for everyday incidents.
Do you know your real RPO and RTO?
Tick each statement you can confirm with evidence.
- Your RPO and RTO are written down and agreed by the business.
- Point-in-time restore is on for the main database.
- You have timed a full restore to a working app.
- The timed restore fits inside your RTO.
- Backups are copied to a second region, or you have decided not to.
Decision point: Without the third and fourth ticks, your RTO is a guess. Time a restore before you promise any recovery target to a customer.
Who decides the RPO and RTO for a SaaS product?
The business decides, and engineering checks whether it is achievable.
A founder or CTO should set the targets based on what customers and contracts expect, then confirm with a timed restore that the setup can meet them. If the answer is no, either invest in the setup or agree a looser target honestly. Promising an RTO you have never tested is the most common mistake.
What should you tell customers about RPO and RTO?
Tell customers only what you have tested.
A clear, modest statement, such as backups every few minutes with point-in-time restore, restore tested monthly, and a target recovery time of a few hours, is more convincing to an enterprise security reviewer than an ambitious number with no evidence. Keep your latest restore test report ready to share on request.
How do RPO and RTO change as a SaaS grows?
Targets usually tighten as revenue and customer expectations grow.
Early on, a few hours of downtime might be acceptable. Later, contracts may require tighter targets, which can mean Multi-AZ databases, cross-region backup copies, warm standby environments and more frequent drills. Review your targets once a year, or when you sign a customer with specific recovery terms.
Sources
- AWS docs, Restoring a DB instance to a specified time for Amazon RDS (checked October 2026)
- AWS docs, Introduction to backups for Amazon RDS (checked October 2026)
- AWS Well-Architected, Perform data backup validation and recovery testing (checked October 2026)
Keep reading
Keel is an AWS release and recovery operations service for SaaS teams of 3 to 15 developers, provided by Bargainn Services Ltd, a UK company registered at Companies House (16497746). Registered office: 3rd Floor, 86-90 Paul Street, London, EC2A 4NE, United Kingdom.