A final report can count records, apply a limit, and choose a compact status label.

Report Pipeline

report_pipeline.c
#include <stdio.h>

int main(void) {
    int warningLimit = ;
    int warnings[3] = {0, 1, 2};
    int flagged = 0;

    for (int i = 0; i < 3; i++) {
        if (warnings[i] > warningLimit) {
            flagged++;
        }
    }

    const char *status = "pass";
    if (flagged > 0) {
        status = "review";
    }

    printf("limit=%d flagged=%d status=%s\n", warningLimit, flagged, status);
    return 0;
}
#include <stdio.h>

int main(void) {
    int warningLimit = ;
    int warnings[3] = {0, 1, 2};
    int flagged = 0;

    for (int i = 0; i < 3; i++) {
        if (warnings[i] > warningLimit) {
            flagged++;
        }
    }

    const char *status = "pass";
    if (flagged > 0) {
        status = "review";
    }

    printf("limit=%d flagged=%d status=%s\n", warningLimit, flagged, status);
    return 0;
}
#include <stdio.h>

int main(void) {
    int warningLimit = ;
    int warnings[3] = {0, 1, 2};
    int flagged = 0;

    for (int i = 0; i < 3; i++) {
        if (warnings[i] > warningLimit) {
            flagged++;
        }
    }

    const char *status = "pass";
    if (flagged > 0) {
        status = "review";
    }

    printf("limit=%d flagged=%d status=%s\n", warningLimit, flagged, status);
    return 0;
}
threshold The limit decides which records need attention.
status label A small summary label makes the final result easy to scan.