Motivation
I have been using the Meridian for several projects. In my case, some business KPIs are genuinely signed - e.g. net revenue, net promoter-style score, net cash flow, or any inflow-minus-outflow measure - where a period can be legitimately negative. Meridian currently blocks any negative KPI value at an input-validation gate, so these use cases are left with two poor options: floor the KPI at zero before modeling - which discards real signaling biases the fit(dangerous) - or abandon Meridian for another MMM framework (e.g. PyMC-Marketing) that does accept negative outcomes. In practice this forces users with signed KPIs away from Meridian entirely.
Benefits of supporting a signed KPI
- Broadens where Meridian applies. MMM is increasingly used beyond classic sales - in finance, subscriptions, and B2B - where the outcome is a net measure (net cash flow, net new customers, net flows). Supporting a signed KPI would let Meridian serve this whole class of measurement problems, which today it structurally can't.
- Preserves signal that the current constraint forces users to discard. To fit a signed KPI into Meridian today, users must floor it at zero or offset it - which throws away the negative periods (often the most informative about what drives declines) or shifts the scale and biases estimates. Native support would let the model see the true outcome, so the fit reflects reality rather than a distorted version of it.
- Lets marketing explain downturns, not just growth. A signed outcome allows the model to attribute negative movements - a weak quarter, net outflows - to their drivers directly, instead of assuming the outcome only ever moves up. That's a more faithful and complete measure of incremental media effect, which is the core thing MMM exists to estimate.
What we found (from experimenting with an experimental patched build)
-
The non-negativity constraint is enforced at essentially one input gate; the core fit math appears largely sign-safe. The KPI generally goes through standardization before the HMC process.
-
A small number of prior-related paths assume positivity via log() and break when the KPI grand total is <= 0. So the common, well-behaved case - a KPI with occasional negative periods but a still-positive grand total - is largely safe; only an all-negative-enough series (non-positive total) touches these paths.
-
An opt-in "negative KPI tolerance" mode looks feasible: relax the gate and make the sign-sensitive prior paths safe, while keeping behavior a strict no-op when the KPI is already non-negative (so existing users are unaffected).
Motivation
I have been using the Meridian for several projects. In my case, some business KPIs are genuinely signed - e.g. net revenue, net promoter-style score, net cash flow, or any inflow-minus-outflow measure - where a period can be legitimately negative. Meridian currently blocks any negative KPI value at an input-validation gate, so these use cases are left with two poor options: floor the KPI at zero before modeling - which discards real signaling biases the fit(dangerous) - or abandon Meridian for another MMM framework (e.g. PyMC-Marketing) that does accept negative outcomes. In practice this forces users with signed KPIs away from Meridian entirely.
Benefits of supporting a signed KPI
What we found (from experimenting with an experimental patched build)
The non-negativity constraint is enforced at essentially one input gate; the core fit math appears largely sign-safe. The KPI generally goes through standardization before the HMC process.
A small number of prior-related paths assume positivity via
log()and break when the KPI grand total is<= 0. So the common, well-behaved case - a KPI with occasional negative periods but a still-positive grand total - is largely safe; only an all-negative-enough series (non-positive total) touches these paths.An opt-in "negative KPI tolerance" mode looks feasible: relax the gate and make the sign-sensitive prior paths safe, while keeping behavior a strict no-op when the KPI is already non-negative (so existing users are unaffected).