coverageRatio now handles edge cases