     -- Probabilities of exceedence
     poes float[] CONSTRAINT poes_are_set
         CHECK(
-            ((job_type = 'classical') AND (poes IS NOT NULL))
-            OR ((job_type != 'classical') AND (poes IS NULL))),
+            ((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(

            ((job_type = 'classical')
             AND (compute_mean_hazard_curve IS NOT NULL))
            OR
            ((job_type IN ('deterministic', 'event_based'))
             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 IN ('classical', 'disaggregation')) AND (gm_correlated IS NULL))
            OR ((job_type IN ('event_based', 'deterministic')) AND (gm_correlated IS NOT NULL))),
    gmf_calculation_number integer CONSTRAINT gmf_calculation_number_is_set
        CHECK(
            ((job_type = 'deterministic')
