> ## Documentation Index
> Fetch the complete documentation index at: https://offthepace.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# posterior_variance

> Computes posterior variance from normal-normal conjugate model.

Computes posterior variance from normal-normal conjugate model.

## Signature

```sql theme={null}
{{ posterior_variance(n_col, observation_variance_expr, prior_variance_expr) }}
```

## Arguments

| Argument                    | Description                                                                |
| --------------------------- | -------------------------------------------------------------------------- |
| `n_col`                     | column name or expression for sample size (e.g., 'panel\_observations\_n') |
| `observation_variance_expr` | expression for observation variance σ² (e.g., '0.0001' for small noise)    |
| `prior_variance_expr`       | expression for prior variance σ₀² (e.g., a column or constant)             |

## Returns

scalar expression composable in SELECT lists (posterior variance, ≥0).

## Notes

observation variance: σ² (e.g., from a fitted model's residual variance)
prior variance: σ₀²
sample size: n
The posterior variance (precision-weighted average) is:
posterior\_var = 1 / (n / σ² + 1 / σ₀²)
This is the inverse of the sum of precisions. Returns NULL if either variance is NULL or ≤0.

## Usage

```sql theme={null}
SELECT
      driver_id,
      shrunken_estimate,
      SQRT({{ posterior_variance('sample_count', '0.0001', 'prior_var') }}) as posterior_se
    FROM panel_data
```
