You close the lid at 80% and open it in the morning at 58%. Or the MacBook is warm when you take it out of your bag. Either way, something kept it awake or woke it repeatedly.

The good news is that macOS keeps a detailed log of every sleep and wake, including the battery level each time. You don’t have to guess. Here is how to read that log, what the usual culprits are, and which settings fix them.

What normal looks like

A healthy Apple silicon MacBook asleep with the lid closed typically loses somewhere between 1% and 3% over a night. Intel MacBooks lose more. If you are regularly losing more than about 5% overnight on Apple silicon, or the Mac is warm in the morning, it is worth investigating.

One exception: in the first few nights after a major macOS update, heavy overnight activity is expected while Spotlight and Photos re-index. That work mostly happens when the Mac is plugged in. If your drain started right after updating, read our guides to Spotlight indexing and post-update battery drain first.

Step 1: Read the sleep log

After a night with bad drain, open Terminal and run:

pmset -g log | grep -E " (Sleep|Wake|DarkWake) " | tail -60

Each line has a time stamp, the event, a reason, and usually the battery charge at that moment, shown as something like Using BATT (Charge:74%). Scroll through the night and look for three things:

  • Where the charge drops. Match the drops to the events just before them. That tells you whether the drain is spread across the night or happens in one burst.
  • DarkWake lines. A dark wake is a brief wake with the screen off, for network, iCloud, Find My or backups. A few per hour is normal. Dozens per hour isn’t.
  • Full Wake lines while the lid was closed. These are the ones that make a Mac warm in a bag. The reason text often names the cause, such as a network interface, a Bluetooth device, or the lid sensor itself.

The reason strings are terse and vary between Mac models, but you rarely need to decode them fully. You are looking for a pattern: the same reason again and again.

Step 2: Check what is holding it awake

Next, check whether an app is actively asking the Mac not to sleep. With your usual apps open, run:

pmset -g assertions

Look at the list under Listed by owning process. Entries such as PreventUserIdleSystemSleep or PreventSystemSleep name the process responsible. Common ones are backup and sync apps, a stuck download, video calls that didn’t fully close, stay-awake utilities, screen sharing and file sharing.

Closing the lid on battery normally overrides most of these on Apple silicon laptops. But if you close the lid with an external display, keyboard or power connected, or a sharing service is running, they can keep the Mac fully awake.

Step 3: Change the settings that cause most wakes

  • System Settings > Battery > Options (on some versions this is a button labelled Options… at the bottom). Set Wake for network access to Only on Power Adapter or Never. This alone fixes a large share of overnight drain.
  • System Settings > General > Sharing. Turn off services you don’t use: File Sharing, Screen Sharing, Remote Login, Remote Management, Media Sharing. Each can cause network wakes.
  • System Settings > General > Login Items & Extensions. Check Allow in the Background for things you don’t recognise or no longer use, and switch them off.
  • Bluetooth accessories. A mouse, keyboard or game controller that is switched on in your bag can wake the Mac. Turn accessories off, and if your macOS version has an option to let Bluetooth devices wake the computer, try switching it off to test.

Step 4: Unplug anything connected

USB-C hubs, docks, external drives and an iPhone charging from the Mac can all keep it awake or wake it. Unplug everything before closing the lid for one test night. If the drain disappears, add devices back one at a time.

If you use your MacBook closed with an external display, known as clamshell mode, it isn’t asleep at all while the display and power are connected. Drain in that setup is expected, and heat is normal.

Step 5: The last resort, network keepalive

If the log still shows constant network dark wakes, you can stop the Mac maintaining network connections while it sleeps on battery:

sudo pmset -b tcpkeepalive 0

macOS will warn you that this affects features that rely on the network during sleep. That warning is real: Find My can’t update your Mac’s location while it is asleep on battery, and iCloud and messages won’t sync until you wake it. The -b means this only applies on battery; nothing changes while plugged in. To undo it:

sudo pmset -b tcpkeepalive 1

You can see your current power settings at any time with pmset -g.

Step 6: Rule out the battery itself

If the log shows the Mac really was asleep, with few wakes, and the charge still fell a lot, look at the battery. Open System Settings > Battery and click the info button next to Battery Health. If it says Service Recommended, the battery is the problem. For the cycle count, hold Option, choose Apple menu > System Information and select Power.

The short version

An Apple silicon MacBook shouldn’t lose more than a few percent overnight. Use pmset -g log to see exactly when it woke and how much charge each wake cost, and pmset -g assertions to see what’s keeping it awake. Most cases are fixed by setting Wake for network access to Only on Power Adapter, turning off unused sharing services and background items, and unplugging accessories. Turn off network keepalive only if you accept losing Find My updates while the Mac sleeps.