Capacity reports are easier to review when demand, reserve, and a threshold label appear in one result.

Program

Play the script to choose the minimum reserve and inspect which services stay above the margin.

min_reserve
capacity_reserve_reliability_report.sql
Replay: real traced execution (multi-file project)
CREATE TABLE service_capacity (service TEXT, demand INTEGER, capacity INTEGER);
INSERT INTO service_capacity VALUES ('api', 72, 100), ('batch', 88, 100), ('search', 95, 100);
WITH params(min_reserve) AS (VALUES (10)), reserves AS (SELECT service, capacity - demand AS reserve FROM service_capacity) SELECT service, reserve, CASE WHEN reserve >= (SELECT min_reserve FROM params) THEN 'ok' ELSE 'tight' END AS capacity_status FROM reserves ORDER BY service;
CREATE TABLE service_capacity (service TEXT, demand INTEGER, capacity INTEGER);
INSERT INTO service_capacity VALUES ('api', 72, 100), ('batch', 88, 100), ('search', 95, 100);
WITH params(min_reserve) AS (VALUES (5)), reserves AS (SELECT service, capacity - demand AS reserve FROM service_capacity) SELECT service, reserve, CASE WHEN reserve >= (SELECT min_reserve FROM params) THEN 'ok' ELSE 'tight' END AS capacity_status FROM reserves ORDER BY service;
CREATE TABLE service_capacity (service TEXT, demand INTEGER, capacity INTEGER);
INSERT INTO service_capacity VALUES ('api', 72, 100), ('batch', 88, 100), ('search', 95, 100);
WITH params(min_reserve) AS (VALUES (25)), reserves AS (SELECT service, capacity - demand AS reserve FROM service_capacity) SELECT service, reserve, CASE WHEN reserve >= (SELECT min_reserve FROM params) THEN 'ok' ELSE 'tight' END AS capacity_status FROM reserves ORDER BY service;
  1. tables ← 1 row

    1CREATE TABLE service_capacity (service TEXT, demand INTEGER, capacity INTEGER);2INSERT INTO service_capacity VALUES ('api', 72, 100), ('batch', 88, 100), ('search', 95, 100);
    values this step1 rowtables
  2. service_capacity ← 3 rows

    1CREATE TABLE service_capacity (service TEXT, demand INTEGER, capacity INTEGER);2INSERT INTO service_capacity VALUES ('api', 72, 100), ('batch', 88, 100), ('search', 95, 100);3WITH params(min_reserve) AS (VALUES (10)), reserves AS (SELECT service, capacity - demand AS reserve FROM service_capacity) SELECT service, reserve, CASE WHEN reserve >= (SELECT min_reserve FROM params) THEN 'ok' ELSE 'tight' END AS capacity_status FROM reserves ORDER BY service;
    values this step3 rowsservice_capacity
  3. result ← 3 rows

    2INSERT INTO service_capacity VALUES ('api', 72, 100), ('batch', 88, 100), ('search', 95, 100);3WITH params(min_reserve) AS (VALUES (10)), reserves AS (SELECT service, capacity - demand AS reserve FROM service_capacity) SELECT service, reserve, CASE WHEN reserve >= (SELECT min_reserve FROM params) THEN 'ok' ELSE 'tight' END AS capacity_status FROM reserves ORDER BY service;
    values this step3 rowsresult
  1. tables ← 1 row

    1CREATE TABLE service_capacity (service TEXT, demand INTEGER, capacity INTEGER);2INSERT INTO service_capacity VALUES ('api', 72, 100), ('batch', 88, 100), ('search', 95, 100);
    values this step1 rowtables
  2. service_capacity ← 3 rows

    1CREATE TABLE service_capacity (service TEXT, demand INTEGER, capacity INTEGER);2INSERT INTO service_capacity VALUES ('api', 72, 100), ('batch', 88, 100), ('search', 95, 100);3WITH params(min_reserve) AS (VALUES (5)), reserves AS (SELECT service, capacity - demand AS reserve FROM service_capacity) SELECT service, reserve, CASE WHEN reserve >= (SELECT min_reserve FROM params) THEN 'ok' ELSE 'tight' END AS capacity_status FROM reserves ORDER BY service;
    values this step3 rowsservice_capacity
  3. result ← 3 rows

    2INSERT INTO service_capacity VALUES ('api', 72, 100), ('batch', 88, 100), ('search', 95, 100);3WITH params(min_reserve) AS (VALUES (5)), reserves AS (SELECT service, capacity - demand AS reserve FROM service_capacity) SELECT service, reserve, CASE WHEN reserve >= (SELECT min_reserve FROM params) THEN 'ok' ELSE 'tight' END AS capacity_status FROM reserves ORDER BY service;
    values this step3 rowsresult
  1. tables ← 1 row

    1CREATE TABLE service_capacity (service TEXT, demand INTEGER, capacity INTEGER);2INSERT INTO service_capacity VALUES ('api', 72, 100), ('batch', 88, 100), ('search', 95, 100);
    values this step1 rowtables
  2. service_capacity ← 3 rows

    1CREATE TABLE service_capacity (service TEXT, demand INTEGER, capacity INTEGER);2INSERT INTO service_capacity VALUES ('api', 72, 100), ('batch', 88, 100), ('search', 95, 100);3WITH params(min_reserve) AS (VALUES (25)), reserves AS (SELECT service, capacity - demand AS reserve FROM service_capacity) SELECT service, reserve, CASE WHEN reserve >= (SELECT min_reserve FROM params) THEN 'ok' ELSE 'tight' END AS capacity_status FROM reserves ORDER BY service;
    values this step3 rowsservice_capacity
  3. result ← 3 rows

    2INSERT INTO service_capacity VALUES ('api', 72, 100), ('batch', 88, 100), ('search', 95, 100);3WITH params(min_reserve) AS (VALUES (25)), reserves AS (SELECT service, capacity - demand AS reserve FROM service_capacity) SELECT service, reserve, CASE WHEN reserve >= (SELECT min_reserve FROM params) THEN 'ok' ELSE 'tight' END AS capacity_status FROM reserves ORDER BY service;
    values this step3 rowsresult
reserve Reserve is derived from fixed capacity minus fixed demand.
margin selector `min_reserve` changes the policy threshold without changing the fixture rows.
report label The final result labels each service as ok or tight.