{ "run_id": "2026-07-24-092646-rakuten-two-client-fairness", "started_at": "2026-07-24T10:05:38.2637724+09:00", "ended_at": "2026-07-24T10:08:37.4482884+09:00", "experiment_signature": "rwfp2c|two-client-download-fairness|iv=active-clients:pc-only,android-only,pc+android|clients=windows-pc+sh41a-android12-wifi|endpoint=cloudflare-down|bytes=10000000-per-active-client|reps=3|order=latin-square|metrics=throughput-retention+aggregate-throughput+normalized-jain-fairness", "independent_variable": { "name": "active client condition", "levels": [ "pc_only", "android_only", "pc_android_simultaneous" ] }, "design": { "bytes_per_active_client": 10000000, "repetitions": 3, "rest_seconds": 15, "order": [ "pc_only -\u003e android_only -\u003e pc_android_simultaneous", "android_only -\u003e pc_android_simultaneous -\u003e pc_only", "pc_android_simultaneous -\u003e pc_only -\u003e android_only" ], "planned_payload_bytes": 120000000, "adopted_payload_bytes": 120000000, "all_attempts_recorded_payload_bytes": 120000000, "excluded_attempts_recorded_payload_bytes": 0 }, "throughput_mbps": { "pc_solo": { "count": 3, "median": 26.533, "minimum": 24.916, "maximum": 27.508 }, "android_solo": { "count": 3, "median": 24.989, "minimum": 19.752, "maximum": 27.391 }, "pc_simultaneous": { "count": 3, "median": 13.872, "minimum": 13.509, "maximum": 15.872 }, "android_simultaneous": { "count": 3, "median": 17.106, "minimum": 16.286, "maximum": 19.235 }, "simultaneous_aggregate": { "count": 3, "median": 27.372, "minimum": 26.663, "maximum": 31.286 } }, "retention_ratio": { "pc": { "count": 3, "median": 0.523, "minimum": 0.509, "maximum": 0.598 }, "android": { "count": 3, "median": 0.684, "minimum": 0.652, "maximum": 0.77 } }, "normalized_jain_fairness": { "count": 3, "median": 0.988, "minimum": 0.96, "maximum": 0.996 }, "simultaneous_trials": [ { "block": 1, "attempt": 1, "start_order": "pc_first", "start_skew_ms": 12.039, "pc_mbps": 15.872, "android_mbps": 17.106, "pc_retention_ratio": 0.5982, "android_retention_ratio": 0.6845, "aggregate_mbps": 31.286, "normalized_jain_fairness": 0.9955 }, { "block": 2, "attempt": 1, "start_order": "android_first", "start_skew_ms": 6.421, "pc_mbps": 13.872, "android_mbps": 16.286, "pc_retention_ratio": 0.5228, "android_retention_ratio": 0.6517, "aggregate_mbps": 27.372, "normalized_jain_fairness": 0.9881 }, { "block": 3, "attempt": 1, "start_order": "pc_first", "start_skew_ms": 13.876, "pc_mbps": 13.509, "android_mbps": 19.235, "pc_retention_ratio": 0.5091, "android_retention_ratio": 0.7697, "aggregate_mbps": 26.663, "normalized_jain_fairness": 0.9601 } ], "adopted_trials": [ { "block": 1, "condition": "pc_only", "attempt": 1, "start_order": "pc_only", "start_skew_ms": null, "clients": [ { "client": "pc", "http_status": "200", "transferred_bytes": 10000000, "seconds": 2.908256, "mbps": 27.508, "success": true } ], "simultaneous_wall_seconds": null, "simultaneous_aggregate_mbps": null }, { "block": 1, "condition": "android_only", "attempt": 1, "start_order": "android_only", "start_skew_ms": null, "clients": [ { "client": "android", "http_status": "200", "transferred_bytes": 10000000, "seconds": 3.201358, "mbps": 24.989, "success": true } ], "simultaneous_wall_seconds": null, "simultaneous_aggregate_mbps": null }, { "block": 1, "condition": "pc_android_simultaneous", "attempt": 1, "start_order": "pc_first", "start_skew_ms": 12.039, "clients": [ { "client": "pc", "http_status": "200", "transferred_bytes": 10000000, "seconds": 5.040441, "mbps": 15.872, "success": true }, { "client": "android", "http_status": "200", "transferred_bytes": 10000000, "seconds": 4.676706, "mbps": 17.106, "success": true } ], "simultaneous_wall_seconds": 5.11417, "simultaneous_aggregate_mbps": 31.286 }, { "block": 2, "condition": "android_only", "attempt": 1, "start_order": "android_only", "start_skew_ms": null, "clients": [ { "client": "android", "http_status": "200", "transferred_bytes": 10000000, "seconds": 2.920685, "mbps": 27.391, "success": true } ], "simultaneous_wall_seconds": null, "simultaneous_aggregate_mbps": null }, { "block": 2, "condition": "pc_android_simultaneous", "attempt": 1, "start_order": "android_first", "start_skew_ms": 6.421, "clients": [ { "client": "android", "http_status": "200", "transferred_bytes": 10000000, "seconds": 4.91215, "mbps": 16.286, "success": true }, { "client": "pc", "http_status": "200", "transferred_bytes": 10000000, "seconds": 5.76722, "mbps": 13.872, "success": true } ], "simultaneous_wall_seconds": 5.845443, "simultaneous_aggregate_mbps": 27.372 }, { "block": 2, "condition": "pc_only", "attempt": 1, "start_order": "pc_only", "start_skew_ms": null, "clients": [ { "client": "pc", "http_status": "200", "transferred_bytes": 10000000, "seconds": 3.210766, "mbps": 24.916, "success": true } ], "simultaneous_wall_seconds": null, "simultaneous_aggregate_mbps": null }, { "block": 3, "condition": "pc_android_simultaneous", "attempt": 1, "start_order": "pc_first", "start_skew_ms": 13.876, "clients": [ { "client": "pc", "http_status": "200", "transferred_bytes": 10000000, "seconds": 5.921866, "mbps": 13.509, "success": true }, { "client": "android", "http_status": "200", "transferred_bytes": 10000000, "seconds": 4.159054, "mbps": 19.235, "success": true } ], "simultaneous_wall_seconds": 6.000824, "simultaneous_aggregate_mbps": 26.663 }, { "block": 3, "condition": "pc_only", "attempt": 1, "start_order": "pc_only", "start_skew_ms": null, "clients": [ { "client": "pc", "http_status": "200", "transferred_bytes": 10000000, "seconds": 3.015077, "mbps": 26.533, "success": true } ], "simultaneous_wall_seconds": null, "simultaneous_aggregate_mbps": null }, { "block": 3, "condition": "android_only", "attempt": 1, "start_order": "android_only", "start_skew_ms": null, "clients": [ { "client": "android", "http_status": "200", "transferred_bytes": 10000000, "seconds": 4.050226, "mbps": 19.752, "success": true } ], "simultaneous_wall_seconds": null, "simultaneous_aggregate_mbps": null } ], "excluded_trials": [ ], "quality_gate": { "expected_repetitions_per_condition": 3, "condition_counts_pass": true, "http_200_and_exact_bytes_pass": true, "simultaneous_start_skew_pass": true, "statistics_available": true, "measurement_aborted": false, "measurement_quality_gate_pass": true }, "nearest_existing_experiment": { "description": "Four simultaneous HTTP streams from one Windows PC", "difference": "This run changes the number of physical Wi-Fi clients from one to two and measures each client allocation, retention, aggregate throughput, and normalized fairness." }, "publication_rule": "This summary covers only the measurement gate. Photo, video, duplication, search-intent, and public-page gates must pass separately." }