     -- 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))),
+            ((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')

        CHECK(
            (job_type IN ('deterministic', 'event_based'))
            OR
            ((job_type = 'classical')
             AND (gmf_random_seed IS NULL))),
    gmpe_lt_random_seed integer
        CONSTRAINT gmpe_lt_random_seed_is_set

    -- 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(
