status(actual, target) returning 'green' when actual is at least 100% of target, 'amber' at 80-99.99%, 'red' below 80% — and handle target 0: any positive actual is green, zero actual is amber (nothing expected, nothing delivered).status(95, 100)
'amber'
95% of target lands in the amber band.
status(5, 0)
'green'
Beat a zero target.
Handle target == 0 before dividing.
ratio = actual / target * 100.