from __future__ import annotations


def execute(payload: dict) -> dict:
    results = []
    for case in payload.get("scenarios", []):
        error = abs(float(case["actual"]) - float(case["expected"]))
        passed = error <= float(case.get("tolerance", 0))
        results.append({"id": case["id"], "passed": passed, "error": round(error, 6), "evidence": case.get("evidence")})
    passed_count = sum(item["passed"] for item in results)
    return {"verdict": "PASS" if results and passed_count == len(results) else "FAIL", "passed": passed_count, "total": len(results), "results": results}
