Lane × project
—Provider × DoE-setting join
—Per campaign: the configured instances (provider ∧ model@version ∧ role) its records carry, from treatment.instance stamps in the same feed (doe_join block). Per-instance verdicts do not exist in the sources and are not synthesized — state shown is the campaign DESIGN status plus join coverage; a campaign with no joined instance renders NOT ESTABLISHED.