I run my batteries hard. Most people don't. When you get a new battery and charge the first time, it has a calibration table that is very conservative. Basically you can go fly and run to zero indicated percent, but battery voltage is still fairly high, just under 3.6V per cell. That battery is still good for a few minutes until 3.4V is reached. So you could fly on zero. When you recharge the battery, the battery statistics are updated to use more of the voltage range so that zero is really closer to just over 3.4V. I don't recommend doing this, as the battery won't last as many cycles. I have also changed flight parameters in firmware so that the normal auto landing at 11% indicated is turned off and it flies normally.
DJI gives a conservative calibration, so you can fly down close to zero and not harm your battery. I have push my zero much lower and hit 3.4V where critically low voltage auto landing is started. If you do this, make sure you enable voltage display in battery settings so you see voltage by percentage indicator. At 3.4V indicated, you need to be getting close to the ground ready to land.
Even with this over use of battery, you are unlikely to get 31 minutes on older builds. More like 27 to 28 minutes. I see a consistent 10% improvement on new builds.