             ((job_type = 'classical')
              AND (compute_mean_hazard_curve IS NOT NULL))
             OR
-            ((job_type IN ('deterministic', 'event_based'))
+            ((job_type IN ('deterministic', 'event_based', 'disaggregation'))
              AND (compute_mean_hazard_curve IS NULL))),
     conditional_loss_poe float[],
     fault_magnitude_scaling_relationship VARCHAR

    -- ground motion correlation flag
    gm_correlated boolean CONSTRAINT gm_correlated_is_set
        CHECK(
            ((job_type = 'classical') AND (gm_correlated IS NULL))
            OR ((job_type != 'classical') AND (gm_correlated IS NOT NULL))),
    gmf_calculation_number integer CONSTRAINT gmf_calculation_number_is_set
        CHECK(
            ((job_type = 'deterministic')

    -- Probabilities of exceedence
    poes float[] CONSTRAINT poes_are_set
        CHECK(
            ((job_type IN ('classical', 'disaggregation')) AND (poes IS NOT NULL))
            OR ((job_type IN ('event_based', 'deterministic')) AND (poes IS NULL))),
    -- Number of logic tree samples
    realizations integer CONSTRAINT realizations_is_set
        CHECK(
