I think df
is using the following calculation which is based on free space available to an unprivileged user.
% used = used / (total available to non-root = used + available)
% used = 302919680 / ( 302919680 + 666697728) = 0.3124115527 = 31.24%
available
definition - https://linux.die.net/man/2/statfs