handle empty results or stats

Fixes #38

AFAICT the ration returned from this method is used in one place, as a multiplier

So... if either the stats or results are empty we just return `1` as an identity ratio

This allows report generation to complete successfully