How we decide.
Your laptop's own numbers go in. One of four answers comes out.
Three checks decide your answer.
Your measurements
- Memory pressure
- Swap
- Memory in use
- Graphics and processor load
Is memory pinned at the limit?
- Red in 50% or more of readings
- yellow or red in 90%, with 4 GB of swap
Is it short of memory, or of chip?
- Red in 5% or more of readings
- yellow or red in 25%
- the graphics chip or processor maxed out in 20%
Is there plenty to spare?
- Never red, and yellow or red in 2% or less
- swap under 0.5 GB
- RAM at least 1.5x what you need
None of the above
Seven numbers, every 30 minutes.
One reading
Taken every 30 minutes while the laptop is awake
- Memory pressure
- Red
- Memory in use
- 14.11 of 16 GB
- Swap on disk
- 2.8 GB
- Compressed memory
- 4.99 GB
- Graphics load
- 11.7%
- Processor load
- 37.6%
- Installed memory
- 16 GB, M3
What Apple says the colours mean
- Green Using all of its RAM efficiently.
- Yellow Might eventually need more RAM.
- Red Needs more RAM.
Never recorded, so never read into a verdict
- Redacted: Names of running programs
- Redacted: Computer and user name
140 readings became “Upgrade to 24 GB”.
A Mac with 16 GB, watched for 14 days
140 readings, one every 30 minutes while awake.
Count the colours
14 red, 32 yellow, 94 green.
Compare with the lines
Red in 10% of readings: over the 5% upgrade line, under the 50% line where we give up.
Size the busy hours
14.21 GB in use plus 3.14 GB pushed to disk is 17.4 GB of demand, more than the 16 GB it has.
Keep a fifth free
17.4 GB / 0.8 = 21.7 GB. The next size Apple sells is 24 GB.
Upgrade to 24 GB
Smallest size that fits. Confidence: High, from 140 readings over 14 days.
Every rule is a line you can see.
- More than you need
- Right-sized
- Upgrade
- Cannot judge
Readings in the red
5% means upgrade. 50% hides your real need.
Readings in yellow or red
Under 2% may be oversized. 25% means upgrade.
Swap at your busiest
Swap alone is normal. 4 GB counts with strained memory.
Chip maxed out
Graphics 80% or processor 90%, in 20% of readings.
Memory we keep free
20% of RAM stays free at your busiest.
RAM against what you need
1.5x what you need, memory never short: oversized.
Show all thresholds 30 constants, generated from the code that decides
| Constant | Value | Basis | What it means |
|---|---|---|---|
PRESSURE_LEVEL_NORMAL | 1 level | Apple | Green. Apple: "Your computer is using all of its RAM efficiently." |
PRESSURE_LEVEL_WARN | 2 level | Apple | Yellow. Apple: "Your computer might eventually need more RAM." |
PRESSURE_LEVEL_CRITICAL | 4 level | Apple | Red. Apple: "Your computer needs more RAM." Level numbers follow libdispatch. |
LEGACY_COMPRESSED_ELEVATED_RATIO | 0.25 ratio of RAM | Our judgement | Older captures without the OS level: compressed memory at this share of RAM counts as yellow. |
LEGACY_COMPRESSED_CRITICAL_RATIO | 0.5 ratio of RAM | Our judgement | Older captures without the OS level: compressed memory at this share of RAM counts as red. |
WIN_COMMIT_ELEVATED_PCT | 80 % | Our judgement | Windows: memory committed at or above this counts as yellow. Microsoft publishes no threshold; this is the line the report already drew. |
WIN_COMMIT_CRITICAL_PCT | 90 % | Our judgement | Windows: memory committed at or above this counts as red. |
AT_LIMIT_RED_SHARE | 0.5 share of captures | Our judgement | Red in at least this share of captures: the machine is pinned and true demand is unknown. |
AT_LIMIT_NONGREEN_SHARE | 0.9 share of captures | Our judgement | Also pinned: yellow or red this often, together with heavy swap. |
AT_LIMIT_SWAP_P50_GB | 4 GB | Our judgement | The swap level (median capture) that goes with the line above. |
UPGRADE_RED_SHARE | 0.05 share of captures | Our judgement | Red in at least this share of captures means upgrade. Apple calls red "needs more RAM". |
UPGRADE_NONGREEN_SHARE | 0.25 share of captures | Our judgement | Yellow or red this often means upgrade. Apple calls yellow "might eventually need more RAM". |
UPGRADE_SWAP_P95_GB | 4 GB | Our judgement | Heavy swap at the busy hours, together with the line below, means upgrade. |
UPGRADE_SWAP_MIN_NONGREEN_SHARE | 0.1 share of captures | Our judgement | Swap alone is normal on a healthy Mac, so it only counts when pressure was also yellow or red this often. |
OVERSIZED_MAX_RED_SHARE | 0 share of captures | Our judgement | Oversized needs red in at most this share of captures: none. |
OVERSIZED_MAX_NONGREEN_SHARE | 0.02 share of captures | Our judgement | Oversized needs yellow-or-red in at most this share of captures. |
OVERSIZED_SWAP_P95_GB | 0.5 GB | Our judgement | Oversized needs swap at the busy hours to be negligible. |
OVERSIZED_MIN_SAVING_FACTOR | 1.5 x | Our judgement | Oversized needs installed RAM to be at least this many times the size your demand needs. |
DEMAND_PERCENTILE | 95 percentile | Our judgement | We size for the busy hours (this percentile of the captures), not the average. |
HEADROOM_FRACTION | 0.2 share of RAM | Our judgement | The share of RAM we want free at the busy hours. |
MIN_RECOMMENDED_RAM_GB | 16 GB | Apple | No current MacBook ships with less. |
GPU_SATURATED_PCT | 80 % | Our judgement | A capture counts as GPU-saturated at or above this. The report already drew this line. |
CPU_SATURATED_PCT | 90 % | Our judgement | A capture counts as CPU-saturated at or above this. |
COMPUTE_SATURATED_SHARE | 0.2 share of captures | Our judgement | The chip is the limit when this share of captures is saturated. |
CONF_HIGH_MIN_CAPTURES | 100 captures | Our judgement | High confidence needs at least this many captures... |
CONF_HIGH_MIN_DAYS | 10 days | Our judgement | ...on at least this many different days. |
CONF_MEDIUM_MIN_CAPTURES | 30 captures | Our judgement | Medium confidence needs at least this many captures... |
CONF_MEDIUM_MIN_DAYS | 5 days | Our judgement | ...on at least this many different days. Below this the verdict is provisional. |
CONF_BOUNDARY_BAND | 0.2 share | Our judgement | A deciding number within this band of its threshold lowers confidence one level. |
CONF_MAX_UNCLASSIFIED_SHARE | 0.2 share of captures | Our judgement | More captures than this without a memory signal makes confidence LOW. |
More days, more confidence.
The example above sits in the high corner: 140 readings over 14 days. A deciding number close to its line lowers it one level.
It measures your workload on this machine, for these days. Storage, screen, battery and budget stay yours to weigh.
What we compare against.
| MacBook | 16 | 24 | 32 | 36 | 48 | 64 | 128 | From, as of 2026-10-20 |
|---|---|---|---|---|---|---|---|---|
| MacBook Air 13-inch M5 (8-core GPU) | 16 GB | 24 GB | 32 GB | €1.429 / $1,299 | ||||
| MacBook Air 13-inch M5 (10-core GPU) | 16 GB | 24 GB | 32 GB | €1.539 / $1,399 | ||||
| MacBook Air 15-inch M5 | 16 GB | 24 GB | 32 GB | €1.729 / $1,499 | ||||
| MacBook Pro 14-inch M5 | 16 GB | 24 GB | 32 GB | €2.229 / $1,999 | ||||
| MacBook Pro 14-inch M5 Pro (16-core GPU) | 24 GB | 48 GB | €2.949 / $2,499 | |||||
| MacBook Pro 14-inch M5 Pro (20-core GPU) | 24 GB | 48 GB | 64 GB | €3.199 / $2,699 | ||||
| MacBook Pro 14-inch M5 Max (32-core GPU) | 36 GB | €4.849 / $4,099 | ||||||
| MacBook Pro 14-inch M5 Max (40-core GPU) | 48 GB | 64 GB | 128 GB | €5.509 / $4,699 | ||||
| MacBook Pro 16-inch M5 Pro | 24 GB | 48 GB | 64 GB | €3.449 / $2,999 | ||||
| MacBook Pro 16-inch M5 Max (32-core GPU) | 36 GB | €5.149 / $4,399 | ||||||
| MacBook Pro 16-inch M5 Max (40-core GPU) | 48 GB | 64 GB | 128 GB | €5.749 / $4,999 |
offered. Columns are memory in GB.