def main(input):
    output = []
    for row in input:
        sales, target = float(row["net_sales"]), float(row["target_sales"])
        visitors, transactions = int(row["visitors"]), int(row["transactions"])
        attainment = round(sales / target * 100, 2) if target > 0 else ""
        conversion = round(transactions / visitors * 100, 2) if visitors > 0 else ""
        reasons = []
        if target <= 0:
            reasons.append("no_target")
        elif attainment < 95:
            reasons.append("below_target")
        if visitors <= 0:
            reasons.append("no_visitors")
        elif conversion < 20:
            reasons.append("low_conversion")
        output.append(dict(row, attainment_pct=attainment, conversion_pct=conversion,
            performance_reasons=", ".join(reasons), performance_status="review" if reasons else "on_track"))
    return output
