diff --git a/include/evalhyd/detail/probabilist/evaluator.hpp b/include/evalhyd/detail/probabilist/evaluator.hpp
index c01c54be9479593c98ced5f6a23c472f6c510fb4..76f8de0d2f0294f9e7dbc86252c1220a18592585 100644
--- a/include/evalhyd/detail/probabilist/evaluator.hpp
+++ b/include/evalhyd/detail/probabilist/evaluator.hpp
@@ -146,11 +146,11 @@ namespace evalhyd
 
             auto get_c_lvl()
             {
-                if (_c_lvl.size() < 1)
+                if (_c_lvl.size() < 1 && _q_lvl.size() < 1)
                 {
                     throw std::runtime_error(
                             "interval-based metric requested, "
-                            "but *c_lvl* not provided"
+                            "but neither *c_lvl* nor *q_lvl* provided"
                     );
                 }
                 else{
@@ -515,7 +515,7 @@ namespace evalhyd
                 n_tim = q_prd.shape(3);
                 n_msk = t_msk.shape(2);
                 n_thr = _q_thr.shape(1);
-                n_itv = _c_lvl.size();
+                n_itv = _q_lvl.size() > 0 ? _q_lvl.size() : _c_lvl.size();
                 n_exp = b_exp.size();
 
                 // drop time steps where observations and/or predictions are NaN