Thanks!
I’d parsed out the variables because in my real case some of the uncertainties have different distributions, but your formulation is definitely more elegant!
Out of interest, is there a reason you calculate the likelihood using mu - y_true rather than using mu and setting observed=y_true? I’d always assumed that setting observed was necessary to tell the model what the target was… how would this model know what data it’s fitting?