{ "model_path": "/home/user/foxhunt/ml/trained_models/dqn_best_model.safetensors", "data_path": "/home/user/foxhunt/test_data/ES_FUT_unseen.parquet", "evaluation_timestamp": "2025-11-08T14:32:45.123456789Z", "warmup_bars": 50, "device": "cuda", "total_runtime_sec": 2.453, "action_distribution": { "buy_count": 1234, "sell_count": 987, "hold_count": 3456, "buy_pct": 21.5, "sell_pct": 17.2, "hold_pct": 61.3, "total_bars": 5677 }, "avg_q_values": { "buy_avg": 0.4523, "sell_avg": -0.1234, "hold_avg": 0.8912 }, "inference_performance": { "mean_latency_us": 342.5, "median_latency_us": 325, "p50_latency_us": 325, "p95_latency_us": 412, "p99_latency_us": 487, "min_latency_us": 198, "max_latency_us": 1243 }, "policy_consistency": { "total_switches": 1456, "switch_rate": 0.2564, "interpretation": "Moderate - Healthy adaptive behavior" }, "production_readiness": { "latency_p99_ok": true, "latency_p99_threshold_us": 5000, "latency_p99_actual_us": 487, "consistency_ok": true, "consistency_threshold_pct": "10-30%", "consistency_actual_pct": 25.64, "balanced_actions_ok": true, "q_values_finite_ok": true, "overall_ready": true } }