The 730-Hour Month

One word, three numbers โ€” and the 10.7% spread that no cost review ever audits

Published: 2026-10-09  |  jslet Research  |  14 min read

๐Ÿ“‘ In This Briefing

  1. Four Numbers, One Word
  2. Why 730 Is Not Arbitrary
  3. The Number on the Invoice
  4. Commitments Are Measured in Hours
  5. Your SLA Uses a Different Month
  6. Where the Mixing Bites
  7. Frequently Asked Questions
  8. Methodology & Disclosure

Ask your cloud provider's pricing calculator how many hours are in a month and it will say 730. Ask the same provider's service level agreement and it will say 30 days โ€” 720 hours. Ask the billing system and it charged you 744 hours for an instance that ran all of October, 720 for November, and 672 for February. Three answers, one word, and no reconciliation anywhere in between.

Each individual gap is small enough to look like rounding: 1.9% between the calculator's month and a 31-day invoice, 7.9% between the calculator's month and February. That is exactly why it survives. A number that is wrong by two percent does not look like a modelling convention that nobody wrote down. It looks like noise, and noise gets averaged away in a spreadsheet that was never designed to notice it.

This briefing is about that spread โ€” where each convention comes from, which one your invoice, your commitment and your uptime contract are each measured in, and how to stop three of them from living in the same model. It is the written companion to the vCPU to Compute Hours calculator, which converts a fleet into vCPU-hours against a stated month length so the convention is an input rather than an assumption.

Four Numbers, One Word

A month is not a unit of time. It is a name we give to twelve unequal intervals, and any engineering calculation that consumes one has to pick a length for it. There are five candidates, and they differ by more than ten percent:

What you call a monthHoursvs the 730-hour convention
February, non-leap (28 days)672−58 h (−7.9%)
February, leap (29 days)696−34 h (−4.7%)
Any 30-day month720−10 h (−1.4%)
Annual average (365 ÷ 12)730—
Leap-year average (366 ÷ 12)732+2 h (+0.3%)
Any 31-day month744+14 h (+1.9%)

The full spread from 672 to 744 is 10.7%. Two people estimating the same always-on instance with the same hourly rate can disagree by a tenth of the bill without either of them making a mistake โ€” they simply chose different months. And this is not a hypothetical: the industry currently runs on two of these conventions at once, and they belong to different departments.

SystemHours in a "month"Where the number comes from
Cloud pricing calculators730(365 × 24) ÷ 12, the annual average
SLA and SLO tables720A 30-day month, by long-standing convention
Your actual invoice672–744The calendar, billed per second
A one-year commitment8,760365 × 24 hours of coverage in a year
A month is 730 hours in the cost model, 720 hours in the reliability contract and 744 hours on the invoice. All three are published by the same provider.

None of the four is a bug. Each is correct within its own frame, and each frame was chosen by someone who had a good reason and no obligation to tell the next person. The failure mode is not picking the wrong one. It is picking two.

Why 730 Is Not Arbitrary

The 730-hour month is not a marketing rounding. Multiply it back out and the reason appears immediately: 730 × 12 = 8,760, which is exactly 365 × 24. The convention is not a month at all โ€” it is a year divided by twelve. Every calendar year contains 8,760 hours (8,784 in a leap year), so dividing by twelve produces a number whose only useful property is that it recomposes into the right annual total.

That single property explains both why the convention is everywhere and why every monthly projection built on it is wrong. Cloud providers state the definition plainly rather than hide it. AWS's pricing calculator FAQ puts it in one sentence โ€” the calculator "assumes there are 730 hours in a month ((365 days × 24 hours) / 12 months in a year), which may be less or more than the actual hours in the current billing period" โ€” and then walks through the divergence for a $0.10/hour On-Demand instance:

PeriodHoursCost at $0.10/hourvs the 730-hour estimate
Calculator's estimate730$73.00—
February, non-leap672$67.20−$5.80
November (30 days)720$72.00−$1.00
October (31 days)744$74.40+$1.40
Twelve months, non-leap8,760$876.00$0.00

Read the last row against the first. Monthly, the estimate is off by as much as 7.9%. Annually, it is off by nothing at all. The 730-hour month is a lossless compression of the year into twelve identical boxes, and every individual box is the wrong size.

A 730-hour month is annually exact and monthly wrong. Every month is mis-stated; the errors cancel by December.

There is one more drift worth naming. Because 730 is built from a 365-day year, the convention silently discards the leap day. In a leap year the true annual total is 8,784 hours and the average month is 732. An organisation that models every month as 730 will under-forecast a leap year by 24 hours of always-on capacity per instance โ€” the only case where the annual total does not cancel, and the one nobody adjusts for.

The Number on the Invoice

What you are actually billed is neither 730 nor 720. Since 2017, AWS has billed Linux instances per second with a 60-second minimum, and the other major providers meter sub-hourly as well. Metering granularity does not change the arithmetic of a full month though: an instance that is on for every second of a 31-day month is on for 744 hours, and that is what appears on the bill. Here is a non-leap year, month by month, for a single always-on instance priced at $0.10/hour:

MonthDaysBilled hoursvs 730
January31744+14
February28672−58
March31744+14
April30720−10
May31744+14
June30720−10
July31744+14
August31744+14
September30720−10
October31744+14
November30720−10
December31744+14
Year3658,7600

Seven months bill 744 hours, four bill 720, one bills 672 โ€” and only one of the twelve is within a rounding error of the 730-hour estimate. The practical consequence is a forecasting rule that most cost dashboards get backwards. A monthly projection built on 730 will show a "budget variance" of +1.9% every 31-day month and −7.9% every February, and an engineer will spend time investigating the long months and the short months as though traffic moved, when the only thing that moved was the Gregorian calendar.

Scale it and the false signal gets expensive to chase. A fleet with a $100,000 monthly compute bill running flat out will show +$1,920 in October and −$7,950 in February against a 730-hour forecast. None of that is a change in usage, and all of it lands in a variance report that someone has to explain. The fix is not to model better months. It is to forecast in hours per year and reconcile in days per month, so that the calendar is visible as a factor rather than baked into the baseline.

An always-on instance is billed for 8,760 hours a year, not 8,760 ÷ 12 hours twelve times. The annual number is stable; the monthly numbers are the calendar talking.

Commitments Are Measured in Hours

Reserved Instances and Savings Plans do not sell months. They sell hours of coverage, and the term is fixed in hours regardless of how the calendar falls: 8,760 for a one-year commitment, 26,280 for three years. That makes the month convention a first-order input to any commitment calculation, in a way that is easy to miss because the pricing pages quote discounts as percentages rather than hour counts.

TermHours of coverageIf you model it as 12 × 730If you model it as 12 × 720
1 year8,7608,760 — exact8,640 − 120 h short
3 years26,28026,280 — exact25,920 − 360 h short

The 720-hour path is the one to watch, and it is the one people reach for, because a "30-day month" feels like the conservative choice. It is not. Twelve 720-hour months is 8,640 hours, which leaves 120 hours a year of a continuously running instance outside the commitment โ€” 1.4% of the term, billed at on-demand rates for every instance in the fleet. On a 100-instance fleet that is 12,000 uncovered instance-hours a year, and the discount you negotiated does not apply to a single one of them.

The mirror error is subtler and sits on the capacity-planning side. A commitment covers hours whether or not your workload runs in them: if you buy a 1-year RI and only use 4,800 hours, the remaining 3,960 hours are paid for and unused. That is why the breakeven question is really about utilisation โ€” 8,760 hours of coverage against the hours your workload actually occupies โ€” and why the same fleet can be over-committed in one quarter and under-committed in the next. Both readings need the hours, not the months, to be computed at all.

A commitment is a number of hours, not a number of months. Model the term in days and you will find 120 hours a year that no discount reaches.

Your SLA Uses a Different Month

Here is where the two conventions stop being a curiosity and start being a contract. Cost models run on 730 hours. Reliability contracts run on 720. Google Cloud's reliability documentation states the basis in the column heading itself โ€” "Estimated maximum downtime in a 30-day month" โ€” and lists 99.9% as 43.2 minutes. That figure is not a coincidence: 720 hours × 0.1% = 0.72 hours = 43.2 minutes. A 730-hour month would give 43.8 minutes, and a 31-day month gives 44.64.

Availability target28-day (672 h)30-day (720 h)31-day (744 h)Year (8,760 h)
99.9% (three nines)40.32 min43.2 min44.64 min8.76 h
99.95%20.16 min21.6 min22.32 min4.38 h
99.99% (four nines)4.03 min4.32 min4.46 min52.6 min

The 30-day convention is honest and it is the industry standard โ€” budget arithmetic in the SRE literature has always assumed a 30-day window, which is why the burn-rate thresholds in the error-budget model are expressed against a 720-hour month. The trap is not the convention. The trap is comparing a vendor's "43.2 minutes per month" against your own measurement taken in a 31-day month, where the contract actually allows 44.64. Do that and your incident review will flag a breach that never happened, by 1.44 minutes. Run the comparison in February instead and the same 43.2-minute reference is 2.88 minutes stricter than the contract, so a genuine breach passes unnoticed.

A 99.9% promise is 44.64 minutes of allowance in a 31-day month and 40.32 in February. Neither is the number in the table, and both are the contract.

The only figure that is comparable across the whole year is the annual one โ€” 8.76 hours for three nines โ€” and it is the figure almost nobody measures against, because dashboards are built monthly. If you want a monthly view that tracks the contract, compute the allowance from the month's own length. If you want a number that does not move, use the year.

Where the Mixing Bites

The failure mode is rarely a wrong convention. It is two right conventions in one calculation โ€” the kind of thing that happens when a headline number and a formula are written on different days. A fleet-sizing sheet says "16 vCPUs × 730 hours = 11,680 vCPU-hours per month" on its summary tab, while the tab that turns hours into months divides by 720, because a different person built it and a 30-day month felt like the safer choice. Neither line is wrong on its own. They are 1.4% apart, and they describe different months.

That 1.4% does not stay small, because it is multiplied twice โ€” once by the number of instances, and once by every downstream thing that consumes the figure:

Quantity730-hour basis720-hour basisGap
One 16-vCPU instance, one month11,680 vCPU-h11,520 vCPU-h160
Ten such instances, one month116,800 vCPU-h115,200 vCPU-h1,600
Ten such instances, one year1,401,600 vCPU-h1,382,400 vCPU-h19,200
At $0.05 per vCPU-hour$70,080$69,120$960

Nine hundred and sixty dollars a year of pure ambiguity, from a fleet small enough to fit in one rack, decided by which line of which document someone copied. The same 1.4% applied to a commitment calculation leaves hours uncovered; applied to an SLA leaves minutes misattributed; applied to a capacity plan shifts the instance count. The number does not have to be large to matter โ€” it has to be multiplied, and in infrastructure arithmetic everything is multiplied.

The remedy is a three-line note that goes at the top of the model rather than in a footnote, so that the next person to open the spreadsheet inherits the convention instead of guessing it:

If you are…usebecause
Building an annual budget730 h/month, or 8,760 h/yearAnnually exact; the monthly errors cancel
Reconciling a monthly invoiceactual days × 24It is what you were billed
Sizing an RI or Savings Plan8,760 h/year (26,280 for 3 years)How the commitment is denominated
Measuring against an SLA720 h for the month, 8,760 h for the yearThe contract's own stated basis

Two rules make the note enforceable. First, never let a monthly figure and an annual figure into the same comparison โ€” convert one of them. Second, when a number derived from hours turns up somewhere new, carry the month length with it; "11,680 vCPU-hours on a 730-hour month" survives a change of convention, and "11,680 vCPU-hours" does not.

The convention is not the problem. The problem is a model that contains two of them and no line saying which is which.

The calculators that this briefing pairs with all take the month length as an argument rather than assume it, so the arithmetic stays honest whichever convention a team has standardised on. The vCPU to Compute Hours calculator converts a fleet profile into vCPU-hours, vCPU-days and vCPU-months against the length you supply; the RI vs Spot Breakeven calculator prices a commitment against the hours a workload actually occupies; the Error Budget calculator applies the 30-day window that the SLO literature uses; and the Cron Execution Frequency matrix shows how many times a schedule fires in a standard month, which is the same convention question asked by a scheduler instead of a billing system.

Frequently Asked Questions

How many hours are in a month for cloud billing?

The billing convention is 730 hours, defined as (365 days × 24 hours) ÷ 12 months. AWS states this explicitly in its pricing calculator FAQ. No actual month is 730 hours long: a 28-day February is 672, a 30-day month is 720 and a 31-day month is 744. The 730 figure is an annual average, which is why it is exactly right over a year and wrong in every individual month.

Does AWS actually charge 730 hours per month?

No. AWS bills per second with a 60-second minimum on Linux, so an always-on instance in a 31-day month is charged 744 hours and one in February is charged 672. The 730-hour figure is a modelling convention used by the pricing calculator, not a billing rule. AWS's own FAQ notes that its monthly estimate "may be less or more than the actual hours in the current billing period."

Why does 99.9% uptime equal 43.2 minutes per month?

Because SLA tables use a 30-day month of 720 hours, not the 730-hour billing month. 720 hours × 0.1% = 0.72 hours = 43.2 minutes, which is the figure Google Cloud publishes for a 30-day month. The same 99.9% allows 44.64 minutes in a 31-day month and 40.32 minutes in a 28-day February. Across a whole year the allowance is 8.76 hours.

How many hours are in a year for reserved instance commitments?

8,760 hours (365 days × 24 hours), and 26,280 hours for a 3-year term. Reserved Instances and Savings Plans are commitments measured in hours of coverage, not in months, so a one-year commitment covers 8,760 hours of a given instance regardless of how the calendar falls. Modelling the year as twelve 720-hour months gives 8,640 hours and leaves 120 hours a year uncovered at on-demand rates.

Methodology & Disclosure

Hour counts are exact arithmetic on the Gregorian calendar: a day is 24 hours, a non-leap year is 365 days (8,760 hours), a leap year is 366 days (8,784 hours), and the 730-hour monthly convention is (365 × 24) ÷ 12 as defined by AWS's pricing calculator documentation. The month-by-month billed-hour table is a non-leap year (2026) for a single continuously running instance, and assumes second-level metering with a 60-second minimum, which rounds to a whole hour only in this table and never on an invoice. Uptime allowances are computed as (1 − availability) × window length, using a 30-day month of 720 hours for the convention column because that is the basis the published SLA tables state, and the month's own length for the other columns. Hourly prices in worked examples are illustrative and stated in USD; they are used only to make a percentage legible and are not vendors' current list rates โ€” verify rates at the source before budgeting. Reserved Instance and Savings Plan terms are taken as 8,760 hours for one year and 26,280 hours for three. This site takes no sponsorship, no affiliate commission and no vendor payment of any kind; the vendors named here have no relationship with jslet and did not review this briefing.

References & Further Reading

  1. AWS Pricing Calculator, Frequently Asked Questions โ€” the 730-hour month definition, "may be less or more than the actual hours in the current billing period", and the month-by-month variance worked example. calculator.aws
  2. AWS Pricing Calculator, Pricing Assumptions โ€” monthly normalisation to 730 hours, 4.34 weeks per month and 4.3 occurrences of a weekday per month. calculator.aws
  3. Google Cloud Architecture Center, Building blocks of reliability โ€” uptime SLA tables with "estimated maximum downtime in a 30-day month", including 99.9% as 43.2 minutes. cloud.google.com/architecture
  4. Beyer et al. Site Reliability Engineering and The Site Reliability Workbook โ€” error budgets and burn-rate thresholds defined over a 30-day window. sre.google
  5. Amazon EC2 documentation โ€” per-second billing with a 60-second minimum for Linux instances, and Reserved Instance term lengths expressed in hours. docs.aws.amazon.com
  6. Related: vCPU to Compute Hours Calculator ยท The Reservation Trap: 3-Year RI vs AWS Spot ยท The Error Budget: 99.9% = 43.2 Minutes/Month ยท Cron Execution Frequency Matrix ยท Kubernetes Pod Cost Calculator

๐Ÿ“œ Copyright & Attribution

© 2026 jslet Research. This article is an original work published on jslet (jslet.com). All rights reserved.

Sharing & Reprinting: You may share excerpts (up to 200 words) with a mandatory, do-follow link back to the original article URL. Full reproduction, translation, or adaptation requires prior written permission. Contact: support@jslet.com.

Estimation Disclaimer: Hour counts, uptime allowances and percentage gaps are exact arithmetic on stated calendar assumptions and are not measurements of any particular provider's billing system. Billing implementations and SLA wordings vary; read your own contract and your own invoice before relying on any figure here for a commitment or a dispute.