A SQL capacity remediation report can convert a selected reserve into a hold, shift, or shed action.

Program

Play the query to choose reserve and inspect the capacity action row.

capacity_shift_report.sql
CREATE TABLE capacity_policy (hold_min INTEGER, shift_min INTEGER);
INSERT INTO capacity_policy VALUES (12, 6);
WITH params(reserve) AS (VALUES ()) SELECT 'capacity' AS scope, reserve, CASE WHEN reserve >= (SELECT hold_min FROM capacity_policy) THEN 'hold' WHEN reserve >= (SELECT shift_min FROM capacity_policy) THEN 'shift' ELSE 'shed' END AS action FROM params;
CREATE TABLE capacity_policy (hold_min INTEGER, shift_min INTEGER);
INSERT INTO capacity_policy VALUES (12, 6);
WITH params(reserve) AS (VALUES ()) SELECT 'capacity' AS scope, reserve, CASE WHEN reserve >= (SELECT hold_min FROM capacity_policy) THEN 'hold' WHEN reserve >= (SELECT shift_min FROM capacity_policy) THEN 'shift' ELSE 'shed' END AS action FROM params;
CREATE TABLE capacity_policy (hold_min INTEGER, shift_min INTEGER);
INSERT INTO capacity_policy VALUES (12, 6);
WITH params(reserve) AS (VALUES ()) SELECT 'capacity' AS scope, reserve, CASE WHEN reserve >= (SELECT hold_min FROM capacity_policy) THEN 'hold' WHEN reserve >= (SELECT shift_min FROM capacity_policy) THEN 'shift' ELSE 'shed' END AS action FROM params;
reserve parameter `reserve` is selected in the parameter CTE rather than read from live capacity data.
policy table Fixed threshold rows keep the hold and shift boundaries visible.
action result The result row keeps the reserve and remediation action together.