FESAS

For BCO4 only correct RL statistical areas to general areas

There are several sets of statistical area (e.g. general, rock lobster, scallop). The wrong set can used be used. In particular, fishers that often use rock lobster stat areas can erroneously use them when using methods for which the general statistical areas should be applied. Currently, this check changes rock lobster stat areas to general stat areas where there is an exact or close match in the areas. Currently, this is only implemented for cod potting in the Chatham Islands.

-- © Copyright 2026 The Kahawai Collective
-- SPDX-License-Identifier: MIT
INSERT INTO grooming_rules
VALUES ('FESAS', 'edw', 'effort', 'Fix', 'For BCO 4 only correct RL statistical areas to general areas');

CREATE OR REPLACE FUNCTION FESAS() RETURNS VOID AS $$

INSERT INTO groomed.checks(code, "table", "column", id, orig, new)
SELECT 'FESAS', 'effort', 'start_stats_area_code', id, start_stats_area_code,
       CASE WHEN start_stats_area_code = '940'  THEN '049'
            WHEN start_stats_area_code = '941'  THEN '050'
            WHEN start_stats_area_code = '942'  THEN '051'
            WHEN start_stats_area_code = '943'  THEN '052'
            ELSE NULL
       END
FROM   groomed.effort
WHERE  primary_method != 'RLP' AND start_stats_area_code IN ('940','941','942', '943');

UPDATE groomed.effort
SET    checks = array_append(checks,'FESAS'),
       start_stats_area_code = u.new
FROM   groomed.checks u
WHERE  u.code = 'FESAS'
AND    groomed.effort.id = u.id
AND    groomed.effort.start_stats_area_code = u.orig;

$$ LANGUAGE SQL VOLATILE;
SELECT FESAS();
--
-- UPDATE groomed.effort SET checks = checks || '{FESAS}', start_stats_area_code = '049'
--   WHERE  primary_method = 'CP' AND start_stats_area_code = '940';
-- UPDATE groomed.effort SET checks = checks || '{FESAS}', start_stats_area_code = '050'
--   WHERE  primary_method = 'CP' AND start_stats_area_code = '941';
-- UPDATE groomed.effort SET checks = checks || '{FESAS}', start_stats_area_code = '051'
--   WHERE  primary_method = 'CP' AND start_stats_area_code = '942';
-- UPDATE groomed.effort SET checks = checks || '{FESAS}', start_stats_area_code = '052'
--   WHERE  primary_method = 'CP' AND start_stats_area_code = '943';
Effects of grooming
Figure 1: The number of records affected by the FESAS rule, by year and source.
Figure 2: The proportion of records affected by the FESAS rule, by form type, for all form types where some records are groomed by the FESAS rule.