from math import ceil

def main(input):
    output = []
    for row in input:
        available = int(row["on_hand"]) - int(row["reserved"])
        demand = float(row["daily_demand"])
        target = demand * (int(row["lead_days"]) + int(row["buffer_days"]))
        output.append(dict(row, available_units=available,
            coverage_days=round(available / demand, 2) if demand > 0 else "",
            reorder_units=max(0, ceil(target - available)) if demand > 0 else 0,
            stock_status="no_demand" if demand <= 0 else "review" if available < 0 else "calculated"))
    return output
