Compare retries already spent against a fixed budget and choose a retry, hold, or abort action.

Retry Budget Remediation Report

retry_budget_remediation_report.c
#include <stdio.h>

int main(void) {
    int retriesUsed = ;
    int retryBudget = 4;
    int remaining = retryBudget - retriesUsed;
    const char *action = "retry";

    if (remaining <= 1) {
        action = "hold";
    }

    if (remaining <= 0) {
        action = "abort";
    }

    printf("used=%d\n", retriesUsed);
    printf("remaining=%d\n", remaining);
    printf("action=%s\n", action);
    return 0;
}
#include <stdio.h>

int main(void) {
    int retriesUsed = ;
    int retryBudget = 4;
    int remaining = retryBudget - retriesUsed;
    const char *action = "retry";

    if (remaining <= 1) {
        action = "hold";
    }

    if (remaining <= 0) {
        action = "abort";
    }

    printf("used=%d\n", retriesUsed);
    printf("remaining=%d\n", remaining);
    printf("action=%s\n", action);
    return 0;
}
#include <stdio.h>

int main(void) {
    int retriesUsed = ;
    int retryBudget = 4;
    int remaining = retryBudget - retriesUsed;
    const char *action = "retry";

    if (remaining <= 1) {
        action = "hold";
    }

    if (remaining <= 0) {
        action = "abort";
    }

    printf("used=%d\n", retriesUsed);
    printf("remaining=%d\n", remaining);
    printf("action=%s\n", action);
    return 0;
}
remaining budget The remaining budget is derived once so each action variant has a single visible driver.
remediation step The action moves from retry to hold to abort as the remaining budget is consumed.