The formula, piece by piece
Net area = total wall area − area of doors, windows, and other openings you won't paint. Liters needed = (net area × number of coats ÷ coverage rate per liter) × (1 + wastage%). Coverage rate varies significantly by paint brand and type (commonly somewhere around 8-12 m² per liter for a single coat on a primed wall), so check your specific product's stated coverage rather than assuming a generic figure.
Why the openings deduction matters
Skipping the openings deduction is the most common way people overestimate paint needed — a room with several large windows and a door can easily have 10-15% of its "wall area" actually being openings you won't paint at all. For a precise estimate, measure and subtract every door and window, not just the largest ones.
Why coats matter more than people expect
Most paint jobs need at least 2 coats for even, opaque coverage, especially over a different existing color or a repaired/patched wall — a single coat rarely gives full, uniform coverage. Forgetting to multiply by the number of coats is the most common way people underestimate paint needed, since the arithmetic for one coat looks deceptively sufficient.
A worked example
A room with 40 m² of total wall area and 5 m² of doors/windows: net area = 35 m². At 2 coats and a coverage rate of 10 m²/liter, with a 10% wastage allowance: liters needed = (35 × 2 ÷ 10) × 1.10 = 7.7 liters.
Skipping the openings deduction (using the full 40 m² instead of the net 35 m²) would overestimate to about 8.8 liters — not a huge difference here, but the gap grows with more or larger openings relative to the room size.
Buying and estimating tips
Paint is typically sold in fixed can sizes (1L, 4L, 10L, 20L), so round your calculated liters up to the next available can size — buying slightly more than the bare minimum also gives you touch-up paint later, in the exact same batch/shade. Textured surfaces, very porous walls, or a significant color change (e.g. dark to light) often need more coats or a higher wastage allowance than the defaults used above.