The problem with the brms default y ~ x
With the standard formula, brms internally centers predictors during estimation (intercept reparameterization). A custom prior(…, class = Intercept) then does not act on the "raw" intercept of your predictors, but on an internally shifted parameter. With uncentered predictors — the standard case in practice — this leads to extreme posterior standard errors and unintended prior specifications.
Our solution: y ~ 0 + Intercept + x by default
With explicit intercept modeling:
• The prior prior(normal(60, 20), class = b, coef = Intercept) acts directly on the raw scale
• The prior corresponds to the expected outcome when all predictors = 0
• No internal conflict, no hidden shifts
• The prior meaning is always unambiguous on the raw scale
• Recommendation: Still center predictors (scale() etc.) — greatly improves interpretability of the intercept and stabilizes MCMC sampling
Syntax difference
brms default: prior(normal(0, 2.5), class = Intercept)
Explicit (this formula): prior(normal(0, 2.5), class = b, coef = Intercept)
Exception: Ordinal models (cumulative, categorical) — their threshold parameters keep class = Intercept, as brms treats them differently.