Sizing checks with visible assumptions
Home Assistant Hardware Capacity Estimator
Compare your planned box against Home Assistant's published minimums, estimate Recorder database growth from state-change volume, and size camera recording storage. Every assumption is editable and explained.
What this estimator does
It answers three questions for a Home Assistant box: does the hardware clear the platform's published floor, how much storage the Recorder database is likely to need at your retention, and how much disk continuous camera recording will consume. The arithmetic is intentionally transparent so you can argue with every number.
The assumptions, out in the open
| Assumption | Default | Why |
|---|---|---|
| HA floor: 2 GB RAM, 32 GB storage | — | Home Assistant's own published requirements. Anything below this is a bad idea regardless of what a reseller page claims. |
| SD card flag | warning | Recorder writes constantly. SD cards wear out and corrupt; an SSD is the single most impactful upgrade for a Home Assistant box. |
| Recorder row size | 1,000 bytes (editable) | State-change rows in SQLite/MariaDB land in the hundreds-of-bytes to low-kilobytes range depending on attributes tracked. Treat the default as a midpoint, then verify with PRAGMA page_count (SQLite) or information_schema.TABLES (MariaDB). |
| Change rate | 40/day/entity (editable) | Thermostats and power sensors change far more often than door sensors. Sample your own database before trusting any default. |
| Camera storage | bitrate × 3,600 s/h × 24 h × days ÷ 8 | Pure arithmetic: bitrate × seconds × days converted to gigabytes. H.265 substreams typically run 1–4 Mbps; 24/7 motion-triggered recording behaves like continuous on busy scenes. |
Worked example: a 16 GB mini PC
Our Beelink EQi12 test unit carries 16 GB of RAM (the memory module reports 16,147 MB usable — see the unattended memory-diagnostic guide for how we verify that). Against this tool's thresholds, 16 GB with 150 entities and a couple of add-ons lands in the comfortable band with room for a camera stack — which matches how people actually run these boxes: Home Assistant in a VM on Proxmox with media services beside it. If the iGPU is shared with Jellyfin, check the measured Quick Sync stream budget before promising camera transcoding on the same silicon.
Where small setups go wrong
- Long retention, not entity count, is what fills disks. 10 days at default keep is modest; 90 days multiplies everything by nine.
- Backups live on a different disk. A Home Assistant backup stored on the same SD card as the installation survives nothing. Plan retention with the retention and window planner, then prove restores work — our compose restore drill shows the method.
- Replication in the Recorder config halves your write volume; if you enable it, halve the change rate, not the retention.
How to verify the estimate against your real database
On a default installation, open the recorder database (SQLite) and run PRAGMA page_count; multiplied by PRAGMA page_size;. Divide by the number of states in states_meta and by your purge window and you get your own row-size and change-rate constants. Feed those back into this tool. Estimates are for buying decisions; measured numbers are for capacity planning.
Frequently asked questions
Does Home Assistant need 4 GB or is 2 GB enough?
2 GB is the published floor and works for a small install with no add-ons. The moment you add Supervisor add-ons, a camera integration or a voice pipeline, plan for 4 GB or more. RAM is the cheapest capacity you can buy.
Why is an SD card flagged?
The Recorder database writes continuously, and SD cards handle constant small writes badly — wear leveling gives out and the filesystem corrupts. If the card dies you lose the database and often the OS. A $20 SSD lasts years longer.
How big will my Recorder database get?
Entities × state changes per day × retention days × bytes per row. With the defaults (150 entities, 40 changes, 10 days, 1 KB) that is roughly 0.6 GB. The tool shows the math with your numbers so you can sanity-check each factor.
Should I run Home Assistant bare metal or in a VM?
On a mini PC with 8 GB+ of RAM, a VM on Proxmox gives you snapshots and easy backups of the whole appliance. On a 2–4 GB SBC, bare-metal Home Assistant OS is simpler and leaves more RAM for the instance. Both are supported paths.
How much storage for cameras?
Bitrate × recording hours × retention. A 2 Mbps substream recorded 24/7 for 7 days is about 150 GB. Motion-triggered recording on a quiet scene can be a tenth of that; check your NVR's own counters rather than guessing.