Calculate capacity reserve and label whether the reserve is stable, watched, or tight.

reserve report Fixed capacity and demand values can produce a replay-friendly reserve label before any scheduler acts on it.

Capacity Reserve Reliability Report

demand
capacity_reserve.ts
Replay: real traced execution (multi-file project)
type CapacityReport = {
    demand: number;
    reserve: number;
    status: string;
};

const demand: number = 72;
const capacity: number = 100;
const reserve: number = capacity - demand;
let reportStatus: string = "tight";

if (reserve >= 20) {
    reportStatus = "stable";
} else if (reserve >= 10) {
    reportStatus = "watch";
}

const report: CapacityReport = { demand, reserve, status: reportStatus };
console.log(`demand=${report.demand} reserve=${report.reserve} status=${report.status}`);
type CapacityReport = {
    demand: number;
    reserve: number;
    status: string;
};

const demand: number = 88;
const capacity: number = 100;
const reserve: number = capacity - demand;
let reportStatus: string = "tight";

if (reserve >= 20) {
    reportStatus = "stable";
} else if (reserve >= 10) {
    reportStatus = "watch";
}

const report: CapacityReport = { demand, reserve, status: reportStatus };
console.log(`demand=${report.demand} reserve=${report.reserve} status=${report.status}`);
type CapacityReport = {
    demand: number;
    reserve: number;
    status: string;
};

const demand: number = 95;
const capacity: number = 100;
const reserve: number = capacity - demand;
let reportStatus: string = "tight";

if (reserve >= 20) {
    reportStatus = "stable";
} else if (reserve >= 10) {
    reportStatus = "watch";
}

const report: CapacityReport = { demand, reserve, status: reportStatus };
console.log(`demand=${report.demand} reserve=${report.reserve} status=${report.status}`);
  1. demand ← 72, capacity ← 100, reserve ← 28, reportStatus ← tight

    4    status: string;5};67const demand→ 72: number = 72;  //@demand=88, 958const capacity→ 100: number = 100;9const reserve→ 28: number = capacity→ 100 - demand72;10let reportStatus→ tight: string = "tight";
  2. if (reserve >= 20)

    9const reserve: number = capacity - demand;10let reportStatus: string = "tight";1112if (reserve28 >= 20) {13    reportStatus = "stable";14} else if (reserve >= 10) {
  3. report ← [object Object]

    15    reportStatus = "watch";16}1718const report→ [object Object]: CapacityReport = { demand, reserve, status: reportStatusstable };19console.log(`demand=${report.demand72} reserve=${report.reserve28} status=${report.statusstable}`);
    outputdemand=72 reserve=28 status=stable
  1. demand ← 88, capacity ← 100, reserve ← 12, reportStatus ← tight

    4    status: string;5};67const demand→ 88: number = 88;8const capacity→ 100: number = 100;9const reserve→ 12: number = capacity→ 100 - demand88;10let reportStatus→ tight: string = "tight";
  2. if (reserve >= 10)

    13    reportStatus = "stable";14} else if (reserve12 >= 10) {15    reportStatus = "watch";16}
  3. report ← [object Object]

    15    reportStatus = "watch";16}1718const report→ [object Object]: CapacityReport = { demand, reserve, status: reportStatuswatch };19console.log(`demand=${report.demand88} reserve=${report.reserve12} status=${report.statuswatch}`);
    outputdemand=88 reserve=12 status=watch
  1. demand ← 95, capacity ← 100, reserve ← 5, reportStatus ← tight

    4    status: string;5};67const demand→ 95: number = 95;8const capacity→ 100: number = 100;9const reserve→ 5: number = capacity→ 100 - demand95;10let reportStatus→ tight: string = "tight";1112if (reserve >= 20) {13    reportStatus = "stable";14} else if (reserve >= 10) {15    reportStatus = "watch";16}1718const report→ [object Object]: CapacityReport = { demand, reserve, status: reportStatustight };19console.log(`demand=${report.demand95} reserve=${report.reserve5} status=${report.statustight}`);
    outputdemand=95 reserve=5 status=tight