{"commodity":"rice","generated_at":"2026-06-10T20:41:58Z","threshold_pct":25,"baseline_window_weeks":"4-8","flagged":[],"markets":[{"port_id":"irbnd","locode":"IRBND","name":"Bandar Abbas (Iran)","forward_inbound":{"vessels":0,"est_tonnage":0},"weeks":[],"current_week":"2026-W24","latest_complete_week":null,"baseline":null,"baseline_weeks":0,"deviation_pct":null,"flag":null,"status":"insufficient_history"},{"port_id":"iqbsr","locode":"IQBSR","name":"Umm Qasr (Iraq)","forward_inbound":{"vessels":0,"est_tonnage":0},"weeks":[],"current_week":"2026-W24","latest_complete_week":null,"baseline":null,"baseline_weeks":0,"deviation_pct":null,"flag":null,"status":"insufficient_history"},{"port_id":"kemba","locode":"KEMBA","name":"Mombasa (Kenya)","forward_inbound":{"vessels":0,"est_tonnage":0},"weeks":[],"current_week":"2026-W24","latest_complete_week":null,"baseline":null,"baseline_weeks":0,"deviation_pct":null,"flag":null,"status":"insufficient_history"},{"port_id":"mgtnr","locode":"MGTOA","name":"Toamasina (Madagascar)","forward_inbound":{"vessels":0,"est_tonnage":0},"weeks":[],"current_week":"2026-W24","latest_complete_week":null,"baseline":null,"baseline_weeks":0,"deviation_pct":null,"flag":null,"status":"insufficient_history"},{"port_id":"nglos","locode":"NGLOS","name":"Lagos (Nigeria)","forward_inbound":{"vessels":1,"est_tonnage":0},"weeks":[],"current_week":"2026-W24","latest_complete_week":null,"baseline":null,"baseline_weeks":0,"deviation_pct":null,"flag":null,"status":"insufficient_history"},{"port_id":"sndkr","locode":"SNDKR","name":"Dakar (Senegal)","forward_inbound":{"vessels":3,"est_tonnage":31974},"weeks":[],"current_week":"2026-W24","latest_complete_week":null,"baseline":null,"baseline_weeks":0,"deviation_pct":null,"flag":null,"status":"insufficient_history"}],"method":"rice-capable arrivals (bulk/GC/container, no tankers) whose previous load port is a known rice export berth; weekly tonnage = sum(DWT x 0.8). Baseline = trailing 4-8 complete-week mean; flag when |deviation| >= 25%. Current partial week excluded from baseline and flagging. AIS carries no manifests — directional proxy, not customs data."}