Use pending checks and error budget to choose a rollout guard status.

Rollout Guard Reliability Report

rollout_guard_reliability_report.c
#include <stdio.h>

int main(void) {
    int pendingChecks = ;
    int errorBudget = 8;
    const char *status = "ship";

    if (errorBudget < 5) {
        status = "limit";
    }

    if (pendingChecks > 0) {
        status = "limit";
    }

    if (pendingChecks >= 3) {
        status = "hold";
    }

    printf("pending=%d\n", pendingChecks);
    printf("budget=%d\n", errorBudget);
    printf("status=%s\n", status);
    return 0;
}
#include <stdio.h>

int main(void) {
    int pendingChecks = ;
    int errorBudget = 8;
    const char *status = "ship";

    if (errorBudget < 5) {
        status = "limit";
    }

    if (pendingChecks > 0) {
        status = "limit";
    }

    if (pendingChecks >= 3) {
        status = "hold";
    }

    printf("pending=%d\n", pendingChecks);
    printf("budget=%d\n", errorBudget);
    printf("status=%s\n", status);
    return 0;
}
#include <stdio.h>

int main(void) {
    int pendingChecks = ;
    int errorBudget = 8;
    const char *status = "ship";

    if (errorBudget < 5) {
        status = "limit";
    }

    if (pendingChecks > 0) {
        status = "limit";
    }

    if (pendingChecks >= 3) {
        status = "hold";
    }

    printf("pending=%d\n", pendingChecks);
    printf("budget=%d\n", errorBudget);
    printf("status=%s\n", status);
    return 0;
}
guard status A rollout guard turns operational evidence into a compact ship, limit, or hold label.
pending checks Pending checks are treated separately from error budget so the cause stays visible.