In brief: Priors encode what you already know before seeing data, keeping the model realistic and preventing nonsensical results. In Simba, Smart Defaults set priors automatically, but you can customize every one.
Priors are one of the most powerful features of Bayesian modeling. They let you tell the model what you already know — or believe — about a parameter before it sees any data. In Simba, priors are fully configurable through the UI, giving you control over every aspect of the model while providing sensible defaults that work out of the box.
In Bayesian modeling, every parameter starts with a prior distribution — a probability distribution that represents your beliefs about the parameter before observing data. The model then combines this prior with the observed data (via the likelihood) to produce the posterior distribution — your updated beliefs.
Left: a weakly informative prior shifts substantially when data arrives. Center: a strong prior barely moves — a signal that either the prior is very confident or more data is needed. Right: adding a lift test as a likelihood observation produces a sharper, better-calibrated posterior.
Priors matter for several reasons:
If a lift test showed that paid search ROAS is between 2x and 4x, you can add this as a calibration observation in the Model Details step. The model will use this experimental evidence as additional likelihood data alongside the time-series data, producing more accurate and stable estimates.
Priors prevent the model from arriving at implausible parameter values. For example, a prior that constrains a channel’s effect to be positive prevents the model from estimating that spending more on a profitable channel decreases sales — a result that sometimes occurs in frequentist regression due to multicollinearity or noise.
When a channel was only active for a few weeks, the data alone may not be sufficient to estimate its effect reliably. A prior provides a starting point that keeps the estimate reasonable until more data accumulates.
Because Simba is a fully transparent platform, every prior is visible and inspectable. Stakeholders can review the assumptions encoded in the model and challenge them if needed. This is far more transparent than the implicit assumptions buried in frequentist model specifications.
Simba’s prior builder UI exposes four distribution types that you can select directly. The model also uses additional distributions internally for specific parameter types (decay rates, saturation shape). All distributions are backed by PyMC.
Top row: the three user-selectable continuous distributions. Bottom row: Beta and Gamma are used internally for decay rates and saturation shape; TVP allows coefficients to vary smoothly over time.
The Normal (Gaussian) distribution is defined on the entire real line. It is symmetric and bell-shaped.
When Simba uses Normal:
Key parameters:
The InverseGamma distribution is defined on positive real numbers and has a right-skewed shape. In Simba, this is the default distribution for media channel coefficients because it naturally constrains effects to be positive while allowing for a long right tail.
When Simba uses InverseGamma:
Key parameters (in Simba’s parameterization):
Practical interpretation: An InverseGamma prior on a media coefficient says “I expect this channel’s effect to be around this magnitude, but I am open to it being somewhat larger. It cannot be negative.”
The TruncatedNormal distribution is a normal (bell-curve) distribution that is cut off at specified lower and/or upper bounds. This is useful when you want a roughly bell-shaped prior but need to enforce hard constraints.
When Simba uses TruncatedNormal:
Key parameters:
Practical interpretation: A TruncatedNormal(mu=0.5, sigma=0.2, lower=0, upper=1) prior on a decay rate says “I expect the decay rate to be around 0.5 (half-life of about 1 week), but it could reasonably be anywhere from 0.2 to 0.8. It cannot be negative or exceed 1.”
The TVP distribution allows a parameter to change smoothly over time rather than remaining fixed for the entire modeling period. It uses a Hilbert Space Gaussian Process (HSGP) basis internally — a computationally efficient approximation that allows smooth time-variation without excessive computation.
When TVP is useful:
Key parameters:
Important: TVP adds model complexity and requires more data to estimate reliably. Use it only when you have strong reason to believe the effect is genuinely time-varying.
These distributions are used internally by the model for specific parameter types. You control them indirectly through the UI’s adstock and saturation settings.
The Beta distribution is defined on the interval (0, 1), making it a natural choice for adstock decay rates. Simba fits a constrained Beta prior based on the decay lower and upper bounds you set in the UI, concentrating 70% of the probability mass within your specified range.
The Gamma distribution is used for:
alpha_sd parameter you set in the UI (labeled “Diminishing Return” in the prior table).When you configure a model, Simba calculates smart default priors for every media channel. These are not arbitrary — they are derived from a multi-step process that incorporates industry knowledge and your specific data.
Smart priors flow from industry benchmarks through channel-level analysis to produce calibrated defaults. Special adjustments handle halo and trademark channels.
Smart priors start with baseline coefficient expectations calibrated to your industry vertical:
Default prior means vary by industry, reflecting differences in typical media effectiveness. The red bars show the uncertainty range (one standard deviation).
| Industry | Default Mean (mu) | Default Sigma |
|---|---|---|
| FMCG | 0.060 | 0.120 |
| Retail | 0.089 | 0.178 |
| Financial Services | 0.189 | 0.379 |
| E-Commerce | 0.219 | 0.438 |
| TelCo | 0.300 | 0.600 |
The industry baseline is then adjusted for each channel based on:
Channels marked as halo effects (indirect brand lift from another channel) receive a fixed small coefficient with mean = 0.005 and sigma = 0.1. This reflects the expectation that halo effects are real but much smaller than direct media effects. See Halo Effects for details.
Channels marked as trademark or portfolio effects receive a 75% reduction in their calculated coefficient prior (multiplied by 0.25). This accounts for the fact that brand search and trademark terms are largely driven by existing demand rather than incremental media impact.
Simba’s model configuration screen exposes prior settings for every parameter in the model. Here is the workflow:
When you add a channel or configure a model component, Simba automatically assigns smart default priors. The prior table displays each parameter with its distribution type, mean, sigma, and (for media channels) adstock and saturation settings.
For most users and most channels, the smart defaults are appropriate. Consider customizing priors when:
For any parameter, you can modify the distribution type and its parameters directly in the prior table. The UI provides:
Before fitting the model, review the prior summary. Simba shows a live visualization of each prior distribution that updates as you change values, so you can see the shape and range at a glance. Look for:
Smart defaults work well when:
Manual configuration is worth the effort when:
A common misconception is that lift test results should be encoded as priors. In Simba, lift tests are integrated as additional likelihood observations — they enter the model as data, not as prior beliefs.
When you add a lift test in the Model Details step, Simba:
This approach is more principled than encoding lift tests as priors because:
Suppose a geo-based lift test for paid social showed a 15% incremental lift with a confidence interval of 10% to 20%.
Action: Add the lift test result as a calibration observation in the Model Details step (Step 5 of the wizard). Simba integrates it as a likelihood term that constrains the paid social response curve to be consistent with the experimental result. This is more effective than manually adjusting priors because it lets the model determine the best coefficient values that satisfy both the time-series data and the experimental evidence.
You launched a new CTV (Connected TV) channel three months ago, giving you only 12 weekly observations.
Action: Use a moderately informative prior on the CTV coefficient, perhaps based on industry benchmarks for CTV effectiveness or on your TV channel’s estimated effect (since CTV is a similar medium). Without this guidance, 12 data points may not be enough for the model to estimate the effect reliably.
After fitting the model, you notice that email marketing has a suspiciously high coefficient — higher than all other channels despite modest spend.
Action: Check the prior. If it is very wide (weakly informative), the model may have latched onto a spurious correlation. Consider tightening the prior based on your expectations for email’s effectiveness, then refit. If the posterior still shows a high effect, the data is strongly supporting it. If it moderates, the original estimate was likely noise-driven.
You are presenting results to stakeholders and want to show that the conclusions are robust.
Action: Run the model with two or three different prior specifications — for example, the default priors, tighter priors, and wider priors. If the key conclusions (channel rankings, budget allocation recommendations) are stable across prior choices, you can present the results with greater confidence.
One of Simba’s core design principles is that every assumption is visible. The prior configuration panel is a key expression of this principle:
This transparency ensures that no assumption is hidden. Stakeholders can review the priors, challenge them, and understand exactly how they influence the results.
See this in action: Start your free 28-day trial — no credit card required.