A capacity report can turn remaining reserve into an operational response that is easy to scan. The selector changes only the reserve value.

Program

Play the program to choose remaining reserve and inspect the response.

reserve
capacity_shift_report.dart
Replay: real traced execution (multi-file project)
void main() {
  var reserve = 8;
  var action = 'shift';
  if (reserve >= 12) {
    action = 'hold';
  } else if (reserve >= 6) {
    action = 'shift';
  } else {
    action = 'shed';
  }
  var line = 'reserve=$reserve $action';
  print(line);
}
void main() {
  var reserve = 4;
  var action = 'shift';
  if (reserve >= 12) {
    action = 'hold';
  } else if (reserve >= 6) {
    action = 'shift';
  } else {
    action = 'shed';
  }
  var line = 'reserve=$reserve $action';
  print(line);
}
void main() {
  var reserve = 16;
  var action = 'shift';
  if (reserve >= 12) {
    action = 'hold';
  } else if (reserve >= 6) {
    action = 'shift';
  } else {
    action = 'shed';
  }
  var line = 'reserve=$reserve $action';
  print(line);
}
  1. reserve ← 8

    1void main() {2  var reserve = 8;3  var action = 'shift';
    values this step8reserve
  2. action ← shift

    2var reserve = 8;3var action = 'shift';4if (reserve >= 12) {
    values this stepshiftaction
  3. condition ← false

    3var action = 'shift';4if (reserve >= 12) {5  action = 'hold';
    values this stepfalsecondition8reserve
  4. condition ← true

    5  action = 'hold';6} else if (reserve >= 6) {7  action = 'shift';
    values this steptruecondition8reserve
  5. action ← shift

    6} else if (reserve >= 6) {7  action = 'shift';8} else {
    values this stepshiftaction
  6. line ← reserve=8 shift

    10}11var line = 'reserve=$reserve $action';12print(line);
    values this stepreserve=8 shiftline8reserveshiftaction
  7. print(line);

    11  var line = 'reserve=$reserve $action';12  print(line);13}
    outputreserve=8 shift
    values this stepreserve=8 shiftline
  1. reserve ← 4

    1void main() {2  var reserve = 4;3  var action = 'shift';
    values this step4reserve
  2. action ← shift

    2var reserve = 4;3var action = 'shift';4if (reserve >= 12) {
    values this stepshiftaction
  3. condition ← false

    3var action = 'shift';4if (reserve >= 12) {5  action = 'hold';
    values this stepfalsecondition4reserve
  4. condition ← false

    5  action = 'hold';6} else if (reserve >= 6) {7  action = 'shift';
    values this stepfalsecondition4reserve
  5. action ← shed

    8} else {9  action = 'shed';10}
    values this stepshedaction
  6. line ← reserve=4 shed

    10}11var line = 'reserve=$reserve $action';12print(line);
    values this stepreserve=4 shedline4reserveshedaction
  7. print(line);

    11  var line = 'reserve=$reserve $action';12  print(line);13}
    outputreserve=4 shed
    values this stepreserve=4 shedline
  1. reserve ← 16

    1void main() {2  var reserve = 16;3  var action = 'shift';
    values this step16reserve
  2. action ← shift

    2var reserve = 16;3var action = 'shift';4if (reserve >= 12) {
    values this stepshiftaction
  3. condition ← true

    3var action = 'shift';4if (reserve >= 12) {5  action = 'hold';
    values this steptruecondition16reserve
  4. action ← hold

    4if (reserve >= 12) {5  action = 'hold';6} else if (reserve >= 6) {
    values this stepholdaction
  5. line ← reserve=16 hold

    10}11var line = 'reserve=$reserve $action';12print(line);
    values this stepreserve=16 holdline16reserveholdaction
  6. print(line);

    11  var line = 'reserve=$reserve $action';12  print(line);13}
    outputreserve=16 hold
    values this stepreserve=16 holdline
reserve selector `reserve` is the controlled input for each report variant.
response bands The branch sequence maps high, medium, and low reserve into `hold`, `shift`, or `shed`.
capacity row The final output keeps reserve and response together for review.