A reliability report often turns a small check summary into a label that an operator can scan. The selector changes the failed-check count while the service window stays fixed.

Program

Play the program to choose the failed check count and inspect the readiness report.

service_window_reliability_report.dart
String reliabilityLabel(int failedChecks, int openMinutes) {
  if (failedChecks == 0 && openMinutes >= 30) {
    return 'ready';
  }
  if (failedChecks <= 1) {
    return 'watch';
  }
  return 'blocked';
}

void main() {
  var failedChecks = ;
  var openMinutes = 45;
  var status = reliabilityLabel(failedChecks, openMinutes);
  var line = 'failed=$failedChecks open=$openMinutes status=$status';
  print(line);
}
String reliabilityLabel(int failedChecks, int openMinutes) {
  if (failedChecks == 0 && openMinutes >= 30) {
    return 'ready';
  }
  if (failedChecks <= 1) {
    return 'watch';
  }
  return 'blocked';
}

void main() {
  var failedChecks = ;
  var openMinutes = 45;
  var status = reliabilityLabel(failedChecks, openMinutes);
  var line = 'failed=$failedChecks open=$openMinutes status=$status';
  print(line);
}
String reliabilityLabel(int failedChecks, int openMinutes) {
  if (failedChecks == 0 && openMinutes >= 30) {
    return 'ready';
  }
  if (failedChecks <= 1) {
    return 'watch';
  }
  return 'blocked';
}

void main() {
  var failedChecks = ;
  var openMinutes = 45;
  var status = reliabilityLabel(failedChecks, openMinutes);
  var line = 'failed=$failedChecks open=$openMinutes status=$status';
  print(line);
}
report function `reliabilityLabel` keeps the readiness policy separate from the printable report row.
compound check `failedChecks == 0 && openMinutes >= 30` models an all-clear service window.
scan line The final line keeps the signal, window, and derived status together.