A remediation report can map a failure count to a concrete next action while keeping the signal and action visible in one row.

Program

Play the program to choose the failed check count and inspect the remediation action.

rollback_action_report.f90
program rollback_action_report_demo
    implicit none
    integer :: failed_checks
    character(len=10) :: action

    failed_checks = 
    if (failed_checks == 0) then
        action = 'monitor'
    else if (failed_checks <= 2) then
        action = 'rollback'
    else
        action = 'escalate'
    end if
    print '(A, I0, 1X, A)', 'failed=', failed_checks, trim(action)
end program rollback_action_report_demo
program rollback_action_report_demo
    implicit none
    integer :: failed_checks
    character(len=10) :: action

    failed_checks = 
    if (failed_checks == 0) then
        action = 'monitor'
    else if (failed_checks <= 2) then
        action = 'rollback'
    else
        action = 'escalate'
    end if
    print '(A, I0, 1X, A)', 'failed=', failed_checks, trim(action)
end program rollback_action_report_demo
program rollback_action_report_demo
    implicit none
    integer :: failed_checks
    character(len=10) :: action

    failed_checks = 
    if (failed_checks == 0) then
        action = 'monitor'
    else if (failed_checks <= 2) then
        action = 'rollback'
    else
        action = 'escalate'
    end if
    print '(A, I0, 1X, A)', 'failed=', failed_checks, trim(action)
end program rollback_action_report_demo
action label The `action` character value carries the remediation decision as ordinary program state.
tiered decision The `if`/`else if` chain separates monitor, rollback, and escalation cases.
report row The print line keeps the raw failure count beside the selected action.