{"edition":"2026-10-07","provenance":"Synthetic exercise data; generated by JolPulse Python domain functions.","regions":[{"id":"sunamganj","name":"Sunamganj","bn":"সুনামগঞ্জ","basin":"Haor / Surma"},{"id":"sylhet","name":"Sylhet","bn":"সিলেট","basin":"Surma / Kushiyara"},{"id":"kurigram","name":"Kurigram","bn":"কুড়িগ্রাম","basin":"Brahmaputra / Dharla"},{"id":"sirajganj","name":"Sirajganj","bn":"সিরাজগঞ্জ","basin":"Jamuna"},{"id":"feni","name":"Feni","bn":"ফেনী","basin":"Muhuri / Feni"},{"id":"chattogram","name":"Chattogram","bn":"চট্টগ্রাম","basin":"Karnaphuli / Halda"}],"presets":{"baseline":"Regional baseline","wet":"Heavy rain assumption","closed":"Assembly point isolated","capacity":"Capacity exceeded"},"cases":[{"id":"sunamganj-baseline-6","preset":"baseline","scenario":{"region":"sunamganj","rain_mm":148.0,"soil_pct":84.0,"margin_m":0.55,"trend_mh":0.045,"horizon_h":6,"blocked_edges":[],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":148.0,"runoff_proxy_mm":104.78,"runoff_fraction":0.708,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.55,"trend_mh":0.045,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":72,"category":"high","components":[{"id":"rainfall","label":"24-hour rainfall","points":26.64,"max":36},{"id":"saturation","label":"Soil saturation","points":15.12,"max":18},{"id":"headroom","label":"River reference margin","points":20.3,"max":28},{"id":"rise","label":"River rise assumption","points":10.12,"max":18}],"trace":[{"hour":0,"central_m":-0.55,"lower_m":-0.55,"upper_m":-0.55},{"hour":1,"central_m":-0.461,"lower_m":-0.471,"upper_m":-0.451},{"hour":2,"central_m":-0.376,"lower_m":-0.397,"upper_m":-0.356},{"hour":3,"central_m":-0.296,"lower_m":-0.327,"upper_m":-0.265},{"hour":4,"central_m":-0.22,"lower_m":-0.261,"upper_m":-0.178},{"hour":5,"central_m":-0.146,"lower_m":-0.198,"upper_m":-0.095},{"hour":6,"central_m":-0.076,"lower_m":-0.138,"upper_m":-0.014}],"reference_crossing_h":null,"peak_relative_m":-0.076,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"exercise-route","route":{"destination":"Practice hub A","destination_id":"hub-a","capacity":180,"minutes":18,"weighted_cost":21.17,"nodes":["origin","junction","hub-a"],"edges":["north","ridge"]},"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Sunamganj. The illustrative screening index is 72/100 (high). The scenario assumes 148 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — সুনামগঞ্জ। অনুশীলনভিত্তিক ঝুঁকি সূচক 72/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 148 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery"],"provenance":"synthetic"}},{"id":"sunamganj-baseline-12","preset":"baseline","scenario":{"region":"sunamganj","rain_mm":148.0,"soil_pct":84.0,"margin_m":0.55,"trend_mh":0.045,"horizon_h":12,"blocked_edges":[],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":148.0,"runoff_proxy_mm":104.78,"runoff_fraction":0.708,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.55,"trend_mh":0.045,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":72,"category":"high","components":[{"id":"rainfall","label":"24-hour rainfall","points":26.64,"max":36},{"id":"saturation","label":"Soil saturation","points":15.12,"max":18},{"id":"headroom","label":"River reference margin","points":20.3,"max":28},{"id":"rise","label":"River rise assumption","points":10.12,"max":18}],"trace":[{"hour":0,"central_m":-0.55,"lower_m":-0.55,"upper_m":-0.55},{"hour":1,"central_m":-0.461,"lower_m":-0.471,"upper_m":-0.451},{"hour":2,"central_m":-0.376,"lower_m":-0.397,"upper_m":-0.356},{"hour":3,"central_m":-0.296,"lower_m":-0.327,"upper_m":-0.265},{"hour":4,"central_m":-0.22,"lower_m":-0.261,"upper_m":-0.178},{"hour":5,"central_m":-0.146,"lower_m":-0.198,"upper_m":-0.095},{"hour":6,"central_m":-0.076,"lower_m":-0.138,"upper_m":-0.014},{"hour":7,"central_m":-0.008,"lower_m":-0.08,"upper_m":0.064},{"hour":8,"central_m":0.057,"lower_m":-0.025,"upper_m":0.139},{"hour":9,"central_m":0.12,"lower_m":0.027,"upper_m":0.212},{"hour":10,"central_m":0.181,"lower_m":0.078,"upper_m":0.284},{"hour":11,"central_m":0.241,"lower_m":0.128,"upper_m":0.354},{"hour":12,"central_m":0.299,"lower_m":0.175,"upper_m":0.422}],"reference_crossing_h":8,"peak_relative_m":0.299,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"exercise-route","route":{"destination":"Practice hub A","destination_id":"hub-a","capacity":180,"minutes":18,"weighted_cost":21.17,"nodes":["origin","junction","hub-a"],"edges":["north","ridge"]},"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Sunamganj. The illustrative screening index is 72/100 (high). The scenario assumes 148 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — সুনামগঞ্জ। অনুশীলনভিত্তিক ঝুঁকি সূচক 72/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 148 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery"],"provenance":"synthetic"}},{"id":"sunamganj-baseline-24","preset":"baseline","scenario":{"region":"sunamganj","rain_mm":148.0,"soil_pct":84.0,"margin_m":0.55,"trend_mh":0.045,"horizon_h":24,"blocked_edges":[],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":148.0,"runoff_proxy_mm":104.78,"runoff_fraction":0.708,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.55,"trend_mh":0.045,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":72,"category":"high","components":[{"id":"rainfall","label":"24-hour rainfall","points":26.64,"max":36},{"id":"saturation","label":"Soil saturation","points":15.12,"max":18},{"id":"headroom","label":"River reference margin","points":20.3,"max":28},{"id":"rise","label":"River rise assumption","points":10.12,"max":18}],"trace":[{"hour":0,"central_m":-0.55,"lower_m":-0.55,"upper_m":-0.55},{"hour":1,"central_m":-0.461,"lower_m":-0.471,"upper_m":-0.451},{"hour":2,"central_m":-0.376,"lower_m":-0.397,"upper_m":-0.356},{"hour":3,"central_m":-0.296,"lower_m":-0.327,"upper_m":-0.265},{"hour":4,"central_m":-0.22,"lower_m":-0.261,"upper_m":-0.178},{"hour":5,"central_m":-0.146,"lower_m":-0.198,"upper_m":-0.095},{"hour":6,"central_m":-0.076,"lower_m":-0.138,"upper_m":-0.014},{"hour":7,"central_m":-0.008,"lower_m":-0.08,"upper_m":0.064},{"hour":8,"central_m":0.057,"lower_m":-0.025,"upper_m":0.139},{"hour":9,"central_m":0.12,"lower_m":0.027,"upper_m":0.212},{"hour":10,"central_m":0.181,"lower_m":0.078,"upper_m":0.284},{"hour":11,"central_m":0.241,"lower_m":0.128,"upper_m":0.354},{"hour":12,"central_m":0.299,"lower_m":0.175,"upper_m":0.422},{"hour":13,"central_m":0.355,"lower_m":0.222,"upper_m":0.489},{"hour":14,"central_m":0.411,"lower_m":0.267,"upper_m":0.555},{"hour":15,"central_m":0.465,"lower_m":0.311,"upper_m":0.619},{"hour":16,"central_m":0.518,"lower_m":0.354,"upper_m":0.683},{"hour":17,"central_m":0.571,"lower_m":0.396,"upper_m":0.745},{"hour":18,"central_m":0.622,"lower_m":0.437,"upper_m":0.807},{"hour":19,"central_m":0.673,"lower_m":0.478,"upper_m":0.869},{"hour":20,"central_m":0.724,"lower_m":0.518,"upper_m":0.929},{"hour":21,"central_m":0.773,"lower_m":0.558,"upper_m":0.989},{"hour":22,"central_m":0.823,"lower_m":0.597,"upper_m":1.049},{"hour":23,"central_m":0.872,"lower_m":0.635,"upper_m":1.108},{"hour":24,"central_m":0.92,"lower_m":0.673,"upper_m":1.167}],"reference_crossing_h":8,"peak_relative_m":0.92,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"exercise-route","route":{"destination":"Practice hub A","destination_id":"hub-a","capacity":180,"minutes":18,"weighted_cost":21.17,"nodes":["origin","junction","hub-a"],"edges":["north","ridge"]},"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Sunamganj. The illustrative screening index is 72/100 (high). The scenario assumes 148 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — সুনামগঞ্জ। অনুশীলনভিত্তিক ঝুঁকি সূচক 72/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 148 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery"],"provenance":"synthetic"}},{"id":"sunamganj-baseline-48","preset":"baseline","scenario":{"region":"sunamganj","rain_mm":148.0,"soil_pct":84.0,"margin_m":0.55,"trend_mh":0.045,"horizon_h":48,"blocked_edges":[],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":148.0,"runoff_proxy_mm":104.78,"runoff_fraction":0.708,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.55,"trend_mh":0.045,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":72,"category":"high","components":[{"id":"rainfall","label":"24-hour rainfall","points":26.64,"max":36},{"id":"saturation","label":"Soil saturation","points":15.12,"max":18},{"id":"headroom","label":"River reference margin","points":20.3,"max":28},{"id":"rise","label":"River rise assumption","points":10.12,"max":18}],"trace":[{"hour":0,"central_m":-0.55,"lower_m":-0.55,"upper_m":-0.55},{"hour":1,"central_m":-0.461,"lower_m":-0.471,"upper_m":-0.451},{"hour":2,"central_m":-0.376,"lower_m":-0.397,"upper_m":-0.356},{"hour":3,"central_m":-0.296,"lower_m":-0.327,"upper_m":-0.265},{"hour":4,"central_m":-0.22,"lower_m":-0.261,"upper_m":-0.178},{"hour":5,"central_m":-0.146,"lower_m":-0.198,"upper_m":-0.095},{"hour":6,"central_m":-0.076,"lower_m":-0.138,"upper_m":-0.014},{"hour":7,"central_m":-0.008,"lower_m":-0.08,"upper_m":0.064},{"hour":8,"central_m":0.057,"lower_m":-0.025,"upper_m":0.139},{"hour":9,"central_m":0.12,"lower_m":0.027,"upper_m":0.212},{"hour":10,"central_m":0.181,"lower_m":0.078,"upper_m":0.284},{"hour":11,"central_m":0.241,"lower_m":0.128,"upper_m":0.354},{"hour":12,"central_m":0.299,"lower_m":0.175,"upper_m":0.422},{"hour":13,"central_m":0.355,"lower_m":0.222,"upper_m":0.489},{"hour":14,"central_m":0.411,"lower_m":0.267,"upper_m":0.555},{"hour":15,"central_m":0.465,"lower_m":0.311,"upper_m":0.619},{"hour":16,"central_m":0.518,"lower_m":0.354,"upper_m":0.683},{"hour":17,"central_m":0.571,"lower_m":0.396,"upper_m":0.745},{"hour":18,"central_m":0.622,"lower_m":0.437,"upper_m":0.807},{"hour":19,"central_m":0.673,"lower_m":0.478,"upper_m":0.869},{"hour":20,"central_m":0.724,"lower_m":0.518,"upper_m":0.929},{"hour":21,"central_m":0.773,"lower_m":0.558,"upper_m":0.989},{"hour":22,"central_m":0.823,"lower_m":0.597,"upper_m":1.049},{"hour":23,"central_m":0.872,"lower_m":0.635,"upper_m":1.108},{"hour":24,"central_m":0.92,"lower_m":0.673,"upper_m":1.167},{"hour":25,"central_m":0.968,"lower_m":0.711,"upper_m":1.225},{"hour":26,"central_m":1.016,"lower_m":0.749,"upper_m":1.283},{"hour":27,"central_m":1.063,"lower_m":0.786,"upper_m":1.341},{"hour":28,"central_m":1.11,"lower_m":0.823,"upper_m":1.398},{"hour":29,"central_m":1.157,"lower_m":0.859,"upper_m":1.455},{"hour":30,"central_m":1.204,"lower_m":0.896,"upper_m":1.513},{"hour":31,"central_m":1.251,"lower_m":0.932,"upper_m":1.569},{"hour":32,"central_m":1.297,"lower_m":0.968,"upper_m":1.626},{"hour":33,"central_m":1.343,"lower_m":1.004,"upper_m":1.683},{"hour":34,"central_m":1.39,"lower_m":1.04,"upper_m":1.739},{"hour":35,"central_m":1.436,"lower_m":1.076,"upper_m":1.795},{"hour":36,"central_m":1.481,"lower_m":1.111,"upper_m":1.851},{"hour":37,"central_m":1.527,"lower_m":1.147,"upper_m":1.908},{"hour":38,"central_m":1.573,"lower_m":1.182,"upper_m":1.964},{"hour":39,"central_m":1.619,"lower_m":1.218,"upper_m":2.019},{"hour":40,"central_m":1.664,"lower_m":1.253,"upper_m":2.075},{"hour":41,"central_m":1.71,"lower_m":1.288,"upper_m":2.131},{"hour":42,"central_m":1.755,"lower_m":1.323,"upper_m":2.187},{"hour":43,"central_m":1.801,"lower_m":1.359,"upper_m":2.243},{"hour":44,"central_m":1.846,"lower_m":1.394,"upper_m":2.298},{"hour":45,"central_m":1.891,"lower_m":1.429,"upper_m":2.354},{"hour":46,"central_m":1.937,"lower_m":1.464,"upper_m":2.409},{"hour":47,"central_m":1.982,"lower_m":1.499,"upper_m":2.465},{"hour":48,"central_m":2.027,"lower_m":1.534,"upper_m":2.52}],"reference_crossing_h":8,"peak_relative_m":2.027,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"exercise-route","route":{"destination":"Practice hub A","destination_id":"hub-a","capacity":180,"minutes":18,"weighted_cost":21.17,"nodes":["origin","junction","hub-a"],"edges":["north","ridge"]},"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Sunamganj. The illustrative screening index is 72/100 (high). The scenario assumes 148 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — সুনামগঞ্জ। অনুশীলনভিত্তিক ঝুঁকি সূচক 72/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 148 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery"],"provenance":"synthetic"}},{"id":"sunamganj-wet-6","preset":"wet","scenario":{"region":"sunamganj","rain_mm":220.0,"soil_pct":95.0,"margin_m":0.25,"trend_mh":0.06,"horizon_h":6,"blocked_edges":[],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":220.0,"runoff_proxy_mm":172.7,"runoff_fraction":0.785,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.25,"trend_mh":0.06,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":91,"category":"critical","components":[{"id":"rainfall","label":"24-hour rainfall","points":36,"max":36},{"id":"saturation","label":"Soil saturation","points":17.1,"max":18},{"id":"headroom","label":"River reference margin","points":24.5,"max":28},{"id":"rise","label":"River rise assumption","points":13.5,"max":18}],"trace":[{"hour":0,"central_m":-0.25,"lower_m":-0.25,"upper_m":-0.25},{"hour":1,"central_m":-0.117,"lower_m":-0.132,"upper_m":-0.103},{"hour":2,"central_m":0.008,"lower_m":-0.021,"upper_m":0.036},{"hour":3,"central_m":0.126,"lower_m":0.083,"upper_m":0.169},{"hour":4,"central_m":0.238,"lower_m":0.181,"upper_m":0.295},{"hour":5,"central_m":0.344,"lower_m":0.273,"upper_m":0.416},{"hour":6,"central_m":0.446,"lower_m":0.361,"upper_m":0.532}],"reference_crossing_h":2,"peak_relative_m":0.446,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"exercise-route","route":{"destination":"Practice hub A","destination_id":"hub-a","capacity":180,"minutes":18,"weighted_cost":22.0,"nodes":["origin","junction","hub-a"],"edges":["north","ridge"]},"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Sunamganj. The illustrative screening index is 91/100 (critical). The scenario assumes 220 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — সুনামগঞ্জ। অনুশীলনভিত্তিক ঝুঁকি সূচক 91/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 220 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery"],"provenance":"synthetic"}},{"id":"sunamganj-wet-12","preset":"wet","scenario":{"region":"sunamganj","rain_mm":220.0,"soil_pct":95.0,"margin_m":0.25,"trend_mh":0.06,"horizon_h":12,"blocked_edges":[],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":220.0,"runoff_proxy_mm":172.7,"runoff_fraction":0.785,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.25,"trend_mh":0.06,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":91,"category":"critical","components":[{"id":"rainfall","label":"24-hour rainfall","points":36,"max":36},{"id":"saturation","label":"Soil saturation","points":17.1,"max":18},{"id":"headroom","label":"River reference margin","points":24.5,"max":28},{"id":"rise","label":"River rise assumption","points":13.5,"max":18}],"trace":[{"hour":0,"central_m":-0.25,"lower_m":-0.25,"upper_m":-0.25},{"hour":1,"central_m":-0.117,"lower_m":-0.132,"upper_m":-0.103},{"hour":2,"central_m":0.008,"lower_m":-0.021,"upper_m":0.036},{"hour":3,"central_m":0.126,"lower_m":0.083,"upper_m":0.169},{"hour":4,"central_m":0.238,"lower_m":0.181,"upper_m":0.295},{"hour":5,"central_m":0.344,"lower_m":0.273,"upper_m":0.416},{"hour":6,"central_m":0.446,"lower_m":0.361,"upper_m":0.532},{"hour":7,"central_m":0.543,"lower_m":0.444,"upper_m":0.643},{"hour":8,"central_m":0.637,"lower_m":0.523,"upper_m":0.751},{"hour":9,"central_m":0.727,"lower_m":0.599,"upper_m":0.855},{"hour":10,"central_m":0.813,"lower_m":0.671,"upper_m":0.956},{"hour":11,"central_m":0.897,"lower_m":0.741,"upper_m":1.054},{"hour":12,"central_m":0.979,"lower_m":0.808,"upper_m":1.15}],"reference_crossing_h":2,"peak_relative_m":0.979,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"exercise-route","route":{"destination":"Practice hub A","destination_id":"hub-a","capacity":180,"minutes":18,"weighted_cost":22.0,"nodes":["origin","junction","hub-a"],"edges":["north","ridge"]},"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Sunamganj. The illustrative screening index is 91/100 (critical). The scenario assumes 220 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — সুনামগঞ্জ। অনুশীলনভিত্তিক ঝুঁকি সূচক 91/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 220 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery"],"provenance":"synthetic"}},{"id":"sunamganj-wet-24","preset":"wet","scenario":{"region":"sunamganj","rain_mm":220.0,"soil_pct":95.0,"margin_m":0.25,"trend_mh":0.06,"horizon_h":24,"blocked_edges":[],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":220.0,"runoff_proxy_mm":172.7,"runoff_fraction":0.785,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.25,"trend_mh":0.06,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":91,"category":"critical","components":[{"id":"rainfall","label":"24-hour rainfall","points":36,"max":36},{"id":"saturation","label":"Soil saturation","points":17.1,"max":18},{"id":"headroom","label":"River reference margin","points":24.5,"max":28},{"id":"rise","label":"River rise assumption","points":13.5,"max":18}],"trace":[{"hour":0,"central_m":-0.25,"lower_m":-0.25,"upper_m":-0.25},{"hour":1,"central_m":-0.117,"lower_m":-0.132,"upper_m":-0.103},{"hour":2,"central_m":0.008,"lower_m":-0.021,"upper_m":0.036},{"hour":3,"central_m":0.126,"lower_m":0.083,"upper_m":0.169},{"hour":4,"central_m":0.238,"lower_m":0.181,"upper_m":0.295},{"hour":5,"central_m":0.344,"lower_m":0.273,"upper_m":0.416},{"hour":6,"central_m":0.446,"lower_m":0.361,"upper_m":0.532},{"hour":7,"central_m":0.543,"lower_m":0.444,"upper_m":0.643},{"hour":8,"central_m":0.637,"lower_m":0.523,"upper_m":0.751},{"hour":9,"central_m":0.727,"lower_m":0.599,"upper_m":0.855},{"hour":10,"central_m":0.813,"lower_m":0.671,"upper_m":0.956},{"hour":11,"central_m":0.897,"lower_m":0.741,"upper_m":1.054},{"hour":12,"central_m":0.979,"lower_m":0.808,"upper_m":1.15},{"hour":13,"central_m":1.058,"lower_m":0.873,"upper_m":1.243},{"hour":14,"central_m":1.135,"lower_m":0.936,"upper_m":1.334},{"hour":15,"central_m":1.21,"lower_m":0.997,"upper_m":1.424},{"hour":16,"central_m":1.284,"lower_m":1.056,"upper_m":1.512},{"hour":17,"central_m":1.356,"lower_m":1.114,"upper_m":1.598},{"hour":18,"central_m":1.427,"lower_m":1.171,"upper_m":1.684},{"hour":19,"central_m":1.497,"lower_m":1.227,"upper_m":1.768},{"hour":20,"central_m":1.566,"lower_m":1.281,"upper_m":1.851},{"hour":21,"central_m":1.634,"lower_m":1.335,"upper_m":1.933},{"hour":22,"central_m":1.701,"lower_m":1.388,"upper_m":2.014},{"hour":23,"central_m":1.767,"lower_m":1.44,"upper_m":2.095},{"hour":24,"central_m":1.833,"lower_m":1.491,"upper_m":2.175}],"reference_crossing_h":2,"peak_relative_m":1.833,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"exercise-route","route":{"destination":"Practice hub A","destination_id":"hub-a","capacity":180,"minutes":18,"weighted_cost":22.0,"nodes":["origin","junction","hub-a"],"edges":["north","ridge"]},"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Sunamganj. The illustrative screening index is 91/100 (critical). The scenario assumes 220 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — সুনামগঞ্জ। অনুশীলনভিত্তিক ঝুঁকি সূচক 91/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 220 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery"],"provenance":"synthetic"}},{"id":"sunamganj-wet-48","preset":"wet","scenario":{"region":"sunamganj","rain_mm":220.0,"soil_pct":95.0,"margin_m":0.25,"trend_mh":0.06,"horizon_h":48,"blocked_edges":[],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":220.0,"runoff_proxy_mm":172.7,"runoff_fraction":0.785,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.25,"trend_mh":0.06,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":91,"category":"critical","components":[{"id":"rainfall","label":"24-hour rainfall","points":36,"max":36},{"id":"saturation","label":"Soil saturation","points":17.1,"max":18},{"id":"headroom","label":"River reference margin","points":24.5,"max":28},{"id":"rise","label":"River rise assumption","points":13.5,"max":18}],"trace":[{"hour":0,"central_m":-0.25,"lower_m":-0.25,"upper_m":-0.25},{"hour":1,"central_m":-0.117,"lower_m":-0.132,"upper_m":-0.103},{"hour":2,"central_m":0.008,"lower_m":-0.021,"upper_m":0.036},{"hour":3,"central_m":0.126,"lower_m":0.083,"upper_m":0.169},{"hour":4,"central_m":0.238,"lower_m":0.181,"upper_m":0.295},{"hour":5,"central_m":0.344,"lower_m":0.273,"upper_m":0.416},{"hour":6,"central_m":0.446,"lower_m":0.361,"upper_m":0.532},{"hour":7,"central_m":0.543,"lower_m":0.444,"upper_m":0.643},{"hour":8,"central_m":0.637,"lower_m":0.523,"upper_m":0.751},{"hour":9,"central_m":0.727,"lower_m":0.599,"upper_m":0.855},{"hour":10,"central_m":0.813,"lower_m":0.671,"upper_m":0.956},{"hour":11,"central_m":0.897,"lower_m":0.741,"upper_m":1.054},{"hour":12,"central_m":0.979,"lower_m":0.808,"upper_m":1.15},{"hour":13,"central_m":1.058,"lower_m":0.873,"upper_m":1.243},{"hour":14,"central_m":1.135,"lower_m":0.936,"upper_m":1.334},{"hour":15,"central_m":1.21,"lower_m":0.997,"upper_m":1.424},{"hour":16,"central_m":1.284,"lower_m":1.056,"upper_m":1.512},{"hour":17,"central_m":1.356,"lower_m":1.114,"upper_m":1.598},{"hour":18,"central_m":1.427,"lower_m":1.171,"upper_m":1.684},{"hour":19,"central_m":1.497,"lower_m":1.227,"upper_m":1.768},{"hour":20,"central_m":1.566,"lower_m":1.281,"upper_m":1.851},{"hour":21,"central_m":1.634,"lower_m":1.335,"upper_m":1.933},{"hour":22,"central_m":1.701,"lower_m":1.388,"upper_m":2.014},{"hour":23,"central_m":1.767,"lower_m":1.44,"upper_m":2.095},{"hour":24,"central_m":1.833,"lower_m":1.491,"upper_m":2.175},{"hour":25,"central_m":1.898,"lower_m":1.542,"upper_m":2.254},{"hour":26,"central_m":1.962,"lower_m":1.592,"upper_m":2.333},{"hour":27,"central_m":2.026,"lower_m":1.642,"upper_m":2.411},{"hour":28,"central_m":2.09,"lower_m":1.691,"upper_m":2.489},{"hour":29,"central_m":2.153,"lower_m":1.74,"upper_m":2.566},{"hour":30,"central_m":2.216,"lower_m":1.789,"upper_m":2.643},{"hour":31,"central_m":2.279,"lower_m":1.837,"upper_m":2.72},{"hour":32,"central_m":2.341,"lower_m":1.885,"upper_m":2.797},{"hour":33,"central_m":2.403,"lower_m":1.933,"upper_m":2.873},{"hour":34,"central_m":2.465,"lower_m":1.981,"upper_m":2.949},{"hour":35,"central_m":2.527,"lower_m":2.028,"upper_m":3.025},{"hour":36,"central_m":2.588,"lower_m":2.075,"upper_m":3.101},{"hour":37,"central_m":2.649,"lower_m":2.123,"upper_m":3.176},{"hour":38,"central_m":2.711,"lower_m":2.17,"upper_m":3.252},{"hour":39,"central_m":2.772,"lower_m":2.216,"upper_m":3.327},{"hour":40,"central_m":2.833,"lower_m":2.263,"upper_m":3.402},{"hour":41,"central_m":2.894,"lower_m":2.31,"upper_m":3.477},{"hour":42,"central_m":2.954,"lower_m":2.356,"upper_m":3.552},{"hour":43,"central_m":3.015,"lower_m":2.403,"upper_m":3.627},{"hour":44,"central_m":3.076,"lower_m":2.449,"upper_m":3.702},{"hour":45,"central_m":3.136,"lower_m":2.495,"upper_m":3.777},{"hour":46,"central_m":3.197,"lower_m":2.542,"upper_m":3.852},{"hour":47,"central_m":3.257,"lower_m":2.588,"upper_m":3.926},{"hour":48,"central_m":3.317,"lower_m":2.634,"upper_m":4.001}],"reference_crossing_h":2,"peak_relative_m":3.317,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"exercise-route","route":{"destination":"Practice hub A","destination_id":"hub-a","capacity":180,"minutes":18,"weighted_cost":22.0,"nodes":["origin","junction","hub-a"],"edges":["north","ridge"]},"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Sunamganj. The illustrative screening index is 91/100 (critical). The scenario assumes 220 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — সুনামগঞ্জ। অনুশীলনভিত্তিক ঝুঁকি সূচক 91/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 220 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery"],"provenance":"synthetic"}},{"id":"sunamganj-closed-6","preset":"closed","scenario":{"region":"sunamganj","rain_mm":148.0,"soil_pct":84.0,"margin_m":0.55,"trend_mh":0.045,"horizon_h":6,"blocked_edges":["bridge","north"],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":148.0,"runoff_proxy_mm":104.78,"runoff_fraction":0.708,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.55,"trend_mh":0.045,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":72,"category":"high","components":[{"id":"rainfall","label":"24-hour rainfall","points":26.64,"max":36},{"id":"saturation","label":"Soil saturation","points":15.12,"max":18},{"id":"headroom","label":"River reference margin","points":20.3,"max":28},{"id":"rise","label":"River rise assumption","points":10.12,"max":18}],"trace":[{"hour":0,"central_m":-0.55,"lower_m":-0.55,"upper_m":-0.55},{"hour":1,"central_m":-0.461,"lower_m":-0.471,"upper_m":-0.451},{"hour":2,"central_m":-0.376,"lower_m":-0.397,"upper_m":-0.356},{"hour":3,"central_m":-0.296,"lower_m":-0.327,"upper_m":-0.265},{"hour":4,"central_m":-0.22,"lower_m":-0.261,"upper_m":-0.178},{"hour":5,"central_m":-0.146,"lower_m":-0.198,"upper_m":-0.095},{"hour":6,"central_m":-0.076,"lower_m":-0.138,"upper_m":-0.014}],"reference_crossing_h":null,"peak_relative_m":-0.076,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"no-feasible-route","route":null,"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":["bridge","north"],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Sunamganj. The illustrative screening index is 72/100 (high). The scenario assumes 148 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — সুনামগঞ্জ। অনুশীলনভিত্তিক ঝুঁকি সূচক 72/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 148 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery","No feasible route for the exercise inputs"],"provenance":"synthetic"}},{"id":"sunamganj-closed-12","preset":"closed","scenario":{"region":"sunamganj","rain_mm":148.0,"soil_pct":84.0,"margin_m":0.55,"trend_mh":0.045,"horizon_h":12,"blocked_edges":["bridge","north"],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":148.0,"runoff_proxy_mm":104.78,"runoff_fraction":0.708,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.55,"trend_mh":0.045,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":72,"category":"high","components":[{"id":"rainfall","label":"24-hour rainfall","points":26.64,"max":36},{"id":"saturation","label":"Soil saturation","points":15.12,"max":18},{"id":"headroom","label":"River reference margin","points":20.3,"max":28},{"id":"rise","label":"River rise assumption","points":10.12,"max":18}],"trace":[{"hour":0,"central_m":-0.55,"lower_m":-0.55,"upper_m":-0.55},{"hour":1,"central_m":-0.461,"lower_m":-0.471,"upper_m":-0.451},{"hour":2,"central_m":-0.376,"lower_m":-0.397,"upper_m":-0.356},{"hour":3,"central_m":-0.296,"lower_m":-0.327,"upper_m":-0.265},{"hour":4,"central_m":-0.22,"lower_m":-0.261,"upper_m":-0.178},{"hour":5,"central_m":-0.146,"lower_m":-0.198,"upper_m":-0.095},{"hour":6,"central_m":-0.076,"lower_m":-0.138,"upper_m":-0.014},{"hour":7,"central_m":-0.008,"lower_m":-0.08,"upper_m":0.064},{"hour":8,"central_m":0.057,"lower_m":-0.025,"upper_m":0.139},{"hour":9,"central_m":0.12,"lower_m":0.027,"upper_m":0.212},{"hour":10,"central_m":0.181,"lower_m":0.078,"upper_m":0.284},{"hour":11,"central_m":0.241,"lower_m":0.128,"upper_m":0.354},{"hour":12,"central_m":0.299,"lower_m":0.175,"upper_m":0.422}],"reference_crossing_h":8,"peak_relative_m":0.299,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"no-feasible-route","route":null,"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":["bridge","north"],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Sunamganj. The illustrative screening index is 72/100 (high). The scenario assumes 148 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — সুনামগঞ্জ। অনুশীলনভিত্তিক ঝুঁকি সূচক 72/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 148 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery","No feasible route for the exercise inputs"],"provenance":"synthetic"}},{"id":"sunamganj-closed-24","preset":"closed","scenario":{"region":"sunamganj","rain_mm":148.0,"soil_pct":84.0,"margin_m":0.55,"trend_mh":0.045,"horizon_h":24,"blocked_edges":["bridge","north"],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":148.0,"runoff_proxy_mm":104.78,"runoff_fraction":0.708,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.55,"trend_mh":0.045,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":72,"category":"high","components":[{"id":"rainfall","label":"24-hour rainfall","points":26.64,"max":36},{"id":"saturation","label":"Soil saturation","points":15.12,"max":18},{"id":"headroom","label":"River reference margin","points":20.3,"max":28},{"id":"rise","label":"River rise assumption","points":10.12,"max":18}],"trace":[{"hour":0,"central_m":-0.55,"lower_m":-0.55,"upper_m":-0.55},{"hour":1,"central_m":-0.461,"lower_m":-0.471,"upper_m":-0.451},{"hour":2,"central_m":-0.376,"lower_m":-0.397,"upper_m":-0.356},{"hour":3,"central_m":-0.296,"lower_m":-0.327,"upper_m":-0.265},{"hour":4,"central_m":-0.22,"lower_m":-0.261,"upper_m":-0.178},{"hour":5,"central_m":-0.146,"lower_m":-0.198,"upper_m":-0.095},{"hour":6,"central_m":-0.076,"lower_m":-0.138,"upper_m":-0.014},{"hour":7,"central_m":-0.008,"lower_m":-0.08,"upper_m":0.064},{"hour":8,"central_m":0.057,"lower_m":-0.025,"upper_m":0.139},{"hour":9,"central_m":0.12,"lower_m":0.027,"upper_m":0.212},{"hour":10,"central_m":0.181,"lower_m":0.078,"upper_m":0.284},{"hour":11,"central_m":0.241,"lower_m":0.128,"upper_m":0.354},{"hour":12,"central_m":0.299,"lower_m":0.175,"upper_m":0.422},{"hour":13,"central_m":0.355,"lower_m":0.222,"upper_m":0.489},{"hour":14,"central_m":0.411,"lower_m":0.267,"upper_m":0.555},{"hour":15,"central_m":0.465,"lower_m":0.311,"upper_m":0.619},{"hour":16,"central_m":0.518,"lower_m":0.354,"upper_m":0.683},{"hour":17,"central_m":0.571,"lower_m":0.396,"upper_m":0.745},{"hour":18,"central_m":0.622,"lower_m":0.437,"upper_m":0.807},{"hour":19,"central_m":0.673,"lower_m":0.478,"upper_m":0.869},{"hour":20,"central_m":0.724,"lower_m":0.518,"upper_m":0.929},{"hour":21,"central_m":0.773,"lower_m":0.558,"upper_m":0.989},{"hour":22,"central_m":0.823,"lower_m":0.597,"upper_m":1.049},{"hour":23,"central_m":0.872,"lower_m":0.635,"upper_m":1.108},{"hour":24,"central_m":0.92,"lower_m":0.673,"upper_m":1.167}],"reference_crossing_h":8,"peak_relative_m":0.92,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"no-feasible-route","route":null,"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":["bridge","north"],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Sunamganj. The illustrative screening index is 72/100 (high). The scenario assumes 148 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — সুনামগঞ্জ। অনুশীলনভিত্তিক ঝুঁকি সূচক 72/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 148 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery","No feasible route for the exercise inputs"],"provenance":"synthetic"}},{"id":"sunamganj-closed-48","preset":"closed","scenario":{"region":"sunamganj","rain_mm":148.0,"soil_pct":84.0,"margin_m":0.55,"trend_mh":0.045,"horizon_h":48,"blocked_edges":["bridge","north"],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":148.0,"runoff_proxy_mm":104.78,"runoff_fraction":0.708,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.55,"trend_mh":0.045,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":72,"category":"high","components":[{"id":"rainfall","label":"24-hour rainfall","points":26.64,"max":36},{"id":"saturation","label":"Soil saturation","points":15.12,"max":18},{"id":"headroom","label":"River reference margin","points":20.3,"max":28},{"id":"rise","label":"River rise assumption","points":10.12,"max":18}],"trace":[{"hour":0,"central_m":-0.55,"lower_m":-0.55,"upper_m":-0.55},{"hour":1,"central_m":-0.461,"lower_m":-0.471,"upper_m":-0.451},{"hour":2,"central_m":-0.376,"lower_m":-0.397,"upper_m":-0.356},{"hour":3,"central_m":-0.296,"lower_m":-0.327,"upper_m":-0.265},{"hour":4,"central_m":-0.22,"lower_m":-0.261,"upper_m":-0.178},{"hour":5,"central_m":-0.146,"lower_m":-0.198,"upper_m":-0.095},{"hour":6,"central_m":-0.076,"lower_m":-0.138,"upper_m":-0.014},{"hour":7,"central_m":-0.008,"lower_m":-0.08,"upper_m":0.064},{"hour":8,"central_m":0.057,"lower_m":-0.025,"upper_m":0.139},{"hour":9,"central_m":0.12,"lower_m":0.027,"upper_m":0.212},{"hour":10,"central_m":0.181,"lower_m":0.078,"upper_m":0.284},{"hour":11,"central_m":0.241,"lower_m":0.128,"upper_m":0.354},{"hour":12,"central_m":0.299,"lower_m":0.175,"upper_m":0.422},{"hour":13,"central_m":0.355,"lower_m":0.222,"upper_m":0.489},{"hour":14,"central_m":0.411,"lower_m":0.267,"upper_m":0.555},{"hour":15,"central_m":0.465,"lower_m":0.311,"upper_m":0.619},{"hour":16,"central_m":0.518,"lower_m":0.354,"upper_m":0.683},{"hour":17,"central_m":0.571,"lower_m":0.396,"upper_m":0.745},{"hour":18,"central_m":0.622,"lower_m":0.437,"upper_m":0.807},{"hour":19,"central_m":0.673,"lower_m":0.478,"upper_m":0.869},{"hour":20,"central_m":0.724,"lower_m":0.518,"upper_m":0.929},{"hour":21,"central_m":0.773,"lower_m":0.558,"upper_m":0.989},{"hour":22,"central_m":0.823,"lower_m":0.597,"upper_m":1.049},{"hour":23,"central_m":0.872,"lower_m":0.635,"upper_m":1.108},{"hour":24,"central_m":0.92,"lower_m":0.673,"upper_m":1.167},{"hour":25,"central_m":0.968,"lower_m":0.711,"upper_m":1.225},{"hour":26,"central_m":1.016,"lower_m":0.749,"upper_m":1.283},{"hour":27,"central_m":1.063,"lower_m":0.786,"upper_m":1.341},{"hour":28,"central_m":1.11,"lower_m":0.823,"upper_m":1.398},{"hour":29,"central_m":1.157,"lower_m":0.859,"upper_m":1.455},{"hour":30,"central_m":1.204,"lower_m":0.896,"upper_m":1.513},{"hour":31,"central_m":1.251,"lower_m":0.932,"upper_m":1.569},{"hour":32,"central_m":1.297,"lower_m":0.968,"upper_m":1.626},{"hour":33,"central_m":1.343,"lower_m":1.004,"upper_m":1.683},{"hour":34,"central_m":1.39,"lower_m":1.04,"upper_m":1.739},{"hour":35,"central_m":1.436,"lower_m":1.076,"upper_m":1.795},{"hour":36,"central_m":1.481,"lower_m":1.111,"upper_m":1.851},{"hour":37,"central_m":1.527,"lower_m":1.147,"upper_m":1.908},{"hour":38,"central_m":1.573,"lower_m":1.182,"upper_m":1.964},{"hour":39,"central_m":1.619,"lower_m":1.218,"upper_m":2.019},{"hour":40,"central_m":1.664,"lower_m":1.253,"upper_m":2.075},{"hour":41,"central_m":1.71,"lower_m":1.288,"upper_m":2.131},{"hour":42,"central_m":1.755,"lower_m":1.323,"upper_m":2.187},{"hour":43,"central_m":1.801,"lower_m":1.359,"upper_m":2.243},{"hour":44,"central_m":1.846,"lower_m":1.394,"upper_m":2.298},{"hour":45,"central_m":1.891,"lower_m":1.429,"upper_m":2.354},{"hour":46,"central_m":1.937,"lower_m":1.464,"upper_m":2.409},{"hour":47,"central_m":1.982,"lower_m":1.499,"upper_m":2.465},{"hour":48,"central_m":2.027,"lower_m":1.534,"upper_m":2.52}],"reference_crossing_h":8,"peak_relative_m":2.027,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"no-feasible-route","route":null,"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":["bridge","north"],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Sunamganj. The illustrative screening index is 72/100 (high). The scenario assumes 148 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — সুনামগঞ্জ। অনুশীলনভিত্তিক ঝুঁকি সূচক 72/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 148 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery","No feasible route for the exercise inputs"],"provenance":"synthetic"}},{"id":"sunamganj-capacity-6","preset":"capacity","scenario":{"region":"sunamganj","rain_mm":148.0,"soil_pct":84.0,"margin_m":0.55,"trend_mh":0.045,"horizon_h":6,"blocked_edges":[],"people":600,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":148.0,"runoff_proxy_mm":104.78,"runoff_fraction":0.708,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.55,"trend_mh":0.045,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":72,"category":"high","components":[{"id":"rainfall","label":"24-hour rainfall","points":26.64,"max":36},{"id":"saturation","label":"Soil saturation","points":15.12,"max":18},{"id":"headroom","label":"River reference margin","points":20.3,"max":28},{"id":"rise","label":"River rise assumption","points":10.12,"max":18}],"trace":[{"hour":0,"central_m":-0.55,"lower_m":-0.55,"upper_m":-0.55},{"hour":1,"central_m":-0.461,"lower_m":-0.471,"upper_m":-0.451},{"hour":2,"central_m":-0.376,"lower_m":-0.397,"upper_m":-0.356},{"hour":3,"central_m":-0.296,"lower_m":-0.327,"upper_m":-0.265},{"hour":4,"central_m":-0.22,"lower_m":-0.261,"upper_m":-0.178},{"hour":5,"central_m":-0.146,"lower_m":-0.198,"upper_m":-0.095},{"hour":6,"central_m":-0.076,"lower_m":-0.138,"upper_m":-0.014}],"reference_crossing_h":null,"peak_relative_m":-0.076,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"no-feasible-route","route":null,"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":600,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Sunamganj. The illustrative screening index is 72/100 (high). The scenario assumes 148 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — সুনামগঞ্জ। অনুশীলনভিত্তিক ঝুঁকি সূচক 72/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 148 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery","No feasible route for the exercise inputs"],"provenance":"synthetic"}},{"id":"sunamganj-capacity-12","preset":"capacity","scenario":{"region":"sunamganj","rain_mm":148.0,"soil_pct":84.0,"margin_m":0.55,"trend_mh":0.045,"horizon_h":12,"blocked_edges":[],"people":600,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":148.0,"runoff_proxy_mm":104.78,"runoff_fraction":0.708,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.55,"trend_mh":0.045,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":72,"category":"high","components":[{"id":"rainfall","label":"24-hour rainfall","points":26.64,"max":36},{"id":"saturation","label":"Soil saturation","points":15.12,"max":18},{"id":"headroom","label":"River reference margin","points":20.3,"max":28},{"id":"rise","label":"River rise assumption","points":10.12,"max":18}],"trace":[{"hour":0,"central_m":-0.55,"lower_m":-0.55,"upper_m":-0.55},{"hour":1,"central_m":-0.461,"lower_m":-0.471,"upper_m":-0.451},{"hour":2,"central_m":-0.376,"lower_m":-0.397,"upper_m":-0.356},{"hour":3,"central_m":-0.296,"lower_m":-0.327,"upper_m":-0.265},{"hour":4,"central_m":-0.22,"lower_m":-0.261,"upper_m":-0.178},{"hour":5,"central_m":-0.146,"lower_m":-0.198,"upper_m":-0.095},{"hour":6,"central_m":-0.076,"lower_m":-0.138,"upper_m":-0.014},{"hour":7,"central_m":-0.008,"lower_m":-0.08,"upper_m":0.064},{"hour":8,"central_m":0.057,"lower_m":-0.025,"upper_m":0.139},{"hour":9,"central_m":0.12,"lower_m":0.027,"upper_m":0.212},{"hour":10,"central_m":0.181,"lower_m":0.078,"upper_m":0.284},{"hour":11,"central_m":0.241,"lower_m":0.128,"upper_m":0.354},{"hour":12,"central_m":0.299,"lower_m":0.175,"upper_m":0.422}],"reference_crossing_h":8,"peak_relative_m":0.299,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"no-feasible-route","route":null,"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":600,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Sunamganj. The illustrative screening index is 72/100 (high). The scenario assumes 148 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — সুনামগঞ্জ। অনুশীলনভিত্তিক ঝুঁকি সূচক 72/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 148 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery","No feasible route for the exercise inputs"],"provenance":"synthetic"}},{"id":"sunamganj-capacity-24","preset":"capacity","scenario":{"region":"sunamganj","rain_mm":148.0,"soil_pct":84.0,"margin_m":0.55,"trend_mh":0.045,"horizon_h":24,"blocked_edges":[],"people":600,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":148.0,"runoff_proxy_mm":104.78,"runoff_fraction":0.708,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.55,"trend_mh":0.045,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":72,"category":"high","components":[{"id":"rainfall","label":"24-hour rainfall","points":26.64,"max":36},{"id":"saturation","label":"Soil saturation","points":15.12,"max":18},{"id":"headroom","label":"River reference margin","points":20.3,"max":28},{"id":"rise","label":"River rise assumption","points":10.12,"max":18}],"trace":[{"hour":0,"central_m":-0.55,"lower_m":-0.55,"upper_m":-0.55},{"hour":1,"central_m":-0.461,"lower_m":-0.471,"upper_m":-0.451},{"hour":2,"central_m":-0.376,"lower_m":-0.397,"upper_m":-0.356},{"hour":3,"central_m":-0.296,"lower_m":-0.327,"upper_m":-0.265},{"hour":4,"central_m":-0.22,"lower_m":-0.261,"upper_m":-0.178},{"hour":5,"central_m":-0.146,"lower_m":-0.198,"upper_m":-0.095},{"hour":6,"central_m":-0.076,"lower_m":-0.138,"upper_m":-0.014},{"hour":7,"central_m":-0.008,"lower_m":-0.08,"upper_m":0.064},{"hour":8,"central_m":0.057,"lower_m":-0.025,"upper_m":0.139},{"hour":9,"central_m":0.12,"lower_m":0.027,"upper_m":0.212},{"hour":10,"central_m":0.181,"lower_m":0.078,"upper_m":0.284},{"hour":11,"central_m":0.241,"lower_m":0.128,"upper_m":0.354},{"hour":12,"central_m":0.299,"lower_m":0.175,"upper_m":0.422},{"hour":13,"central_m":0.355,"lower_m":0.222,"upper_m":0.489},{"hour":14,"central_m":0.411,"lower_m":0.267,"upper_m":0.555},{"hour":15,"central_m":0.465,"lower_m":0.311,"upper_m":0.619},{"hour":16,"central_m":0.518,"lower_m":0.354,"upper_m":0.683},{"hour":17,"central_m":0.571,"lower_m":0.396,"upper_m":0.745},{"hour":18,"central_m":0.622,"lower_m":0.437,"upper_m":0.807},{"hour":19,"central_m":0.673,"lower_m":0.478,"upper_m":0.869},{"hour":20,"central_m":0.724,"lower_m":0.518,"upper_m":0.929},{"hour":21,"central_m":0.773,"lower_m":0.558,"upper_m":0.989},{"hour":22,"central_m":0.823,"lower_m":0.597,"upper_m":1.049},{"hour":23,"central_m":0.872,"lower_m":0.635,"upper_m":1.108},{"hour":24,"central_m":0.92,"lower_m":0.673,"upper_m":1.167}],"reference_crossing_h":8,"peak_relative_m":0.92,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"no-feasible-route","route":null,"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":600,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Sunamganj. The illustrative screening index is 72/100 (high). The scenario assumes 148 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — সুনামগঞ্জ। অনুশীলনভিত্তিক ঝুঁকি সূচক 72/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 148 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery","No feasible route for the exercise inputs"],"provenance":"synthetic"}},{"id":"sunamganj-capacity-48","preset":"capacity","scenario":{"region":"sunamganj","rain_mm":148.0,"soil_pct":84.0,"margin_m":0.55,"trend_mh":0.045,"horizon_h":48,"blocked_edges":[],"people":600,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":148.0,"runoff_proxy_mm":104.78,"runoff_fraction":0.708,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.55,"trend_mh":0.045,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":72,"category":"high","components":[{"id":"rainfall","label":"24-hour rainfall","points":26.64,"max":36},{"id":"saturation","label":"Soil saturation","points":15.12,"max":18},{"id":"headroom","label":"River reference margin","points":20.3,"max":28},{"id":"rise","label":"River rise assumption","points":10.12,"max":18}],"trace":[{"hour":0,"central_m":-0.55,"lower_m":-0.55,"upper_m":-0.55},{"hour":1,"central_m":-0.461,"lower_m":-0.471,"upper_m":-0.451},{"hour":2,"central_m":-0.376,"lower_m":-0.397,"upper_m":-0.356},{"hour":3,"central_m":-0.296,"lower_m":-0.327,"upper_m":-0.265},{"hour":4,"central_m":-0.22,"lower_m":-0.261,"upper_m":-0.178},{"hour":5,"central_m":-0.146,"lower_m":-0.198,"upper_m":-0.095},{"hour":6,"central_m":-0.076,"lower_m":-0.138,"upper_m":-0.014},{"hour":7,"central_m":-0.008,"lower_m":-0.08,"upper_m":0.064},{"hour":8,"central_m":0.057,"lower_m":-0.025,"upper_m":0.139},{"hour":9,"central_m":0.12,"lower_m":0.027,"upper_m":0.212},{"hour":10,"central_m":0.181,"lower_m":0.078,"upper_m":0.284},{"hour":11,"central_m":0.241,"lower_m":0.128,"upper_m":0.354},{"hour":12,"central_m":0.299,"lower_m":0.175,"upper_m":0.422},{"hour":13,"central_m":0.355,"lower_m":0.222,"upper_m":0.489},{"hour":14,"central_m":0.411,"lower_m":0.267,"upper_m":0.555},{"hour":15,"central_m":0.465,"lower_m":0.311,"upper_m":0.619},{"hour":16,"central_m":0.518,"lower_m":0.354,"upper_m":0.683},{"hour":17,"central_m":0.571,"lower_m":0.396,"upper_m":0.745},{"hour":18,"central_m":0.622,"lower_m":0.437,"upper_m":0.807},{"hour":19,"central_m":0.673,"lower_m":0.478,"upper_m":0.869},{"hour":20,"central_m":0.724,"lower_m":0.518,"upper_m":0.929},{"hour":21,"central_m":0.773,"lower_m":0.558,"upper_m":0.989},{"hour":22,"central_m":0.823,"lower_m":0.597,"upper_m":1.049},{"hour":23,"central_m":0.872,"lower_m":0.635,"upper_m":1.108},{"hour":24,"central_m":0.92,"lower_m":0.673,"upper_m":1.167},{"hour":25,"central_m":0.968,"lower_m":0.711,"upper_m":1.225},{"hour":26,"central_m":1.016,"lower_m":0.749,"upper_m":1.283},{"hour":27,"central_m":1.063,"lower_m":0.786,"upper_m":1.341},{"hour":28,"central_m":1.11,"lower_m":0.823,"upper_m":1.398},{"hour":29,"central_m":1.157,"lower_m":0.859,"upper_m":1.455},{"hour":30,"central_m":1.204,"lower_m":0.896,"upper_m":1.513},{"hour":31,"central_m":1.251,"lower_m":0.932,"upper_m":1.569},{"hour":32,"central_m":1.297,"lower_m":0.968,"upper_m":1.626},{"hour":33,"central_m":1.343,"lower_m":1.004,"upper_m":1.683},{"hour":34,"central_m":1.39,"lower_m":1.04,"upper_m":1.739},{"hour":35,"central_m":1.436,"lower_m":1.076,"upper_m":1.795},{"hour":36,"central_m":1.481,"lower_m":1.111,"upper_m":1.851},{"hour":37,"central_m":1.527,"lower_m":1.147,"upper_m":1.908},{"hour":38,"central_m":1.573,"lower_m":1.182,"upper_m":1.964},{"hour":39,"central_m":1.619,"lower_m":1.218,"upper_m":2.019},{"hour":40,"central_m":1.664,"lower_m":1.253,"upper_m":2.075},{"hour":41,"central_m":1.71,"lower_m":1.288,"upper_m":2.131},{"hour":42,"central_m":1.755,"lower_m":1.323,"upper_m":2.187},{"hour":43,"central_m":1.801,"lower_m":1.359,"upper_m":2.243},{"hour":44,"central_m":1.846,"lower_m":1.394,"upper_m":2.298},{"hour":45,"central_m":1.891,"lower_m":1.429,"upper_m":2.354},{"hour":46,"central_m":1.937,"lower_m":1.464,"upper_m":2.409},{"hour":47,"central_m":1.982,"lower_m":1.499,"upper_m":2.465},{"hour":48,"central_m":2.027,"lower_m":1.534,"upper_m":2.52}],"reference_crossing_h":8,"peak_relative_m":2.027,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"no-feasible-route","route":null,"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":600,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Sunamganj. The illustrative screening index is 72/100 (high). The scenario assumes 148 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — সুনামগঞ্জ। অনুশীলনভিত্তিক ঝুঁকি সূচক 72/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 148 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery","No feasible route for the exercise inputs"],"provenance":"synthetic"}},{"id":"sylhet-baseline-6","preset":"baseline","scenario":{"region":"sylhet","rain_mm":112.0,"soil_pct":78.0,"margin_m":0.85,"trend_mh":0.028,"horizon_h":6,"blocked_edges":[],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":112.0,"runoff_proxy_mm":74.59,"runoff_fraction":0.666,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.85,"trend_mh":0.028,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":57,"category":"high","components":[{"id":"rainfall","label":"24-hour rainfall","points":20.16,"max":36},{"id":"saturation","label":"Soil saturation","points":14.04,"max":18},{"id":"headroom","label":"River reference margin","points":16.1,"max":28},{"id":"rise","label":"River rise assumption","points":6.3,"max":18}],"trace":[{"hour":0,"central_m":-0.85,"lower_m":-0.85,"upper_m":-0.85},{"hour":1,"central_m":-0.791,"lower_m":-0.799,"upper_m":-0.782},{"hour":2,"central_m":-0.735,"lower_m":-0.752,"upper_m":-0.718},{"hour":3,"central_m":-0.681,"lower_m":-0.707,"upper_m":-0.656},{"hour":4,"central_m":-0.631,"lower_m":-0.665,"upper_m":-0.597},{"hour":5,"central_m":-0.583,"lower_m":-0.625,"upper_m":-0.54},{"hour":6,"central_m":-0.537,"lower_m":-0.588,"upper_m":-0.486}],"reference_crossing_h":null,"peak_relative_m":-0.537,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"exercise-route","route":{"destination":"Practice hub A","destination_id":"hub-a","capacity":180,"minutes":18,"weighted_cost":20.51,"nodes":["origin","junction","hub-a"],"edges":["north","ridge"]},"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Sylhet. The illustrative screening index is 57/100 (high). The scenario assumes 112 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — সিলেট। অনুশীলনভিত্তিক ঝুঁকি সূচক 57/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 112 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery"],"provenance":"synthetic"}},{"id":"sylhet-baseline-12","preset":"baseline","scenario":{"region":"sylhet","rain_mm":112.0,"soil_pct":78.0,"margin_m":0.85,"trend_mh":0.028,"horizon_h":12,"blocked_edges":[],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":112.0,"runoff_proxy_mm":74.59,"runoff_fraction":0.666,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.85,"trend_mh":0.028,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":57,"category":"high","components":[{"id":"rainfall","label":"24-hour rainfall","points":20.16,"max":36},{"id":"saturation","label":"Soil saturation","points":14.04,"max":18},{"id":"headroom","label":"River reference margin","points":16.1,"max":28},{"id":"rise","label":"River rise assumption","points":6.3,"max":18}],"trace":[{"hour":0,"central_m":-0.85,"lower_m":-0.85,"upper_m":-0.85},{"hour":1,"central_m":-0.791,"lower_m":-0.799,"upper_m":-0.782},{"hour":2,"central_m":-0.735,"lower_m":-0.752,"upper_m":-0.718},{"hour":3,"central_m":-0.681,"lower_m":-0.707,"upper_m":-0.656},{"hour":4,"central_m":-0.631,"lower_m":-0.665,"upper_m":-0.597},{"hour":5,"central_m":-0.583,"lower_m":-0.625,"upper_m":-0.54},{"hour":6,"central_m":-0.537,"lower_m":-0.588,"upper_m":-0.486},{"hour":7,"central_m":-0.493,"lower_m":-0.552,"upper_m":-0.433},{"hour":8,"central_m":-0.45,"lower_m":-0.518,"upper_m":-0.382},{"hour":9,"central_m":-0.409,"lower_m":-0.486,"upper_m":-0.333},{"hour":10,"central_m":-0.37,"lower_m":-0.455,"upper_m":-0.285},{"hour":11,"central_m":-0.332,"lower_m":-0.425,"upper_m":-0.238},{"hour":12,"central_m":-0.294,"lower_m":-0.396,"upper_m":-0.192}],"reference_crossing_h":null,"peak_relative_m":-0.294,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"exercise-route","route":{"destination":"Practice hub A","destination_id":"hub-a","capacity":180,"minutes":18,"weighted_cost":20.51,"nodes":["origin","junction","hub-a"],"edges":["north","ridge"]},"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Sylhet. The illustrative screening index is 57/100 (high). The scenario assumes 112 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — সিলেট। অনুশীলনভিত্তিক ঝুঁকি সূচক 57/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 112 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery"],"provenance":"synthetic"}},{"id":"sylhet-baseline-24","preset":"baseline","scenario":{"region":"sylhet","rain_mm":112.0,"soil_pct":78.0,"margin_m":0.85,"trend_mh":0.028,"horizon_h":24,"blocked_edges":[],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":112.0,"runoff_proxy_mm":74.59,"runoff_fraction":0.666,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.85,"trend_mh":0.028,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":57,"category":"high","components":[{"id":"rainfall","label":"24-hour rainfall","points":20.16,"max":36},{"id":"saturation","label":"Soil saturation","points":14.04,"max":18},{"id":"headroom","label":"River reference margin","points":16.1,"max":28},{"id":"rise","label":"River rise assumption","points":6.3,"max":18}],"trace":[{"hour":0,"central_m":-0.85,"lower_m":-0.85,"upper_m":-0.85},{"hour":1,"central_m":-0.791,"lower_m":-0.799,"upper_m":-0.782},{"hour":2,"central_m":-0.735,"lower_m":-0.752,"upper_m":-0.718},{"hour":3,"central_m":-0.681,"lower_m":-0.707,"upper_m":-0.656},{"hour":4,"central_m":-0.631,"lower_m":-0.665,"upper_m":-0.597},{"hour":5,"central_m":-0.583,"lower_m":-0.625,"upper_m":-0.54},{"hour":6,"central_m":-0.537,"lower_m":-0.588,"upper_m":-0.486},{"hour":7,"central_m":-0.493,"lower_m":-0.552,"upper_m":-0.433},{"hour":8,"central_m":-0.45,"lower_m":-0.518,"upper_m":-0.382},{"hour":9,"central_m":-0.409,"lower_m":-0.486,"upper_m":-0.333},{"hour":10,"central_m":-0.37,"lower_m":-0.455,"upper_m":-0.285},{"hour":11,"central_m":-0.332,"lower_m":-0.425,"upper_m":-0.238},{"hour":12,"central_m":-0.294,"lower_m":-0.396,"upper_m":-0.192},{"hour":13,"central_m":-0.258,"lower_m":-0.369,"upper_m":-0.147},{"hour":14,"central_m":-0.223,"lower_m":-0.342,"upper_m":-0.103},{"hour":15,"central_m":-0.188,"lower_m":-0.316,"upper_m":-0.06},{"hour":16,"central_m":-0.154,"lower_m":-0.29,"upper_m":-0.018},{"hour":17,"central_m":-0.121,"lower_m":-0.266,"upper_m":0.024},{"hour":18,"central_m":-0.088,"lower_m":-0.241,"upper_m":0.065},{"hour":19,"central_m":-0.056,"lower_m":-0.218,"upper_m":0.106},{"hour":20,"central_m":-0.024,"lower_m":-0.194,"upper_m":0.146},{"hour":21,"central_m":0.007,"lower_m":-0.171,"upper_m":0.186},{"hour":22,"central_m":0.038,"lower_m":-0.149,"upper_m":0.226},{"hour":23,"central_m":0.069,"lower_m":-0.127,"upper_m":0.265},{"hour":24,"central_m":0.1,"lower_m":-0.105,"upper_m":0.304}],"reference_crossing_h":21,"peak_relative_m":0.1,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"exercise-route","route":{"destination":"Practice hub A","destination_id":"hub-a","capacity":180,"minutes":18,"weighted_cost":20.51,"nodes":["origin","junction","hub-a"],"edges":["north","ridge"]},"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Sylhet. The illustrative screening index is 57/100 (high). The scenario assumes 112 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — সিলেট। অনুশীলনভিত্তিক ঝুঁকি সূচক 57/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 112 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery"],"provenance":"synthetic"}},{"id":"sylhet-baseline-48","preset":"baseline","scenario":{"region":"sylhet","rain_mm":112.0,"soil_pct":78.0,"margin_m":0.85,"trend_mh":0.028,"horizon_h":48,"blocked_edges":[],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":112.0,"runoff_proxy_mm":74.59,"runoff_fraction":0.666,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.85,"trend_mh":0.028,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":57,"category":"high","components":[{"id":"rainfall","label":"24-hour rainfall","points":20.16,"max":36},{"id":"saturation","label":"Soil saturation","points":14.04,"max":18},{"id":"headroom","label":"River reference margin","points":16.1,"max":28},{"id":"rise","label":"River rise assumption","points":6.3,"max":18}],"trace":[{"hour":0,"central_m":-0.85,"lower_m":-0.85,"upper_m":-0.85},{"hour":1,"central_m":-0.791,"lower_m":-0.799,"upper_m":-0.782},{"hour":2,"central_m":-0.735,"lower_m":-0.752,"upper_m":-0.718},{"hour":3,"central_m":-0.681,"lower_m":-0.707,"upper_m":-0.656},{"hour":4,"central_m":-0.631,"lower_m":-0.665,"upper_m":-0.597},{"hour":5,"central_m":-0.583,"lower_m":-0.625,"upper_m":-0.54},{"hour":6,"central_m":-0.537,"lower_m":-0.588,"upper_m":-0.486},{"hour":7,"central_m":-0.493,"lower_m":-0.552,"upper_m":-0.433},{"hour":8,"central_m":-0.45,"lower_m":-0.518,"upper_m":-0.382},{"hour":9,"central_m":-0.409,"lower_m":-0.486,"upper_m":-0.333},{"hour":10,"central_m":-0.37,"lower_m":-0.455,"upper_m":-0.285},{"hour":11,"central_m":-0.332,"lower_m":-0.425,"upper_m":-0.238},{"hour":12,"central_m":-0.294,"lower_m":-0.396,"upper_m":-0.192},{"hour":13,"central_m":-0.258,"lower_m":-0.369,"upper_m":-0.147},{"hour":14,"central_m":-0.223,"lower_m":-0.342,"upper_m":-0.103},{"hour":15,"central_m":-0.188,"lower_m":-0.316,"upper_m":-0.06},{"hour":16,"central_m":-0.154,"lower_m":-0.29,"upper_m":-0.018},{"hour":17,"central_m":-0.121,"lower_m":-0.266,"upper_m":0.024},{"hour":18,"central_m":-0.088,"lower_m":-0.241,"upper_m":0.065},{"hour":19,"central_m":-0.056,"lower_m":-0.218,"upper_m":0.106},{"hour":20,"central_m":-0.024,"lower_m":-0.194,"upper_m":0.146},{"hour":21,"central_m":0.007,"lower_m":-0.171,"upper_m":0.186},{"hour":22,"central_m":0.038,"lower_m":-0.149,"upper_m":0.226},{"hour":23,"central_m":0.069,"lower_m":-0.127,"upper_m":0.265},{"hour":24,"central_m":0.1,"lower_m":-0.105,"upper_m":0.304},{"hour":25,"central_m":0.13,"lower_m":-0.083,"upper_m":0.343},{"hour":26,"central_m":0.16,"lower_m":-0.062,"upper_m":0.381},{"hour":27,"central_m":0.19,"lower_m":-0.04,"upper_m":0.419},{"hour":28,"central_m":0.219,"lower_m":-0.019,"upper_m":0.458},{"hour":29,"central_m":0.248,"lower_m":0.001,"upper_m":0.495},{"hour":30,"central_m":0.278,"lower_m":0.022,"upper_m":0.533},{"hour":31,"central_m":0.307,"lower_m":0.043,"upper_m":0.571},{"hour":32,"central_m":0.336,"lower_m":0.063,"upper_m":0.608},{"hour":33,"central_m":0.365,"lower_m":0.084,"upper_m":0.646},{"hour":34,"central_m":0.394,"lower_m":0.104,"upper_m":0.683},{"hour":35,"central_m":0.422,"lower_m":0.124,"upper_m":0.72},{"hour":36,"central_m":0.451,"lower_m":0.144,"upper_m":0.758},{"hour":37,"central_m":0.479,"lower_m":0.164,"upper_m":0.795},{"hour":38,"central_m":0.508,"lower_m":0.184,"upper_m":0.832},{"hour":39,"central_m":0.536,"lower_m":0.204,"upper_m":0.869},{"hour":40,"central_m":0.565,"lower_m":0.224,"upper_m":0.906},{"hour":41,"central_m":0.593,"lower_m":0.244,"upper_m":0.942},{"hour":42,"central_m":0.622,"lower_m":0.264,"upper_m":0.979},{"hour":43,"central_m":0.65,"lower_m":0.284,"upper_m":1.016},{"hour":44,"central_m":0.678,"lower_m":0.303,"upper_m":1.053},{"hour":45,"central_m":0.706,"lower_m":0.323,"upper_m":1.09},{"hour":46,"central_m":0.735,"lower_m":0.343,"upper_m":1.126},{"hour":47,"central_m":0.763,"lower_m":0.362,"upper_m":1.163},{"hour":48,"central_m":0.791,"lower_m":0.382,"upper_m":1.2}],"reference_crossing_h":21,"peak_relative_m":0.791,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"exercise-route","route":{"destination":"Practice hub A","destination_id":"hub-a","capacity":180,"minutes":18,"weighted_cost":20.51,"nodes":["origin","junction","hub-a"],"edges":["north","ridge"]},"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Sylhet. The illustrative screening index is 57/100 (high). The scenario assumes 112 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — সিলেট। অনুশীলনভিত্তিক ঝুঁকি সূচক 57/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 112 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery"],"provenance":"synthetic"}},{"id":"sylhet-wet-6","preset":"wet","scenario":{"region":"sylhet","rain_mm":220.0,"soil_pct":95.0,"margin_m":0.25,"trend_mh":0.06,"horizon_h":6,"blocked_edges":[],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":220.0,"runoff_proxy_mm":172.7,"runoff_fraction":0.785,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.25,"trend_mh":0.06,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":91,"category":"critical","components":[{"id":"rainfall","label":"24-hour rainfall","points":36,"max":36},{"id":"saturation","label":"Soil saturation","points":17.1,"max":18},{"id":"headroom","label":"River reference margin","points":24.5,"max":28},{"id":"rise","label":"River rise assumption","points":13.5,"max":18}],"trace":[{"hour":0,"central_m":-0.25,"lower_m":-0.25,"upper_m":-0.25},{"hour":1,"central_m":-0.117,"lower_m":-0.132,"upper_m":-0.103},{"hour":2,"central_m":0.008,"lower_m":-0.021,"upper_m":0.036},{"hour":3,"central_m":0.126,"lower_m":0.083,"upper_m":0.169},{"hour":4,"central_m":0.238,"lower_m":0.181,"upper_m":0.295},{"hour":5,"central_m":0.344,"lower_m":0.273,"upper_m":0.416},{"hour":6,"central_m":0.446,"lower_m":0.361,"upper_m":0.532}],"reference_crossing_h":2,"peak_relative_m":0.446,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"exercise-route","route":{"destination":"Practice hub A","destination_id":"hub-a","capacity":180,"minutes":18,"weighted_cost":22.0,"nodes":["origin","junction","hub-a"],"edges":["north","ridge"]},"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Sylhet. The illustrative screening index is 91/100 (critical). The scenario assumes 220 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — সিলেট। অনুশীলনভিত্তিক ঝুঁকি সূচক 91/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 220 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery"],"provenance":"synthetic"}},{"id":"sylhet-wet-12","preset":"wet","scenario":{"region":"sylhet","rain_mm":220.0,"soil_pct":95.0,"margin_m":0.25,"trend_mh":0.06,"horizon_h":12,"blocked_edges":[],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":220.0,"runoff_proxy_mm":172.7,"runoff_fraction":0.785,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.25,"trend_mh":0.06,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":91,"category":"critical","components":[{"id":"rainfall","label":"24-hour rainfall","points":36,"max":36},{"id":"saturation","label":"Soil saturation","points":17.1,"max":18},{"id":"headroom","label":"River reference margin","points":24.5,"max":28},{"id":"rise","label":"River rise assumption","points":13.5,"max":18}],"trace":[{"hour":0,"central_m":-0.25,"lower_m":-0.25,"upper_m":-0.25},{"hour":1,"central_m":-0.117,"lower_m":-0.132,"upper_m":-0.103},{"hour":2,"central_m":0.008,"lower_m":-0.021,"upper_m":0.036},{"hour":3,"central_m":0.126,"lower_m":0.083,"upper_m":0.169},{"hour":4,"central_m":0.238,"lower_m":0.181,"upper_m":0.295},{"hour":5,"central_m":0.344,"lower_m":0.273,"upper_m":0.416},{"hour":6,"central_m":0.446,"lower_m":0.361,"upper_m":0.532},{"hour":7,"central_m":0.543,"lower_m":0.444,"upper_m":0.643},{"hour":8,"central_m":0.637,"lower_m":0.523,"upper_m":0.751},{"hour":9,"central_m":0.727,"lower_m":0.599,"upper_m":0.855},{"hour":10,"central_m":0.813,"lower_m":0.671,"upper_m":0.956},{"hour":11,"central_m":0.897,"lower_m":0.741,"upper_m":1.054},{"hour":12,"central_m":0.979,"lower_m":0.808,"upper_m":1.15}],"reference_crossing_h":2,"peak_relative_m":0.979,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"exercise-route","route":{"destination":"Practice hub A","destination_id":"hub-a","capacity":180,"minutes":18,"weighted_cost":22.0,"nodes":["origin","junction","hub-a"],"edges":["north","ridge"]},"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Sylhet. The illustrative screening index is 91/100 (critical). The scenario assumes 220 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — সিলেট। অনুশীলনভিত্তিক ঝুঁকি সূচক 91/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 220 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery"],"provenance":"synthetic"}},{"id":"sylhet-wet-24","preset":"wet","scenario":{"region":"sylhet","rain_mm":220.0,"soil_pct":95.0,"margin_m":0.25,"trend_mh":0.06,"horizon_h":24,"blocked_edges":[],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":220.0,"runoff_proxy_mm":172.7,"runoff_fraction":0.785,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.25,"trend_mh":0.06,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":91,"category":"critical","components":[{"id":"rainfall","label":"24-hour rainfall","points":36,"max":36},{"id":"saturation","label":"Soil saturation","points":17.1,"max":18},{"id":"headroom","label":"River reference margin","points":24.5,"max":28},{"id":"rise","label":"River rise assumption","points":13.5,"max":18}],"trace":[{"hour":0,"central_m":-0.25,"lower_m":-0.25,"upper_m":-0.25},{"hour":1,"central_m":-0.117,"lower_m":-0.132,"upper_m":-0.103},{"hour":2,"central_m":0.008,"lower_m":-0.021,"upper_m":0.036},{"hour":3,"central_m":0.126,"lower_m":0.083,"upper_m":0.169},{"hour":4,"central_m":0.238,"lower_m":0.181,"upper_m":0.295},{"hour":5,"central_m":0.344,"lower_m":0.273,"upper_m":0.416},{"hour":6,"central_m":0.446,"lower_m":0.361,"upper_m":0.532},{"hour":7,"central_m":0.543,"lower_m":0.444,"upper_m":0.643},{"hour":8,"central_m":0.637,"lower_m":0.523,"upper_m":0.751},{"hour":9,"central_m":0.727,"lower_m":0.599,"upper_m":0.855},{"hour":10,"central_m":0.813,"lower_m":0.671,"upper_m":0.956},{"hour":11,"central_m":0.897,"lower_m":0.741,"upper_m":1.054},{"hour":12,"central_m":0.979,"lower_m":0.808,"upper_m":1.15},{"hour":13,"central_m":1.058,"lower_m":0.873,"upper_m":1.243},{"hour":14,"central_m":1.135,"lower_m":0.936,"upper_m":1.334},{"hour":15,"central_m":1.21,"lower_m":0.997,"upper_m":1.424},{"hour":16,"central_m":1.284,"lower_m":1.056,"upper_m":1.512},{"hour":17,"central_m":1.356,"lower_m":1.114,"upper_m":1.598},{"hour":18,"central_m":1.427,"lower_m":1.171,"upper_m":1.684},{"hour":19,"central_m":1.497,"lower_m":1.227,"upper_m":1.768},{"hour":20,"central_m":1.566,"lower_m":1.281,"upper_m":1.851},{"hour":21,"central_m":1.634,"lower_m":1.335,"upper_m":1.933},{"hour":22,"central_m":1.701,"lower_m":1.388,"upper_m":2.014},{"hour":23,"central_m":1.767,"lower_m":1.44,"upper_m":2.095},{"hour":24,"central_m":1.833,"lower_m":1.491,"upper_m":2.175}],"reference_crossing_h":2,"peak_relative_m":1.833,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"exercise-route","route":{"destination":"Practice hub A","destination_id":"hub-a","capacity":180,"minutes":18,"weighted_cost":22.0,"nodes":["origin","junction","hub-a"],"edges":["north","ridge"]},"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Sylhet. The illustrative screening index is 91/100 (critical). The scenario assumes 220 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — সিলেট। অনুশীলনভিত্তিক ঝুঁকি সূচক 91/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 220 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery"],"provenance":"synthetic"}},{"id":"sylhet-wet-48","preset":"wet","scenario":{"region":"sylhet","rain_mm":220.0,"soil_pct":95.0,"margin_m":0.25,"trend_mh":0.06,"horizon_h":48,"blocked_edges":[],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":220.0,"runoff_proxy_mm":172.7,"runoff_fraction":0.785,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.25,"trend_mh":0.06,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":91,"category":"critical","components":[{"id":"rainfall","label":"24-hour rainfall","points":36,"max":36},{"id":"saturation","label":"Soil saturation","points":17.1,"max":18},{"id":"headroom","label":"River reference margin","points":24.5,"max":28},{"id":"rise","label":"River rise assumption","points":13.5,"max":18}],"trace":[{"hour":0,"central_m":-0.25,"lower_m":-0.25,"upper_m":-0.25},{"hour":1,"central_m":-0.117,"lower_m":-0.132,"upper_m":-0.103},{"hour":2,"central_m":0.008,"lower_m":-0.021,"upper_m":0.036},{"hour":3,"central_m":0.126,"lower_m":0.083,"upper_m":0.169},{"hour":4,"central_m":0.238,"lower_m":0.181,"upper_m":0.295},{"hour":5,"central_m":0.344,"lower_m":0.273,"upper_m":0.416},{"hour":6,"central_m":0.446,"lower_m":0.361,"upper_m":0.532},{"hour":7,"central_m":0.543,"lower_m":0.444,"upper_m":0.643},{"hour":8,"central_m":0.637,"lower_m":0.523,"upper_m":0.751},{"hour":9,"central_m":0.727,"lower_m":0.599,"upper_m":0.855},{"hour":10,"central_m":0.813,"lower_m":0.671,"upper_m":0.956},{"hour":11,"central_m":0.897,"lower_m":0.741,"upper_m":1.054},{"hour":12,"central_m":0.979,"lower_m":0.808,"upper_m":1.15},{"hour":13,"central_m":1.058,"lower_m":0.873,"upper_m":1.243},{"hour":14,"central_m":1.135,"lower_m":0.936,"upper_m":1.334},{"hour":15,"central_m":1.21,"lower_m":0.997,"upper_m":1.424},{"hour":16,"central_m":1.284,"lower_m":1.056,"upper_m":1.512},{"hour":17,"central_m":1.356,"lower_m":1.114,"upper_m":1.598},{"hour":18,"central_m":1.427,"lower_m":1.171,"upper_m":1.684},{"hour":19,"central_m":1.497,"lower_m":1.227,"upper_m":1.768},{"hour":20,"central_m":1.566,"lower_m":1.281,"upper_m":1.851},{"hour":21,"central_m":1.634,"lower_m":1.335,"upper_m":1.933},{"hour":22,"central_m":1.701,"lower_m":1.388,"upper_m":2.014},{"hour":23,"central_m":1.767,"lower_m":1.44,"upper_m":2.095},{"hour":24,"central_m":1.833,"lower_m":1.491,"upper_m":2.175},{"hour":25,"central_m":1.898,"lower_m":1.542,"upper_m":2.254},{"hour":26,"central_m":1.962,"lower_m":1.592,"upper_m":2.333},{"hour":27,"central_m":2.026,"lower_m":1.642,"upper_m":2.411},{"hour":28,"central_m":2.09,"lower_m":1.691,"upper_m":2.489},{"hour":29,"central_m":2.153,"lower_m":1.74,"upper_m":2.566},{"hour":30,"central_m":2.216,"lower_m":1.789,"upper_m":2.643},{"hour":31,"central_m":2.279,"lower_m":1.837,"upper_m":2.72},{"hour":32,"central_m":2.341,"lower_m":1.885,"upper_m":2.797},{"hour":33,"central_m":2.403,"lower_m":1.933,"upper_m":2.873},{"hour":34,"central_m":2.465,"lower_m":1.981,"upper_m":2.949},{"hour":35,"central_m":2.527,"lower_m":2.028,"upper_m":3.025},{"hour":36,"central_m":2.588,"lower_m":2.075,"upper_m":3.101},{"hour":37,"central_m":2.649,"lower_m":2.123,"upper_m":3.176},{"hour":38,"central_m":2.711,"lower_m":2.17,"upper_m":3.252},{"hour":39,"central_m":2.772,"lower_m":2.216,"upper_m":3.327},{"hour":40,"central_m":2.833,"lower_m":2.263,"upper_m":3.402},{"hour":41,"central_m":2.894,"lower_m":2.31,"upper_m":3.477},{"hour":42,"central_m":2.954,"lower_m":2.356,"upper_m":3.552},{"hour":43,"central_m":3.015,"lower_m":2.403,"upper_m":3.627},{"hour":44,"central_m":3.076,"lower_m":2.449,"upper_m":3.702},{"hour":45,"central_m":3.136,"lower_m":2.495,"upper_m":3.777},{"hour":46,"central_m":3.197,"lower_m":2.542,"upper_m":3.852},{"hour":47,"central_m":3.257,"lower_m":2.588,"upper_m":3.926},{"hour":48,"central_m":3.317,"lower_m":2.634,"upper_m":4.001}],"reference_crossing_h":2,"peak_relative_m":3.317,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"exercise-route","route":{"destination":"Practice hub A","destination_id":"hub-a","capacity":180,"minutes":18,"weighted_cost":22.0,"nodes":["origin","junction","hub-a"],"edges":["north","ridge"]},"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Sylhet. The illustrative screening index is 91/100 (critical). The scenario assumes 220 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — সিলেট। অনুশীলনভিত্তিক ঝুঁকি সূচক 91/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 220 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery"],"provenance":"synthetic"}},{"id":"sylhet-closed-6","preset":"closed","scenario":{"region":"sylhet","rain_mm":112.0,"soil_pct":78.0,"margin_m":0.85,"trend_mh":0.028,"horizon_h":6,"blocked_edges":["bridge","north"],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":112.0,"runoff_proxy_mm":74.59,"runoff_fraction":0.666,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.85,"trend_mh":0.028,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":57,"category":"high","components":[{"id":"rainfall","label":"24-hour rainfall","points":20.16,"max":36},{"id":"saturation","label":"Soil saturation","points":14.04,"max":18},{"id":"headroom","label":"River reference margin","points":16.1,"max":28},{"id":"rise","label":"River rise assumption","points":6.3,"max":18}],"trace":[{"hour":0,"central_m":-0.85,"lower_m":-0.85,"upper_m":-0.85},{"hour":1,"central_m":-0.791,"lower_m":-0.799,"upper_m":-0.782},{"hour":2,"central_m":-0.735,"lower_m":-0.752,"upper_m":-0.718},{"hour":3,"central_m":-0.681,"lower_m":-0.707,"upper_m":-0.656},{"hour":4,"central_m":-0.631,"lower_m":-0.665,"upper_m":-0.597},{"hour":5,"central_m":-0.583,"lower_m":-0.625,"upper_m":-0.54},{"hour":6,"central_m":-0.537,"lower_m":-0.588,"upper_m":-0.486}],"reference_crossing_h":null,"peak_relative_m":-0.537,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"no-feasible-route","route":null,"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":["bridge","north"],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Sylhet. The illustrative screening index is 57/100 (high). The scenario assumes 112 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — সিলেট। অনুশীলনভিত্তিক ঝুঁকি সূচক 57/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 112 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery","No feasible route for the exercise inputs"],"provenance":"synthetic"}},{"id":"sylhet-closed-12","preset":"closed","scenario":{"region":"sylhet","rain_mm":112.0,"soil_pct":78.0,"margin_m":0.85,"trend_mh":0.028,"horizon_h":12,"blocked_edges":["bridge","north"],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":112.0,"runoff_proxy_mm":74.59,"runoff_fraction":0.666,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.85,"trend_mh":0.028,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":57,"category":"high","components":[{"id":"rainfall","label":"24-hour rainfall","points":20.16,"max":36},{"id":"saturation","label":"Soil saturation","points":14.04,"max":18},{"id":"headroom","label":"River reference margin","points":16.1,"max":28},{"id":"rise","label":"River rise assumption","points":6.3,"max":18}],"trace":[{"hour":0,"central_m":-0.85,"lower_m":-0.85,"upper_m":-0.85},{"hour":1,"central_m":-0.791,"lower_m":-0.799,"upper_m":-0.782},{"hour":2,"central_m":-0.735,"lower_m":-0.752,"upper_m":-0.718},{"hour":3,"central_m":-0.681,"lower_m":-0.707,"upper_m":-0.656},{"hour":4,"central_m":-0.631,"lower_m":-0.665,"upper_m":-0.597},{"hour":5,"central_m":-0.583,"lower_m":-0.625,"upper_m":-0.54},{"hour":6,"central_m":-0.537,"lower_m":-0.588,"upper_m":-0.486},{"hour":7,"central_m":-0.493,"lower_m":-0.552,"upper_m":-0.433},{"hour":8,"central_m":-0.45,"lower_m":-0.518,"upper_m":-0.382},{"hour":9,"central_m":-0.409,"lower_m":-0.486,"upper_m":-0.333},{"hour":10,"central_m":-0.37,"lower_m":-0.455,"upper_m":-0.285},{"hour":11,"central_m":-0.332,"lower_m":-0.425,"upper_m":-0.238},{"hour":12,"central_m":-0.294,"lower_m":-0.396,"upper_m":-0.192}],"reference_crossing_h":null,"peak_relative_m":-0.294,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"no-feasible-route","route":null,"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":["bridge","north"],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Sylhet. The illustrative screening index is 57/100 (high). The scenario assumes 112 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — সিলেট। অনুশীলনভিত্তিক ঝুঁকি সূচক 57/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 112 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery","No feasible route for the exercise inputs"],"provenance":"synthetic"}},{"id":"sylhet-closed-24","preset":"closed","scenario":{"region":"sylhet","rain_mm":112.0,"soil_pct":78.0,"margin_m":0.85,"trend_mh":0.028,"horizon_h":24,"blocked_edges":["bridge","north"],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":112.0,"runoff_proxy_mm":74.59,"runoff_fraction":0.666,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.85,"trend_mh":0.028,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":57,"category":"high","components":[{"id":"rainfall","label":"24-hour rainfall","points":20.16,"max":36},{"id":"saturation","label":"Soil saturation","points":14.04,"max":18},{"id":"headroom","label":"River reference margin","points":16.1,"max":28},{"id":"rise","label":"River rise assumption","points":6.3,"max":18}],"trace":[{"hour":0,"central_m":-0.85,"lower_m":-0.85,"upper_m":-0.85},{"hour":1,"central_m":-0.791,"lower_m":-0.799,"upper_m":-0.782},{"hour":2,"central_m":-0.735,"lower_m":-0.752,"upper_m":-0.718},{"hour":3,"central_m":-0.681,"lower_m":-0.707,"upper_m":-0.656},{"hour":4,"central_m":-0.631,"lower_m":-0.665,"upper_m":-0.597},{"hour":5,"central_m":-0.583,"lower_m":-0.625,"upper_m":-0.54},{"hour":6,"central_m":-0.537,"lower_m":-0.588,"upper_m":-0.486},{"hour":7,"central_m":-0.493,"lower_m":-0.552,"upper_m":-0.433},{"hour":8,"central_m":-0.45,"lower_m":-0.518,"upper_m":-0.382},{"hour":9,"central_m":-0.409,"lower_m":-0.486,"upper_m":-0.333},{"hour":10,"central_m":-0.37,"lower_m":-0.455,"upper_m":-0.285},{"hour":11,"central_m":-0.332,"lower_m":-0.425,"upper_m":-0.238},{"hour":12,"central_m":-0.294,"lower_m":-0.396,"upper_m":-0.192},{"hour":13,"central_m":-0.258,"lower_m":-0.369,"upper_m":-0.147},{"hour":14,"central_m":-0.223,"lower_m":-0.342,"upper_m":-0.103},{"hour":15,"central_m":-0.188,"lower_m":-0.316,"upper_m":-0.06},{"hour":16,"central_m":-0.154,"lower_m":-0.29,"upper_m":-0.018},{"hour":17,"central_m":-0.121,"lower_m":-0.266,"upper_m":0.024},{"hour":18,"central_m":-0.088,"lower_m":-0.241,"upper_m":0.065},{"hour":19,"central_m":-0.056,"lower_m":-0.218,"upper_m":0.106},{"hour":20,"central_m":-0.024,"lower_m":-0.194,"upper_m":0.146},{"hour":21,"central_m":0.007,"lower_m":-0.171,"upper_m":0.186},{"hour":22,"central_m":0.038,"lower_m":-0.149,"upper_m":0.226},{"hour":23,"central_m":0.069,"lower_m":-0.127,"upper_m":0.265},{"hour":24,"central_m":0.1,"lower_m":-0.105,"upper_m":0.304}],"reference_crossing_h":21,"peak_relative_m":0.1,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"no-feasible-route","route":null,"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":["bridge","north"],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Sylhet. The illustrative screening index is 57/100 (high). The scenario assumes 112 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — সিলেট। অনুশীলনভিত্তিক ঝুঁকি সূচক 57/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 112 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery","No feasible route for the exercise inputs"],"provenance":"synthetic"}},{"id":"sylhet-closed-48","preset":"closed","scenario":{"region":"sylhet","rain_mm":112.0,"soil_pct":78.0,"margin_m":0.85,"trend_mh":0.028,"horizon_h":48,"blocked_edges":["bridge","north"],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":112.0,"runoff_proxy_mm":74.59,"runoff_fraction":0.666,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.85,"trend_mh":0.028,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":57,"category":"high","components":[{"id":"rainfall","label":"24-hour rainfall","points":20.16,"max":36},{"id":"saturation","label":"Soil saturation","points":14.04,"max":18},{"id":"headroom","label":"River reference margin","points":16.1,"max":28},{"id":"rise","label":"River rise assumption","points":6.3,"max":18}],"trace":[{"hour":0,"central_m":-0.85,"lower_m":-0.85,"upper_m":-0.85},{"hour":1,"central_m":-0.791,"lower_m":-0.799,"upper_m":-0.782},{"hour":2,"central_m":-0.735,"lower_m":-0.752,"upper_m":-0.718},{"hour":3,"central_m":-0.681,"lower_m":-0.707,"upper_m":-0.656},{"hour":4,"central_m":-0.631,"lower_m":-0.665,"upper_m":-0.597},{"hour":5,"central_m":-0.583,"lower_m":-0.625,"upper_m":-0.54},{"hour":6,"central_m":-0.537,"lower_m":-0.588,"upper_m":-0.486},{"hour":7,"central_m":-0.493,"lower_m":-0.552,"upper_m":-0.433},{"hour":8,"central_m":-0.45,"lower_m":-0.518,"upper_m":-0.382},{"hour":9,"central_m":-0.409,"lower_m":-0.486,"upper_m":-0.333},{"hour":10,"central_m":-0.37,"lower_m":-0.455,"upper_m":-0.285},{"hour":11,"central_m":-0.332,"lower_m":-0.425,"upper_m":-0.238},{"hour":12,"central_m":-0.294,"lower_m":-0.396,"upper_m":-0.192},{"hour":13,"central_m":-0.258,"lower_m":-0.369,"upper_m":-0.147},{"hour":14,"central_m":-0.223,"lower_m":-0.342,"upper_m":-0.103},{"hour":15,"central_m":-0.188,"lower_m":-0.316,"upper_m":-0.06},{"hour":16,"central_m":-0.154,"lower_m":-0.29,"upper_m":-0.018},{"hour":17,"central_m":-0.121,"lower_m":-0.266,"upper_m":0.024},{"hour":18,"central_m":-0.088,"lower_m":-0.241,"upper_m":0.065},{"hour":19,"central_m":-0.056,"lower_m":-0.218,"upper_m":0.106},{"hour":20,"central_m":-0.024,"lower_m":-0.194,"upper_m":0.146},{"hour":21,"central_m":0.007,"lower_m":-0.171,"upper_m":0.186},{"hour":22,"central_m":0.038,"lower_m":-0.149,"upper_m":0.226},{"hour":23,"central_m":0.069,"lower_m":-0.127,"upper_m":0.265},{"hour":24,"central_m":0.1,"lower_m":-0.105,"upper_m":0.304},{"hour":25,"central_m":0.13,"lower_m":-0.083,"upper_m":0.343},{"hour":26,"central_m":0.16,"lower_m":-0.062,"upper_m":0.381},{"hour":27,"central_m":0.19,"lower_m":-0.04,"upper_m":0.419},{"hour":28,"central_m":0.219,"lower_m":-0.019,"upper_m":0.458},{"hour":29,"central_m":0.248,"lower_m":0.001,"upper_m":0.495},{"hour":30,"central_m":0.278,"lower_m":0.022,"upper_m":0.533},{"hour":31,"central_m":0.307,"lower_m":0.043,"upper_m":0.571},{"hour":32,"central_m":0.336,"lower_m":0.063,"upper_m":0.608},{"hour":33,"central_m":0.365,"lower_m":0.084,"upper_m":0.646},{"hour":34,"central_m":0.394,"lower_m":0.104,"upper_m":0.683},{"hour":35,"central_m":0.422,"lower_m":0.124,"upper_m":0.72},{"hour":36,"central_m":0.451,"lower_m":0.144,"upper_m":0.758},{"hour":37,"central_m":0.479,"lower_m":0.164,"upper_m":0.795},{"hour":38,"central_m":0.508,"lower_m":0.184,"upper_m":0.832},{"hour":39,"central_m":0.536,"lower_m":0.204,"upper_m":0.869},{"hour":40,"central_m":0.565,"lower_m":0.224,"upper_m":0.906},{"hour":41,"central_m":0.593,"lower_m":0.244,"upper_m":0.942},{"hour":42,"central_m":0.622,"lower_m":0.264,"upper_m":0.979},{"hour":43,"central_m":0.65,"lower_m":0.284,"upper_m":1.016},{"hour":44,"central_m":0.678,"lower_m":0.303,"upper_m":1.053},{"hour":45,"central_m":0.706,"lower_m":0.323,"upper_m":1.09},{"hour":46,"central_m":0.735,"lower_m":0.343,"upper_m":1.126},{"hour":47,"central_m":0.763,"lower_m":0.362,"upper_m":1.163},{"hour":48,"central_m":0.791,"lower_m":0.382,"upper_m":1.2}],"reference_crossing_h":21,"peak_relative_m":0.791,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"no-feasible-route","route":null,"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":["bridge","north"],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Sylhet. The illustrative screening index is 57/100 (high). The scenario assumes 112 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — সিলেট। অনুশীলনভিত্তিক ঝুঁকি সূচক 57/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 112 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery","No feasible route for the exercise inputs"],"provenance":"synthetic"}},{"id":"sylhet-capacity-6","preset":"capacity","scenario":{"region":"sylhet","rain_mm":112.0,"soil_pct":78.0,"margin_m":0.85,"trend_mh":0.028,"horizon_h":6,"blocked_edges":[],"people":600,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":112.0,"runoff_proxy_mm":74.59,"runoff_fraction":0.666,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.85,"trend_mh":0.028,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":57,"category":"high","components":[{"id":"rainfall","label":"24-hour rainfall","points":20.16,"max":36},{"id":"saturation","label":"Soil saturation","points":14.04,"max":18},{"id":"headroom","label":"River reference margin","points":16.1,"max":28},{"id":"rise","label":"River rise assumption","points":6.3,"max":18}],"trace":[{"hour":0,"central_m":-0.85,"lower_m":-0.85,"upper_m":-0.85},{"hour":1,"central_m":-0.791,"lower_m":-0.799,"upper_m":-0.782},{"hour":2,"central_m":-0.735,"lower_m":-0.752,"upper_m":-0.718},{"hour":3,"central_m":-0.681,"lower_m":-0.707,"upper_m":-0.656},{"hour":4,"central_m":-0.631,"lower_m":-0.665,"upper_m":-0.597},{"hour":5,"central_m":-0.583,"lower_m":-0.625,"upper_m":-0.54},{"hour":6,"central_m":-0.537,"lower_m":-0.588,"upper_m":-0.486}],"reference_crossing_h":null,"peak_relative_m":-0.537,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"no-feasible-route","route":null,"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":600,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Sylhet. The illustrative screening index is 57/100 (high). The scenario assumes 112 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — সিলেট। অনুশীলনভিত্তিক ঝুঁকি সূচক 57/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 112 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery","No feasible route for the exercise inputs"],"provenance":"synthetic"}},{"id":"sylhet-capacity-12","preset":"capacity","scenario":{"region":"sylhet","rain_mm":112.0,"soil_pct":78.0,"margin_m":0.85,"trend_mh":0.028,"horizon_h":12,"blocked_edges":[],"people":600,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":112.0,"runoff_proxy_mm":74.59,"runoff_fraction":0.666,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.85,"trend_mh":0.028,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":57,"category":"high","components":[{"id":"rainfall","label":"24-hour rainfall","points":20.16,"max":36},{"id":"saturation","label":"Soil saturation","points":14.04,"max":18},{"id":"headroom","label":"River reference margin","points":16.1,"max":28},{"id":"rise","label":"River rise assumption","points":6.3,"max":18}],"trace":[{"hour":0,"central_m":-0.85,"lower_m":-0.85,"upper_m":-0.85},{"hour":1,"central_m":-0.791,"lower_m":-0.799,"upper_m":-0.782},{"hour":2,"central_m":-0.735,"lower_m":-0.752,"upper_m":-0.718},{"hour":3,"central_m":-0.681,"lower_m":-0.707,"upper_m":-0.656},{"hour":4,"central_m":-0.631,"lower_m":-0.665,"upper_m":-0.597},{"hour":5,"central_m":-0.583,"lower_m":-0.625,"upper_m":-0.54},{"hour":6,"central_m":-0.537,"lower_m":-0.588,"upper_m":-0.486},{"hour":7,"central_m":-0.493,"lower_m":-0.552,"upper_m":-0.433},{"hour":8,"central_m":-0.45,"lower_m":-0.518,"upper_m":-0.382},{"hour":9,"central_m":-0.409,"lower_m":-0.486,"upper_m":-0.333},{"hour":10,"central_m":-0.37,"lower_m":-0.455,"upper_m":-0.285},{"hour":11,"central_m":-0.332,"lower_m":-0.425,"upper_m":-0.238},{"hour":12,"central_m":-0.294,"lower_m":-0.396,"upper_m":-0.192}],"reference_crossing_h":null,"peak_relative_m":-0.294,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"no-feasible-route","route":null,"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":600,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Sylhet. The illustrative screening index is 57/100 (high). The scenario assumes 112 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — সিলেট। অনুশীলনভিত্তিক ঝুঁকি সূচক 57/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 112 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery","No feasible route for the exercise inputs"],"provenance":"synthetic"}},{"id":"sylhet-capacity-24","preset":"capacity","scenario":{"region":"sylhet","rain_mm":112.0,"soil_pct":78.0,"margin_m":0.85,"trend_mh":0.028,"horizon_h":24,"blocked_edges":[],"people":600,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":112.0,"runoff_proxy_mm":74.59,"runoff_fraction":0.666,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.85,"trend_mh":0.028,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":57,"category":"high","components":[{"id":"rainfall","label":"24-hour rainfall","points":20.16,"max":36},{"id":"saturation","label":"Soil saturation","points":14.04,"max":18},{"id":"headroom","label":"River reference margin","points":16.1,"max":28},{"id":"rise","label":"River rise assumption","points":6.3,"max":18}],"trace":[{"hour":0,"central_m":-0.85,"lower_m":-0.85,"upper_m":-0.85},{"hour":1,"central_m":-0.791,"lower_m":-0.799,"upper_m":-0.782},{"hour":2,"central_m":-0.735,"lower_m":-0.752,"upper_m":-0.718},{"hour":3,"central_m":-0.681,"lower_m":-0.707,"upper_m":-0.656},{"hour":4,"central_m":-0.631,"lower_m":-0.665,"upper_m":-0.597},{"hour":5,"central_m":-0.583,"lower_m":-0.625,"upper_m":-0.54},{"hour":6,"central_m":-0.537,"lower_m":-0.588,"upper_m":-0.486},{"hour":7,"central_m":-0.493,"lower_m":-0.552,"upper_m":-0.433},{"hour":8,"central_m":-0.45,"lower_m":-0.518,"upper_m":-0.382},{"hour":9,"central_m":-0.409,"lower_m":-0.486,"upper_m":-0.333},{"hour":10,"central_m":-0.37,"lower_m":-0.455,"upper_m":-0.285},{"hour":11,"central_m":-0.332,"lower_m":-0.425,"upper_m":-0.238},{"hour":12,"central_m":-0.294,"lower_m":-0.396,"upper_m":-0.192},{"hour":13,"central_m":-0.258,"lower_m":-0.369,"upper_m":-0.147},{"hour":14,"central_m":-0.223,"lower_m":-0.342,"upper_m":-0.103},{"hour":15,"central_m":-0.188,"lower_m":-0.316,"upper_m":-0.06},{"hour":16,"central_m":-0.154,"lower_m":-0.29,"upper_m":-0.018},{"hour":17,"central_m":-0.121,"lower_m":-0.266,"upper_m":0.024},{"hour":18,"central_m":-0.088,"lower_m":-0.241,"upper_m":0.065},{"hour":19,"central_m":-0.056,"lower_m":-0.218,"upper_m":0.106},{"hour":20,"central_m":-0.024,"lower_m":-0.194,"upper_m":0.146},{"hour":21,"central_m":0.007,"lower_m":-0.171,"upper_m":0.186},{"hour":22,"central_m":0.038,"lower_m":-0.149,"upper_m":0.226},{"hour":23,"central_m":0.069,"lower_m":-0.127,"upper_m":0.265},{"hour":24,"central_m":0.1,"lower_m":-0.105,"upper_m":0.304}],"reference_crossing_h":21,"peak_relative_m":0.1,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"no-feasible-route","route":null,"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":600,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Sylhet. The illustrative screening index is 57/100 (high). The scenario assumes 112 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — সিলেট। অনুশীলনভিত্তিক ঝুঁকি সূচক 57/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 112 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery","No feasible route for the exercise inputs"],"provenance":"synthetic"}},{"id":"sylhet-capacity-48","preset":"capacity","scenario":{"region":"sylhet","rain_mm":112.0,"soil_pct":78.0,"margin_m":0.85,"trend_mh":0.028,"horizon_h":48,"blocked_edges":[],"people":600,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":112.0,"runoff_proxy_mm":74.59,"runoff_fraction":0.666,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.85,"trend_mh":0.028,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":57,"category":"high","components":[{"id":"rainfall","label":"24-hour rainfall","points":20.16,"max":36},{"id":"saturation","label":"Soil saturation","points":14.04,"max":18},{"id":"headroom","label":"River reference margin","points":16.1,"max":28},{"id":"rise","label":"River rise assumption","points":6.3,"max":18}],"trace":[{"hour":0,"central_m":-0.85,"lower_m":-0.85,"upper_m":-0.85},{"hour":1,"central_m":-0.791,"lower_m":-0.799,"upper_m":-0.782},{"hour":2,"central_m":-0.735,"lower_m":-0.752,"upper_m":-0.718},{"hour":3,"central_m":-0.681,"lower_m":-0.707,"upper_m":-0.656},{"hour":4,"central_m":-0.631,"lower_m":-0.665,"upper_m":-0.597},{"hour":5,"central_m":-0.583,"lower_m":-0.625,"upper_m":-0.54},{"hour":6,"central_m":-0.537,"lower_m":-0.588,"upper_m":-0.486},{"hour":7,"central_m":-0.493,"lower_m":-0.552,"upper_m":-0.433},{"hour":8,"central_m":-0.45,"lower_m":-0.518,"upper_m":-0.382},{"hour":9,"central_m":-0.409,"lower_m":-0.486,"upper_m":-0.333},{"hour":10,"central_m":-0.37,"lower_m":-0.455,"upper_m":-0.285},{"hour":11,"central_m":-0.332,"lower_m":-0.425,"upper_m":-0.238},{"hour":12,"central_m":-0.294,"lower_m":-0.396,"upper_m":-0.192},{"hour":13,"central_m":-0.258,"lower_m":-0.369,"upper_m":-0.147},{"hour":14,"central_m":-0.223,"lower_m":-0.342,"upper_m":-0.103},{"hour":15,"central_m":-0.188,"lower_m":-0.316,"upper_m":-0.06},{"hour":16,"central_m":-0.154,"lower_m":-0.29,"upper_m":-0.018},{"hour":17,"central_m":-0.121,"lower_m":-0.266,"upper_m":0.024},{"hour":18,"central_m":-0.088,"lower_m":-0.241,"upper_m":0.065},{"hour":19,"central_m":-0.056,"lower_m":-0.218,"upper_m":0.106},{"hour":20,"central_m":-0.024,"lower_m":-0.194,"upper_m":0.146},{"hour":21,"central_m":0.007,"lower_m":-0.171,"upper_m":0.186},{"hour":22,"central_m":0.038,"lower_m":-0.149,"upper_m":0.226},{"hour":23,"central_m":0.069,"lower_m":-0.127,"upper_m":0.265},{"hour":24,"central_m":0.1,"lower_m":-0.105,"upper_m":0.304},{"hour":25,"central_m":0.13,"lower_m":-0.083,"upper_m":0.343},{"hour":26,"central_m":0.16,"lower_m":-0.062,"upper_m":0.381},{"hour":27,"central_m":0.19,"lower_m":-0.04,"upper_m":0.419},{"hour":28,"central_m":0.219,"lower_m":-0.019,"upper_m":0.458},{"hour":29,"central_m":0.248,"lower_m":0.001,"upper_m":0.495},{"hour":30,"central_m":0.278,"lower_m":0.022,"upper_m":0.533},{"hour":31,"central_m":0.307,"lower_m":0.043,"upper_m":0.571},{"hour":32,"central_m":0.336,"lower_m":0.063,"upper_m":0.608},{"hour":33,"central_m":0.365,"lower_m":0.084,"upper_m":0.646},{"hour":34,"central_m":0.394,"lower_m":0.104,"upper_m":0.683},{"hour":35,"central_m":0.422,"lower_m":0.124,"upper_m":0.72},{"hour":36,"central_m":0.451,"lower_m":0.144,"upper_m":0.758},{"hour":37,"central_m":0.479,"lower_m":0.164,"upper_m":0.795},{"hour":38,"central_m":0.508,"lower_m":0.184,"upper_m":0.832},{"hour":39,"central_m":0.536,"lower_m":0.204,"upper_m":0.869},{"hour":40,"central_m":0.565,"lower_m":0.224,"upper_m":0.906},{"hour":41,"central_m":0.593,"lower_m":0.244,"upper_m":0.942},{"hour":42,"central_m":0.622,"lower_m":0.264,"upper_m":0.979},{"hour":43,"central_m":0.65,"lower_m":0.284,"upper_m":1.016},{"hour":44,"central_m":0.678,"lower_m":0.303,"upper_m":1.053},{"hour":45,"central_m":0.706,"lower_m":0.323,"upper_m":1.09},{"hour":46,"central_m":0.735,"lower_m":0.343,"upper_m":1.126},{"hour":47,"central_m":0.763,"lower_m":0.362,"upper_m":1.163},{"hour":48,"central_m":0.791,"lower_m":0.382,"upper_m":1.2}],"reference_crossing_h":21,"peak_relative_m":0.791,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"no-feasible-route","route":null,"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":600,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Sylhet. The illustrative screening index is 57/100 (high). The scenario assumes 112 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — সিলেট। অনুশীলনভিত্তিক ঝুঁকি সূচক 57/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 112 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery","No feasible route for the exercise inputs"],"provenance":"synthetic"}},{"id":"kurigram-baseline-6","preset":"baseline","scenario":{"region":"kurigram","rain_mm":86.0,"soil_pct":69.0,"margin_m":1.1,"trend_mh":0.021,"horizon_h":6,"blocked_edges":[],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":86.0,"runoff_proxy_mm":51.86,"runoff_fraction":0.603,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":1.1,"trend_mh":0.021,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":45,"category":"watch","components":[{"id":"rainfall","label":"24-hour rainfall","points":15.48,"max":36},{"id":"saturation","label":"Soil saturation","points":12.42,"max":18},{"id":"headroom","label":"River reference margin","points":12.6,"max":28},{"id":"rise","label":"River rise assumption","points":4.73,"max":18}],"trace":[{"hour":0,"central_m":-1.1,"lower_m":-1.1,"upper_m":-1.1},{"hour":1,"central_m":-1.057,"lower_m":-1.064,"upper_m":-1.05},{"hour":2,"central_m":-1.017,"lower_m":-1.031,"upper_m":-1.002},{"hour":3,"central_m":-0.978,"lower_m":-1.0,"upper_m":-0.957},{"hour":4,"central_m":-0.942,"lower_m":-0.97,"upper_m":-0.913},{"hour":5,"central_m":-0.907,"lower_m":-0.943,"upper_m":-0.871},{"hour":6,"central_m":-0.873,"lower_m":-0.916,"upper_m":-0.83}],"reference_crossing_h":null,"peak_relative_m":-0.873,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"exercise-route","route":{"destination":"Practice hub B","destination_id":"hub-b","capacity":500,"minutes":12,"weighted_cost":19.38,"nodes":["origin","bridge","hub-b"],"edges":["bridge","south"]},"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Kurigram. The illustrative screening index is 45/100 (watch). The scenario assumes 86 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — কুড়িগ্রাম। অনুশীলনভিত্তিক ঝুঁকি সূচক 45/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 86 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery"],"provenance":"synthetic"}},{"id":"kurigram-baseline-12","preset":"baseline","scenario":{"region":"kurigram","rain_mm":86.0,"soil_pct":69.0,"margin_m":1.1,"trend_mh":0.021,"horizon_h":12,"blocked_edges":[],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":86.0,"runoff_proxy_mm":51.86,"runoff_fraction":0.603,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":1.1,"trend_mh":0.021,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":45,"category":"watch","components":[{"id":"rainfall","label":"24-hour rainfall","points":15.48,"max":36},{"id":"saturation","label":"Soil saturation","points":12.42,"max":18},{"id":"headroom","label":"River reference margin","points":12.6,"max":28},{"id":"rise","label":"River rise assumption","points":4.73,"max":18}],"trace":[{"hour":0,"central_m":-1.1,"lower_m":-1.1,"upper_m":-1.1},{"hour":1,"central_m":-1.057,"lower_m":-1.064,"upper_m":-1.05},{"hour":2,"central_m":-1.017,"lower_m":-1.031,"upper_m":-1.002},{"hour":3,"central_m":-0.978,"lower_m":-1.0,"upper_m":-0.957},{"hour":4,"central_m":-0.942,"lower_m":-0.97,"upper_m":-0.913},{"hour":5,"central_m":-0.907,"lower_m":-0.943,"upper_m":-0.871},{"hour":6,"central_m":-0.873,"lower_m":-0.916,"upper_m":-0.83},{"hour":7,"central_m":-0.841,"lower_m":-0.891,"upper_m":-0.791},{"hour":8,"central_m":-0.81,"lower_m":-0.867,"upper_m":-0.752},{"hour":9,"central_m":-0.78,"lower_m":-0.845,"upper_m":-0.715},{"hour":10,"central_m":-0.751,"lower_m":-0.823,"upper_m":-0.679},{"hour":11,"central_m":-0.723,"lower_m":-0.802,"upper_m":-0.644},{"hour":12,"central_m":-0.695,"lower_m":-0.782,"upper_m":-0.609}],"reference_crossing_h":null,"peak_relative_m":-0.695,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"exercise-route","route":{"destination":"Practice hub B","destination_id":"hub-b","capacity":500,"minutes":12,"weighted_cost":19.38,"nodes":["origin","bridge","hub-b"],"edges":["bridge","south"]},"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Kurigram. The illustrative screening index is 45/100 (watch). The scenario assumes 86 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — কুড়িগ্রাম। অনুশীলনভিত্তিক ঝুঁকি সূচক 45/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 86 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery"],"provenance":"synthetic"}},{"id":"kurigram-baseline-24","preset":"baseline","scenario":{"region":"kurigram","rain_mm":86.0,"soil_pct":69.0,"margin_m":1.1,"trend_mh":0.021,"horizon_h":24,"blocked_edges":[],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":86.0,"runoff_proxy_mm":51.86,"runoff_fraction":0.603,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":1.1,"trend_mh":0.021,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":45,"category":"watch","components":[{"id":"rainfall","label":"24-hour rainfall","points":15.48,"max":36},{"id":"saturation","label":"Soil saturation","points":12.42,"max":18},{"id":"headroom","label":"River reference margin","points":12.6,"max":28},{"id":"rise","label":"River rise assumption","points":4.73,"max":18}],"trace":[{"hour":0,"central_m":-1.1,"lower_m":-1.1,"upper_m":-1.1},{"hour":1,"central_m":-1.057,"lower_m":-1.064,"upper_m":-1.05},{"hour":2,"central_m":-1.017,"lower_m":-1.031,"upper_m":-1.002},{"hour":3,"central_m":-0.978,"lower_m":-1.0,"upper_m":-0.957},{"hour":4,"central_m":-0.942,"lower_m":-0.97,"upper_m":-0.913},{"hour":5,"central_m":-0.907,"lower_m":-0.943,"upper_m":-0.871},{"hour":6,"central_m":-0.873,"lower_m":-0.916,"upper_m":-0.83},{"hour":7,"central_m":-0.841,"lower_m":-0.891,"upper_m":-0.791},{"hour":8,"central_m":-0.81,"lower_m":-0.867,"upper_m":-0.752},{"hour":9,"central_m":-0.78,"lower_m":-0.845,"upper_m":-0.715},{"hour":10,"central_m":-0.751,"lower_m":-0.823,"upper_m":-0.679},{"hour":11,"central_m":-0.723,"lower_m":-0.802,"upper_m":-0.644},{"hour":12,"central_m":-0.695,"lower_m":-0.782,"upper_m":-0.609},{"hour":13,"central_m":-0.668,"lower_m":-0.762,"upper_m":-0.575},{"hour":14,"central_m":-0.642,"lower_m":-0.743,"upper_m":-0.542},{"hour":15,"central_m":-0.617,"lower_m":-0.725,"upper_m":-0.509},{"hour":16,"central_m":-0.592,"lower_m":-0.707,"upper_m":-0.477},{"hour":17,"central_m":-0.567,"lower_m":-0.689,"upper_m":-0.445},{"hour":18,"central_m":-0.543,"lower_m":-0.672,"upper_m":-0.413},{"hour":19,"central_m":-0.519,"lower_m":-0.655,"upper_m":-0.382},{"hour":20,"central_m":-0.495,"lower_m":-0.639,"upper_m":-0.351},{"hour":21,"central_m":-0.472,"lower_m":-0.623,"upper_m":-0.321},{"hour":22,"central_m":-0.449,"lower_m":-0.607,"upper_m":-0.29},{"hour":23,"central_m":-0.426,"lower_m":-0.591,"upper_m":-0.26},{"hour":24,"central_m":-0.403,"lower_m":-0.576,"upper_m":-0.23}],"reference_crossing_h":null,"peak_relative_m":-0.403,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"exercise-route","route":{"destination":"Practice hub B","destination_id":"hub-b","capacity":500,"minutes":12,"weighted_cost":19.38,"nodes":["origin","bridge","hub-b"],"edges":["bridge","south"]},"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Kurigram. The illustrative screening index is 45/100 (watch). The scenario assumes 86 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — কুড়িগ্রাম। অনুশীলনভিত্তিক ঝুঁকি সূচক 45/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 86 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery"],"provenance":"synthetic"}},{"id":"kurigram-baseline-48","preset":"baseline","scenario":{"region":"kurigram","rain_mm":86.0,"soil_pct":69.0,"margin_m":1.1,"trend_mh":0.021,"horizon_h":48,"blocked_edges":[],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":86.0,"runoff_proxy_mm":51.86,"runoff_fraction":0.603,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":1.1,"trend_mh":0.021,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":45,"category":"watch","components":[{"id":"rainfall","label":"24-hour rainfall","points":15.48,"max":36},{"id":"saturation","label":"Soil saturation","points":12.42,"max":18},{"id":"headroom","label":"River reference margin","points":12.6,"max":28},{"id":"rise","label":"River rise assumption","points":4.73,"max":18}],"trace":[{"hour":0,"central_m":-1.1,"lower_m":-1.1,"upper_m":-1.1},{"hour":1,"central_m":-1.057,"lower_m":-1.064,"upper_m":-1.05},{"hour":2,"central_m":-1.017,"lower_m":-1.031,"upper_m":-1.002},{"hour":3,"central_m":-0.978,"lower_m":-1.0,"upper_m":-0.957},{"hour":4,"central_m":-0.942,"lower_m":-0.97,"upper_m":-0.913},{"hour":5,"central_m":-0.907,"lower_m":-0.943,"upper_m":-0.871},{"hour":6,"central_m":-0.873,"lower_m":-0.916,"upper_m":-0.83},{"hour":7,"central_m":-0.841,"lower_m":-0.891,"upper_m":-0.791},{"hour":8,"central_m":-0.81,"lower_m":-0.867,"upper_m":-0.752},{"hour":9,"central_m":-0.78,"lower_m":-0.845,"upper_m":-0.715},{"hour":10,"central_m":-0.751,"lower_m":-0.823,"upper_m":-0.679},{"hour":11,"central_m":-0.723,"lower_m":-0.802,"upper_m":-0.644},{"hour":12,"central_m":-0.695,"lower_m":-0.782,"upper_m":-0.609},{"hour":13,"central_m":-0.668,"lower_m":-0.762,"upper_m":-0.575},{"hour":14,"central_m":-0.642,"lower_m":-0.743,"upper_m":-0.542},{"hour":15,"central_m":-0.617,"lower_m":-0.725,"upper_m":-0.509},{"hour":16,"central_m":-0.592,"lower_m":-0.707,"upper_m":-0.477},{"hour":17,"central_m":-0.567,"lower_m":-0.689,"upper_m":-0.445},{"hour":18,"central_m":-0.543,"lower_m":-0.672,"upper_m":-0.413},{"hour":19,"central_m":-0.519,"lower_m":-0.655,"upper_m":-0.382},{"hour":20,"central_m":-0.495,"lower_m":-0.639,"upper_m":-0.351},{"hour":21,"central_m":-0.472,"lower_m":-0.623,"upper_m":-0.321},{"hour":22,"central_m":-0.449,"lower_m":-0.607,"upper_m":-0.29},{"hour":23,"central_m":-0.426,"lower_m":-0.591,"upper_m":-0.26},{"hour":24,"central_m":-0.403,"lower_m":-0.576,"upper_m":-0.23},{"hour":25,"central_m":-0.38,"lower_m":-0.56,"upper_m":-0.201},{"hour":26,"central_m":-0.358,"lower_m":-0.545,"upper_m":-0.171},{"hour":27,"central_m":-0.336,"lower_m":-0.53,"upper_m":-0.142},{"hour":28,"central_m":-0.314,"lower_m":-0.515,"upper_m":-0.112},{"hour":29,"central_m":-0.292,"lower_m":-0.5,"upper_m":-0.083},{"hour":30,"central_m":-0.27,"lower_m":-0.486,"upper_m":-0.054},{"hour":31,"central_m":-0.248,"lower_m":-0.471,"upper_m":-0.025},{"hour":32,"central_m":-0.226,"lower_m":-0.457,"upper_m":0.004},{"hour":33,"central_m":-0.205,"lower_m":-0.442,"upper_m":0.032},{"hour":34,"central_m":-0.183,"lower_m":-0.428,"upper_m":0.061},{"hour":35,"central_m":-0.162,"lower_m":-0.414,"upper_m":0.09},{"hour":36,"central_m":-0.14,"lower_m":-0.399,"upper_m":0.119},{"hour":37,"central_m":-0.119,"lower_m":-0.385,"upper_m":0.147},{"hour":38,"central_m":-0.098,"lower_m":-0.371,"upper_m":0.176},{"hour":39,"central_m":-0.076,"lower_m":-0.357,"upper_m":0.204},{"hour":40,"central_m":-0.055,"lower_m":-0.343,"upper_m":0.233},{"hour":41,"central_m":-0.034,"lower_m":-0.329,"upper_m":0.261},{"hour":42,"central_m":-0.013,"lower_m":-0.315,"upper_m":0.29},{"hour":43,"central_m":0.009,"lower_m":-0.301,"upper_m":0.318},{"hour":44,"central_m":0.03,"lower_m":-0.287,"upper_m":0.346},{"hour":45,"central_m":0.051,"lower_m":-0.273,"upper_m":0.375},{"hour":46,"central_m":0.072,"lower_m":-0.259,"upper_m":0.403},{"hour":47,"central_m":0.093,"lower_m":-0.245,"upper_m":0.431},{"hour":48,"central_m":0.114,"lower_m":-0.231,"upper_m":0.46}],"reference_crossing_h":43,"peak_relative_m":0.114,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"exercise-route","route":{"destination":"Practice hub B","destination_id":"hub-b","capacity":500,"minutes":12,"weighted_cost":19.38,"nodes":["origin","bridge","hub-b"],"edges":["bridge","south"]},"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Kurigram. The illustrative screening index is 45/100 (watch). The scenario assumes 86 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — কুড়িগ্রাম। অনুশীলনভিত্তিক ঝুঁকি সূচক 45/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 86 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery"],"provenance":"synthetic"}},{"id":"kurigram-wet-6","preset":"wet","scenario":{"region":"kurigram","rain_mm":220.0,"soil_pct":95.0,"margin_m":0.25,"trend_mh":0.06,"horizon_h":6,"blocked_edges":[],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":220.0,"runoff_proxy_mm":172.7,"runoff_fraction":0.785,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.25,"trend_mh":0.06,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":91,"category":"critical","components":[{"id":"rainfall","label":"24-hour rainfall","points":36,"max":36},{"id":"saturation","label":"Soil saturation","points":17.1,"max":18},{"id":"headroom","label":"River reference margin","points":24.5,"max":28},{"id":"rise","label":"River rise assumption","points":13.5,"max":18}],"trace":[{"hour":0,"central_m":-0.25,"lower_m":-0.25,"upper_m":-0.25},{"hour":1,"central_m":-0.117,"lower_m":-0.132,"upper_m":-0.103},{"hour":2,"central_m":0.008,"lower_m":-0.021,"upper_m":0.036},{"hour":3,"central_m":0.126,"lower_m":0.083,"upper_m":0.169},{"hour":4,"central_m":0.238,"lower_m":0.181,"upper_m":0.295},{"hour":5,"central_m":0.344,"lower_m":0.273,"upper_m":0.416},{"hour":6,"central_m":0.446,"lower_m":0.361,"upper_m":0.532}],"reference_crossing_h":2,"peak_relative_m":0.446,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"exercise-route","route":{"destination":"Practice hub A","destination_id":"hub-a","capacity":180,"minutes":18,"weighted_cost":22.0,"nodes":["origin","junction","hub-a"],"edges":["north","ridge"]},"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Kurigram. The illustrative screening index is 91/100 (critical). The scenario assumes 220 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — কুড়িগ্রাম। অনুশীলনভিত্তিক ঝুঁকি সূচক 91/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 220 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery"],"provenance":"synthetic"}},{"id":"kurigram-wet-12","preset":"wet","scenario":{"region":"kurigram","rain_mm":220.0,"soil_pct":95.0,"margin_m":0.25,"trend_mh":0.06,"horizon_h":12,"blocked_edges":[],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":220.0,"runoff_proxy_mm":172.7,"runoff_fraction":0.785,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.25,"trend_mh":0.06,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":91,"category":"critical","components":[{"id":"rainfall","label":"24-hour rainfall","points":36,"max":36},{"id":"saturation","label":"Soil saturation","points":17.1,"max":18},{"id":"headroom","label":"River reference margin","points":24.5,"max":28},{"id":"rise","label":"River rise assumption","points":13.5,"max":18}],"trace":[{"hour":0,"central_m":-0.25,"lower_m":-0.25,"upper_m":-0.25},{"hour":1,"central_m":-0.117,"lower_m":-0.132,"upper_m":-0.103},{"hour":2,"central_m":0.008,"lower_m":-0.021,"upper_m":0.036},{"hour":3,"central_m":0.126,"lower_m":0.083,"upper_m":0.169},{"hour":4,"central_m":0.238,"lower_m":0.181,"upper_m":0.295},{"hour":5,"central_m":0.344,"lower_m":0.273,"upper_m":0.416},{"hour":6,"central_m":0.446,"lower_m":0.361,"upper_m":0.532},{"hour":7,"central_m":0.543,"lower_m":0.444,"upper_m":0.643},{"hour":8,"central_m":0.637,"lower_m":0.523,"upper_m":0.751},{"hour":9,"central_m":0.727,"lower_m":0.599,"upper_m":0.855},{"hour":10,"central_m":0.813,"lower_m":0.671,"upper_m":0.956},{"hour":11,"central_m":0.897,"lower_m":0.741,"upper_m":1.054},{"hour":12,"central_m":0.979,"lower_m":0.808,"upper_m":1.15}],"reference_crossing_h":2,"peak_relative_m":0.979,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"exercise-route","route":{"destination":"Practice hub A","destination_id":"hub-a","capacity":180,"minutes":18,"weighted_cost":22.0,"nodes":["origin","junction","hub-a"],"edges":["north","ridge"]},"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Kurigram. The illustrative screening index is 91/100 (critical). The scenario assumes 220 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — কুড়িগ্রাম। অনুশীলনভিত্তিক ঝুঁকি সূচক 91/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 220 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery"],"provenance":"synthetic"}},{"id":"kurigram-wet-24","preset":"wet","scenario":{"region":"kurigram","rain_mm":220.0,"soil_pct":95.0,"margin_m":0.25,"trend_mh":0.06,"horizon_h":24,"blocked_edges":[],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":220.0,"runoff_proxy_mm":172.7,"runoff_fraction":0.785,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.25,"trend_mh":0.06,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":91,"category":"critical","components":[{"id":"rainfall","label":"24-hour rainfall","points":36,"max":36},{"id":"saturation","label":"Soil saturation","points":17.1,"max":18},{"id":"headroom","label":"River reference margin","points":24.5,"max":28},{"id":"rise","label":"River rise assumption","points":13.5,"max":18}],"trace":[{"hour":0,"central_m":-0.25,"lower_m":-0.25,"upper_m":-0.25},{"hour":1,"central_m":-0.117,"lower_m":-0.132,"upper_m":-0.103},{"hour":2,"central_m":0.008,"lower_m":-0.021,"upper_m":0.036},{"hour":3,"central_m":0.126,"lower_m":0.083,"upper_m":0.169},{"hour":4,"central_m":0.238,"lower_m":0.181,"upper_m":0.295},{"hour":5,"central_m":0.344,"lower_m":0.273,"upper_m":0.416},{"hour":6,"central_m":0.446,"lower_m":0.361,"upper_m":0.532},{"hour":7,"central_m":0.543,"lower_m":0.444,"upper_m":0.643},{"hour":8,"central_m":0.637,"lower_m":0.523,"upper_m":0.751},{"hour":9,"central_m":0.727,"lower_m":0.599,"upper_m":0.855},{"hour":10,"central_m":0.813,"lower_m":0.671,"upper_m":0.956},{"hour":11,"central_m":0.897,"lower_m":0.741,"upper_m":1.054},{"hour":12,"central_m":0.979,"lower_m":0.808,"upper_m":1.15},{"hour":13,"central_m":1.058,"lower_m":0.873,"upper_m":1.243},{"hour":14,"central_m":1.135,"lower_m":0.936,"upper_m":1.334},{"hour":15,"central_m":1.21,"lower_m":0.997,"upper_m":1.424},{"hour":16,"central_m":1.284,"lower_m":1.056,"upper_m":1.512},{"hour":17,"central_m":1.356,"lower_m":1.114,"upper_m":1.598},{"hour":18,"central_m":1.427,"lower_m":1.171,"upper_m":1.684},{"hour":19,"central_m":1.497,"lower_m":1.227,"upper_m":1.768},{"hour":20,"central_m":1.566,"lower_m":1.281,"upper_m":1.851},{"hour":21,"central_m":1.634,"lower_m":1.335,"upper_m":1.933},{"hour":22,"central_m":1.701,"lower_m":1.388,"upper_m":2.014},{"hour":23,"central_m":1.767,"lower_m":1.44,"upper_m":2.095},{"hour":24,"central_m":1.833,"lower_m":1.491,"upper_m":2.175}],"reference_crossing_h":2,"peak_relative_m":1.833,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"exercise-route","route":{"destination":"Practice hub A","destination_id":"hub-a","capacity":180,"minutes":18,"weighted_cost":22.0,"nodes":["origin","junction","hub-a"],"edges":["north","ridge"]},"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Kurigram. The illustrative screening index is 91/100 (critical). The scenario assumes 220 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — কুড়িগ্রাম। অনুশীলনভিত্তিক ঝুঁকি সূচক 91/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 220 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery"],"provenance":"synthetic"}},{"id":"kurigram-wet-48","preset":"wet","scenario":{"region":"kurigram","rain_mm":220.0,"soil_pct":95.0,"margin_m":0.25,"trend_mh":0.06,"horizon_h":48,"blocked_edges":[],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":220.0,"runoff_proxy_mm":172.7,"runoff_fraction":0.785,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.25,"trend_mh":0.06,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":91,"category":"critical","components":[{"id":"rainfall","label":"24-hour rainfall","points":36,"max":36},{"id":"saturation","label":"Soil saturation","points":17.1,"max":18},{"id":"headroom","label":"River reference margin","points":24.5,"max":28},{"id":"rise","label":"River rise assumption","points":13.5,"max":18}],"trace":[{"hour":0,"central_m":-0.25,"lower_m":-0.25,"upper_m":-0.25},{"hour":1,"central_m":-0.117,"lower_m":-0.132,"upper_m":-0.103},{"hour":2,"central_m":0.008,"lower_m":-0.021,"upper_m":0.036},{"hour":3,"central_m":0.126,"lower_m":0.083,"upper_m":0.169},{"hour":4,"central_m":0.238,"lower_m":0.181,"upper_m":0.295},{"hour":5,"central_m":0.344,"lower_m":0.273,"upper_m":0.416},{"hour":6,"central_m":0.446,"lower_m":0.361,"upper_m":0.532},{"hour":7,"central_m":0.543,"lower_m":0.444,"upper_m":0.643},{"hour":8,"central_m":0.637,"lower_m":0.523,"upper_m":0.751},{"hour":9,"central_m":0.727,"lower_m":0.599,"upper_m":0.855},{"hour":10,"central_m":0.813,"lower_m":0.671,"upper_m":0.956},{"hour":11,"central_m":0.897,"lower_m":0.741,"upper_m":1.054},{"hour":12,"central_m":0.979,"lower_m":0.808,"upper_m":1.15},{"hour":13,"central_m":1.058,"lower_m":0.873,"upper_m":1.243},{"hour":14,"central_m":1.135,"lower_m":0.936,"upper_m":1.334},{"hour":15,"central_m":1.21,"lower_m":0.997,"upper_m":1.424},{"hour":16,"central_m":1.284,"lower_m":1.056,"upper_m":1.512},{"hour":17,"central_m":1.356,"lower_m":1.114,"upper_m":1.598},{"hour":18,"central_m":1.427,"lower_m":1.171,"upper_m":1.684},{"hour":19,"central_m":1.497,"lower_m":1.227,"upper_m":1.768},{"hour":20,"central_m":1.566,"lower_m":1.281,"upper_m":1.851},{"hour":21,"central_m":1.634,"lower_m":1.335,"upper_m":1.933},{"hour":22,"central_m":1.701,"lower_m":1.388,"upper_m":2.014},{"hour":23,"central_m":1.767,"lower_m":1.44,"upper_m":2.095},{"hour":24,"central_m":1.833,"lower_m":1.491,"upper_m":2.175},{"hour":25,"central_m":1.898,"lower_m":1.542,"upper_m":2.254},{"hour":26,"central_m":1.962,"lower_m":1.592,"upper_m":2.333},{"hour":27,"central_m":2.026,"lower_m":1.642,"upper_m":2.411},{"hour":28,"central_m":2.09,"lower_m":1.691,"upper_m":2.489},{"hour":29,"central_m":2.153,"lower_m":1.74,"upper_m":2.566},{"hour":30,"central_m":2.216,"lower_m":1.789,"upper_m":2.643},{"hour":31,"central_m":2.279,"lower_m":1.837,"upper_m":2.72},{"hour":32,"central_m":2.341,"lower_m":1.885,"upper_m":2.797},{"hour":33,"central_m":2.403,"lower_m":1.933,"upper_m":2.873},{"hour":34,"central_m":2.465,"lower_m":1.981,"upper_m":2.949},{"hour":35,"central_m":2.527,"lower_m":2.028,"upper_m":3.025},{"hour":36,"central_m":2.588,"lower_m":2.075,"upper_m":3.101},{"hour":37,"central_m":2.649,"lower_m":2.123,"upper_m":3.176},{"hour":38,"central_m":2.711,"lower_m":2.17,"upper_m":3.252},{"hour":39,"central_m":2.772,"lower_m":2.216,"upper_m":3.327},{"hour":40,"central_m":2.833,"lower_m":2.263,"upper_m":3.402},{"hour":41,"central_m":2.894,"lower_m":2.31,"upper_m":3.477},{"hour":42,"central_m":2.954,"lower_m":2.356,"upper_m":3.552},{"hour":43,"central_m":3.015,"lower_m":2.403,"upper_m":3.627},{"hour":44,"central_m":3.076,"lower_m":2.449,"upper_m":3.702},{"hour":45,"central_m":3.136,"lower_m":2.495,"upper_m":3.777},{"hour":46,"central_m":3.197,"lower_m":2.542,"upper_m":3.852},{"hour":47,"central_m":3.257,"lower_m":2.588,"upper_m":3.926},{"hour":48,"central_m":3.317,"lower_m":2.634,"upper_m":4.001}],"reference_crossing_h":2,"peak_relative_m":3.317,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"exercise-route","route":{"destination":"Practice hub A","destination_id":"hub-a","capacity":180,"minutes":18,"weighted_cost":22.0,"nodes":["origin","junction","hub-a"],"edges":["north","ridge"]},"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Kurigram. The illustrative screening index is 91/100 (critical). The scenario assumes 220 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — কুড়িগ্রাম। অনুশীলনভিত্তিক ঝুঁকি সূচক 91/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 220 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery"],"provenance":"synthetic"}},{"id":"kurigram-closed-6","preset":"closed","scenario":{"region":"kurigram","rain_mm":86.0,"soil_pct":69.0,"margin_m":1.1,"trend_mh":0.021,"horizon_h":6,"blocked_edges":["bridge","north"],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":86.0,"runoff_proxy_mm":51.86,"runoff_fraction":0.603,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":1.1,"trend_mh":0.021,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":45,"category":"watch","components":[{"id":"rainfall","label":"24-hour rainfall","points":15.48,"max":36},{"id":"saturation","label":"Soil saturation","points":12.42,"max":18},{"id":"headroom","label":"River reference margin","points":12.6,"max":28},{"id":"rise","label":"River rise assumption","points":4.73,"max":18}],"trace":[{"hour":0,"central_m":-1.1,"lower_m":-1.1,"upper_m":-1.1},{"hour":1,"central_m":-1.057,"lower_m":-1.064,"upper_m":-1.05},{"hour":2,"central_m":-1.017,"lower_m":-1.031,"upper_m":-1.002},{"hour":3,"central_m":-0.978,"lower_m":-1.0,"upper_m":-0.957},{"hour":4,"central_m":-0.942,"lower_m":-0.97,"upper_m":-0.913},{"hour":5,"central_m":-0.907,"lower_m":-0.943,"upper_m":-0.871},{"hour":6,"central_m":-0.873,"lower_m":-0.916,"upper_m":-0.83}],"reference_crossing_h":null,"peak_relative_m":-0.873,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"no-feasible-route","route":null,"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":["bridge","north"],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Kurigram. The illustrative screening index is 45/100 (watch). The scenario assumes 86 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — কুড়িগ্রাম। অনুশীলনভিত্তিক ঝুঁকি সূচক 45/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 86 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery","No feasible route for the exercise inputs"],"provenance":"synthetic"}},{"id":"kurigram-closed-12","preset":"closed","scenario":{"region":"kurigram","rain_mm":86.0,"soil_pct":69.0,"margin_m":1.1,"trend_mh":0.021,"horizon_h":12,"blocked_edges":["bridge","north"],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":86.0,"runoff_proxy_mm":51.86,"runoff_fraction":0.603,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":1.1,"trend_mh":0.021,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":45,"category":"watch","components":[{"id":"rainfall","label":"24-hour rainfall","points":15.48,"max":36},{"id":"saturation","label":"Soil saturation","points":12.42,"max":18},{"id":"headroom","label":"River reference margin","points":12.6,"max":28},{"id":"rise","label":"River rise assumption","points":4.73,"max":18}],"trace":[{"hour":0,"central_m":-1.1,"lower_m":-1.1,"upper_m":-1.1},{"hour":1,"central_m":-1.057,"lower_m":-1.064,"upper_m":-1.05},{"hour":2,"central_m":-1.017,"lower_m":-1.031,"upper_m":-1.002},{"hour":3,"central_m":-0.978,"lower_m":-1.0,"upper_m":-0.957},{"hour":4,"central_m":-0.942,"lower_m":-0.97,"upper_m":-0.913},{"hour":5,"central_m":-0.907,"lower_m":-0.943,"upper_m":-0.871},{"hour":6,"central_m":-0.873,"lower_m":-0.916,"upper_m":-0.83},{"hour":7,"central_m":-0.841,"lower_m":-0.891,"upper_m":-0.791},{"hour":8,"central_m":-0.81,"lower_m":-0.867,"upper_m":-0.752},{"hour":9,"central_m":-0.78,"lower_m":-0.845,"upper_m":-0.715},{"hour":10,"central_m":-0.751,"lower_m":-0.823,"upper_m":-0.679},{"hour":11,"central_m":-0.723,"lower_m":-0.802,"upper_m":-0.644},{"hour":12,"central_m":-0.695,"lower_m":-0.782,"upper_m":-0.609}],"reference_crossing_h":null,"peak_relative_m":-0.695,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"no-feasible-route","route":null,"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":["bridge","north"],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Kurigram. The illustrative screening index is 45/100 (watch). The scenario assumes 86 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — কুড়িগ্রাম। অনুশীলনভিত্তিক ঝুঁকি সূচক 45/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 86 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery","No feasible route for the exercise inputs"],"provenance":"synthetic"}},{"id":"kurigram-closed-24","preset":"closed","scenario":{"region":"kurigram","rain_mm":86.0,"soil_pct":69.0,"margin_m":1.1,"trend_mh":0.021,"horizon_h":24,"blocked_edges":["bridge","north"],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":86.0,"runoff_proxy_mm":51.86,"runoff_fraction":0.603,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":1.1,"trend_mh":0.021,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":45,"category":"watch","components":[{"id":"rainfall","label":"24-hour rainfall","points":15.48,"max":36},{"id":"saturation","label":"Soil saturation","points":12.42,"max":18},{"id":"headroom","label":"River reference margin","points":12.6,"max":28},{"id":"rise","label":"River rise assumption","points":4.73,"max":18}],"trace":[{"hour":0,"central_m":-1.1,"lower_m":-1.1,"upper_m":-1.1},{"hour":1,"central_m":-1.057,"lower_m":-1.064,"upper_m":-1.05},{"hour":2,"central_m":-1.017,"lower_m":-1.031,"upper_m":-1.002},{"hour":3,"central_m":-0.978,"lower_m":-1.0,"upper_m":-0.957},{"hour":4,"central_m":-0.942,"lower_m":-0.97,"upper_m":-0.913},{"hour":5,"central_m":-0.907,"lower_m":-0.943,"upper_m":-0.871},{"hour":6,"central_m":-0.873,"lower_m":-0.916,"upper_m":-0.83},{"hour":7,"central_m":-0.841,"lower_m":-0.891,"upper_m":-0.791},{"hour":8,"central_m":-0.81,"lower_m":-0.867,"upper_m":-0.752},{"hour":9,"central_m":-0.78,"lower_m":-0.845,"upper_m":-0.715},{"hour":10,"central_m":-0.751,"lower_m":-0.823,"upper_m":-0.679},{"hour":11,"central_m":-0.723,"lower_m":-0.802,"upper_m":-0.644},{"hour":12,"central_m":-0.695,"lower_m":-0.782,"upper_m":-0.609},{"hour":13,"central_m":-0.668,"lower_m":-0.762,"upper_m":-0.575},{"hour":14,"central_m":-0.642,"lower_m":-0.743,"upper_m":-0.542},{"hour":15,"central_m":-0.617,"lower_m":-0.725,"upper_m":-0.509},{"hour":16,"central_m":-0.592,"lower_m":-0.707,"upper_m":-0.477},{"hour":17,"central_m":-0.567,"lower_m":-0.689,"upper_m":-0.445},{"hour":18,"central_m":-0.543,"lower_m":-0.672,"upper_m":-0.413},{"hour":19,"central_m":-0.519,"lower_m":-0.655,"upper_m":-0.382},{"hour":20,"central_m":-0.495,"lower_m":-0.639,"upper_m":-0.351},{"hour":21,"central_m":-0.472,"lower_m":-0.623,"upper_m":-0.321},{"hour":22,"central_m":-0.449,"lower_m":-0.607,"upper_m":-0.29},{"hour":23,"central_m":-0.426,"lower_m":-0.591,"upper_m":-0.26},{"hour":24,"central_m":-0.403,"lower_m":-0.576,"upper_m":-0.23}],"reference_crossing_h":null,"peak_relative_m":-0.403,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"no-feasible-route","route":null,"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":["bridge","north"],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Kurigram. The illustrative screening index is 45/100 (watch). The scenario assumes 86 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — কুড়িগ্রাম। অনুশীলনভিত্তিক ঝুঁকি সূচক 45/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 86 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery","No feasible route for the exercise inputs"],"provenance":"synthetic"}},{"id":"kurigram-closed-48","preset":"closed","scenario":{"region":"kurigram","rain_mm":86.0,"soil_pct":69.0,"margin_m":1.1,"trend_mh":0.021,"horizon_h":48,"blocked_edges":["bridge","north"],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":86.0,"runoff_proxy_mm":51.86,"runoff_fraction":0.603,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":1.1,"trend_mh":0.021,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":45,"category":"watch","components":[{"id":"rainfall","label":"24-hour rainfall","points":15.48,"max":36},{"id":"saturation","label":"Soil saturation","points":12.42,"max":18},{"id":"headroom","label":"River reference margin","points":12.6,"max":28},{"id":"rise","label":"River rise assumption","points":4.73,"max":18}],"trace":[{"hour":0,"central_m":-1.1,"lower_m":-1.1,"upper_m":-1.1},{"hour":1,"central_m":-1.057,"lower_m":-1.064,"upper_m":-1.05},{"hour":2,"central_m":-1.017,"lower_m":-1.031,"upper_m":-1.002},{"hour":3,"central_m":-0.978,"lower_m":-1.0,"upper_m":-0.957},{"hour":4,"central_m":-0.942,"lower_m":-0.97,"upper_m":-0.913},{"hour":5,"central_m":-0.907,"lower_m":-0.943,"upper_m":-0.871},{"hour":6,"central_m":-0.873,"lower_m":-0.916,"upper_m":-0.83},{"hour":7,"central_m":-0.841,"lower_m":-0.891,"upper_m":-0.791},{"hour":8,"central_m":-0.81,"lower_m":-0.867,"upper_m":-0.752},{"hour":9,"central_m":-0.78,"lower_m":-0.845,"upper_m":-0.715},{"hour":10,"central_m":-0.751,"lower_m":-0.823,"upper_m":-0.679},{"hour":11,"central_m":-0.723,"lower_m":-0.802,"upper_m":-0.644},{"hour":12,"central_m":-0.695,"lower_m":-0.782,"upper_m":-0.609},{"hour":13,"central_m":-0.668,"lower_m":-0.762,"upper_m":-0.575},{"hour":14,"central_m":-0.642,"lower_m":-0.743,"upper_m":-0.542},{"hour":15,"central_m":-0.617,"lower_m":-0.725,"upper_m":-0.509},{"hour":16,"central_m":-0.592,"lower_m":-0.707,"upper_m":-0.477},{"hour":17,"central_m":-0.567,"lower_m":-0.689,"upper_m":-0.445},{"hour":18,"central_m":-0.543,"lower_m":-0.672,"upper_m":-0.413},{"hour":19,"central_m":-0.519,"lower_m":-0.655,"upper_m":-0.382},{"hour":20,"central_m":-0.495,"lower_m":-0.639,"upper_m":-0.351},{"hour":21,"central_m":-0.472,"lower_m":-0.623,"upper_m":-0.321},{"hour":22,"central_m":-0.449,"lower_m":-0.607,"upper_m":-0.29},{"hour":23,"central_m":-0.426,"lower_m":-0.591,"upper_m":-0.26},{"hour":24,"central_m":-0.403,"lower_m":-0.576,"upper_m":-0.23},{"hour":25,"central_m":-0.38,"lower_m":-0.56,"upper_m":-0.201},{"hour":26,"central_m":-0.358,"lower_m":-0.545,"upper_m":-0.171},{"hour":27,"central_m":-0.336,"lower_m":-0.53,"upper_m":-0.142},{"hour":28,"central_m":-0.314,"lower_m":-0.515,"upper_m":-0.112},{"hour":29,"central_m":-0.292,"lower_m":-0.5,"upper_m":-0.083},{"hour":30,"central_m":-0.27,"lower_m":-0.486,"upper_m":-0.054},{"hour":31,"central_m":-0.248,"lower_m":-0.471,"upper_m":-0.025},{"hour":32,"central_m":-0.226,"lower_m":-0.457,"upper_m":0.004},{"hour":33,"central_m":-0.205,"lower_m":-0.442,"upper_m":0.032},{"hour":34,"central_m":-0.183,"lower_m":-0.428,"upper_m":0.061},{"hour":35,"central_m":-0.162,"lower_m":-0.414,"upper_m":0.09},{"hour":36,"central_m":-0.14,"lower_m":-0.399,"upper_m":0.119},{"hour":37,"central_m":-0.119,"lower_m":-0.385,"upper_m":0.147},{"hour":38,"central_m":-0.098,"lower_m":-0.371,"upper_m":0.176},{"hour":39,"central_m":-0.076,"lower_m":-0.357,"upper_m":0.204},{"hour":40,"central_m":-0.055,"lower_m":-0.343,"upper_m":0.233},{"hour":41,"central_m":-0.034,"lower_m":-0.329,"upper_m":0.261},{"hour":42,"central_m":-0.013,"lower_m":-0.315,"upper_m":0.29},{"hour":43,"central_m":0.009,"lower_m":-0.301,"upper_m":0.318},{"hour":44,"central_m":0.03,"lower_m":-0.287,"upper_m":0.346},{"hour":45,"central_m":0.051,"lower_m":-0.273,"upper_m":0.375},{"hour":46,"central_m":0.072,"lower_m":-0.259,"upper_m":0.403},{"hour":47,"central_m":0.093,"lower_m":-0.245,"upper_m":0.431},{"hour":48,"central_m":0.114,"lower_m":-0.231,"upper_m":0.46}],"reference_crossing_h":43,"peak_relative_m":0.114,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"no-feasible-route","route":null,"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":["bridge","north"],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Kurigram. The illustrative screening index is 45/100 (watch). The scenario assumes 86 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — কুড়িগ্রাম। অনুশীলনভিত্তিক ঝুঁকি সূচক 45/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 86 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery","No feasible route for the exercise inputs"],"provenance":"synthetic"}},{"id":"kurigram-capacity-6","preset":"capacity","scenario":{"region":"kurigram","rain_mm":86.0,"soil_pct":69.0,"margin_m":1.1,"trend_mh":0.021,"horizon_h":6,"blocked_edges":[],"people":600,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":86.0,"runoff_proxy_mm":51.86,"runoff_fraction":0.603,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":1.1,"trend_mh":0.021,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":45,"category":"watch","components":[{"id":"rainfall","label":"24-hour rainfall","points":15.48,"max":36},{"id":"saturation","label":"Soil saturation","points":12.42,"max":18},{"id":"headroom","label":"River reference margin","points":12.6,"max":28},{"id":"rise","label":"River rise assumption","points":4.73,"max":18}],"trace":[{"hour":0,"central_m":-1.1,"lower_m":-1.1,"upper_m":-1.1},{"hour":1,"central_m":-1.057,"lower_m":-1.064,"upper_m":-1.05},{"hour":2,"central_m":-1.017,"lower_m":-1.031,"upper_m":-1.002},{"hour":3,"central_m":-0.978,"lower_m":-1.0,"upper_m":-0.957},{"hour":4,"central_m":-0.942,"lower_m":-0.97,"upper_m":-0.913},{"hour":5,"central_m":-0.907,"lower_m":-0.943,"upper_m":-0.871},{"hour":6,"central_m":-0.873,"lower_m":-0.916,"upper_m":-0.83}],"reference_crossing_h":null,"peak_relative_m":-0.873,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"no-feasible-route","route":null,"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":600,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Kurigram. The illustrative screening index is 45/100 (watch). The scenario assumes 86 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — কুড়িগ্রাম। অনুশীলনভিত্তিক ঝুঁকি সূচক 45/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 86 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery","No feasible route for the exercise inputs"],"provenance":"synthetic"}},{"id":"kurigram-capacity-12","preset":"capacity","scenario":{"region":"kurigram","rain_mm":86.0,"soil_pct":69.0,"margin_m":1.1,"trend_mh":0.021,"horizon_h":12,"blocked_edges":[],"people":600,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":86.0,"runoff_proxy_mm":51.86,"runoff_fraction":0.603,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":1.1,"trend_mh":0.021,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":45,"category":"watch","components":[{"id":"rainfall","label":"24-hour rainfall","points":15.48,"max":36},{"id":"saturation","label":"Soil saturation","points":12.42,"max":18},{"id":"headroom","label":"River reference margin","points":12.6,"max":28},{"id":"rise","label":"River rise assumption","points":4.73,"max":18}],"trace":[{"hour":0,"central_m":-1.1,"lower_m":-1.1,"upper_m":-1.1},{"hour":1,"central_m":-1.057,"lower_m":-1.064,"upper_m":-1.05},{"hour":2,"central_m":-1.017,"lower_m":-1.031,"upper_m":-1.002},{"hour":3,"central_m":-0.978,"lower_m":-1.0,"upper_m":-0.957},{"hour":4,"central_m":-0.942,"lower_m":-0.97,"upper_m":-0.913},{"hour":5,"central_m":-0.907,"lower_m":-0.943,"upper_m":-0.871},{"hour":6,"central_m":-0.873,"lower_m":-0.916,"upper_m":-0.83},{"hour":7,"central_m":-0.841,"lower_m":-0.891,"upper_m":-0.791},{"hour":8,"central_m":-0.81,"lower_m":-0.867,"upper_m":-0.752},{"hour":9,"central_m":-0.78,"lower_m":-0.845,"upper_m":-0.715},{"hour":10,"central_m":-0.751,"lower_m":-0.823,"upper_m":-0.679},{"hour":11,"central_m":-0.723,"lower_m":-0.802,"upper_m":-0.644},{"hour":12,"central_m":-0.695,"lower_m":-0.782,"upper_m":-0.609}],"reference_crossing_h":null,"peak_relative_m":-0.695,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"no-feasible-route","route":null,"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":600,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Kurigram. The illustrative screening index is 45/100 (watch). The scenario assumes 86 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — কুড়িগ্রাম। অনুশীলনভিত্তিক ঝুঁকি সূচক 45/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 86 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery","No feasible route for the exercise inputs"],"provenance":"synthetic"}},{"id":"kurigram-capacity-24","preset":"capacity","scenario":{"region":"kurigram","rain_mm":86.0,"soil_pct":69.0,"margin_m":1.1,"trend_mh":0.021,"horizon_h":24,"blocked_edges":[],"people":600,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":86.0,"runoff_proxy_mm":51.86,"runoff_fraction":0.603,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":1.1,"trend_mh":0.021,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":45,"category":"watch","components":[{"id":"rainfall","label":"24-hour rainfall","points":15.48,"max":36},{"id":"saturation","label":"Soil saturation","points":12.42,"max":18},{"id":"headroom","label":"River reference margin","points":12.6,"max":28},{"id":"rise","label":"River rise assumption","points":4.73,"max":18}],"trace":[{"hour":0,"central_m":-1.1,"lower_m":-1.1,"upper_m":-1.1},{"hour":1,"central_m":-1.057,"lower_m":-1.064,"upper_m":-1.05},{"hour":2,"central_m":-1.017,"lower_m":-1.031,"upper_m":-1.002},{"hour":3,"central_m":-0.978,"lower_m":-1.0,"upper_m":-0.957},{"hour":4,"central_m":-0.942,"lower_m":-0.97,"upper_m":-0.913},{"hour":5,"central_m":-0.907,"lower_m":-0.943,"upper_m":-0.871},{"hour":6,"central_m":-0.873,"lower_m":-0.916,"upper_m":-0.83},{"hour":7,"central_m":-0.841,"lower_m":-0.891,"upper_m":-0.791},{"hour":8,"central_m":-0.81,"lower_m":-0.867,"upper_m":-0.752},{"hour":9,"central_m":-0.78,"lower_m":-0.845,"upper_m":-0.715},{"hour":10,"central_m":-0.751,"lower_m":-0.823,"upper_m":-0.679},{"hour":11,"central_m":-0.723,"lower_m":-0.802,"upper_m":-0.644},{"hour":12,"central_m":-0.695,"lower_m":-0.782,"upper_m":-0.609},{"hour":13,"central_m":-0.668,"lower_m":-0.762,"upper_m":-0.575},{"hour":14,"central_m":-0.642,"lower_m":-0.743,"upper_m":-0.542},{"hour":15,"central_m":-0.617,"lower_m":-0.725,"upper_m":-0.509},{"hour":16,"central_m":-0.592,"lower_m":-0.707,"upper_m":-0.477},{"hour":17,"central_m":-0.567,"lower_m":-0.689,"upper_m":-0.445},{"hour":18,"central_m":-0.543,"lower_m":-0.672,"upper_m":-0.413},{"hour":19,"central_m":-0.519,"lower_m":-0.655,"upper_m":-0.382},{"hour":20,"central_m":-0.495,"lower_m":-0.639,"upper_m":-0.351},{"hour":21,"central_m":-0.472,"lower_m":-0.623,"upper_m":-0.321},{"hour":22,"central_m":-0.449,"lower_m":-0.607,"upper_m":-0.29},{"hour":23,"central_m":-0.426,"lower_m":-0.591,"upper_m":-0.26},{"hour":24,"central_m":-0.403,"lower_m":-0.576,"upper_m":-0.23}],"reference_crossing_h":null,"peak_relative_m":-0.403,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"no-feasible-route","route":null,"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":600,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Kurigram. The illustrative screening index is 45/100 (watch). The scenario assumes 86 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — কুড়িগ্রাম। অনুশীলনভিত্তিক ঝুঁকি সূচক 45/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 86 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery","No feasible route for the exercise inputs"],"provenance":"synthetic"}},{"id":"kurigram-capacity-48","preset":"capacity","scenario":{"region":"kurigram","rain_mm":86.0,"soil_pct":69.0,"margin_m":1.1,"trend_mh":0.021,"horizon_h":48,"blocked_edges":[],"people":600,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":86.0,"runoff_proxy_mm":51.86,"runoff_fraction":0.603,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":1.1,"trend_mh":0.021,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":45,"category":"watch","components":[{"id":"rainfall","label":"24-hour rainfall","points":15.48,"max":36},{"id":"saturation","label":"Soil saturation","points":12.42,"max":18},{"id":"headroom","label":"River reference margin","points":12.6,"max":28},{"id":"rise","label":"River rise assumption","points":4.73,"max":18}],"trace":[{"hour":0,"central_m":-1.1,"lower_m":-1.1,"upper_m":-1.1},{"hour":1,"central_m":-1.057,"lower_m":-1.064,"upper_m":-1.05},{"hour":2,"central_m":-1.017,"lower_m":-1.031,"upper_m":-1.002},{"hour":3,"central_m":-0.978,"lower_m":-1.0,"upper_m":-0.957},{"hour":4,"central_m":-0.942,"lower_m":-0.97,"upper_m":-0.913},{"hour":5,"central_m":-0.907,"lower_m":-0.943,"upper_m":-0.871},{"hour":6,"central_m":-0.873,"lower_m":-0.916,"upper_m":-0.83},{"hour":7,"central_m":-0.841,"lower_m":-0.891,"upper_m":-0.791},{"hour":8,"central_m":-0.81,"lower_m":-0.867,"upper_m":-0.752},{"hour":9,"central_m":-0.78,"lower_m":-0.845,"upper_m":-0.715},{"hour":10,"central_m":-0.751,"lower_m":-0.823,"upper_m":-0.679},{"hour":11,"central_m":-0.723,"lower_m":-0.802,"upper_m":-0.644},{"hour":12,"central_m":-0.695,"lower_m":-0.782,"upper_m":-0.609},{"hour":13,"central_m":-0.668,"lower_m":-0.762,"upper_m":-0.575},{"hour":14,"central_m":-0.642,"lower_m":-0.743,"upper_m":-0.542},{"hour":15,"central_m":-0.617,"lower_m":-0.725,"upper_m":-0.509},{"hour":16,"central_m":-0.592,"lower_m":-0.707,"upper_m":-0.477},{"hour":17,"central_m":-0.567,"lower_m":-0.689,"upper_m":-0.445},{"hour":18,"central_m":-0.543,"lower_m":-0.672,"upper_m":-0.413},{"hour":19,"central_m":-0.519,"lower_m":-0.655,"upper_m":-0.382},{"hour":20,"central_m":-0.495,"lower_m":-0.639,"upper_m":-0.351},{"hour":21,"central_m":-0.472,"lower_m":-0.623,"upper_m":-0.321},{"hour":22,"central_m":-0.449,"lower_m":-0.607,"upper_m":-0.29},{"hour":23,"central_m":-0.426,"lower_m":-0.591,"upper_m":-0.26},{"hour":24,"central_m":-0.403,"lower_m":-0.576,"upper_m":-0.23},{"hour":25,"central_m":-0.38,"lower_m":-0.56,"upper_m":-0.201},{"hour":26,"central_m":-0.358,"lower_m":-0.545,"upper_m":-0.171},{"hour":27,"central_m":-0.336,"lower_m":-0.53,"upper_m":-0.142},{"hour":28,"central_m":-0.314,"lower_m":-0.515,"upper_m":-0.112},{"hour":29,"central_m":-0.292,"lower_m":-0.5,"upper_m":-0.083},{"hour":30,"central_m":-0.27,"lower_m":-0.486,"upper_m":-0.054},{"hour":31,"central_m":-0.248,"lower_m":-0.471,"upper_m":-0.025},{"hour":32,"central_m":-0.226,"lower_m":-0.457,"upper_m":0.004},{"hour":33,"central_m":-0.205,"lower_m":-0.442,"upper_m":0.032},{"hour":34,"central_m":-0.183,"lower_m":-0.428,"upper_m":0.061},{"hour":35,"central_m":-0.162,"lower_m":-0.414,"upper_m":0.09},{"hour":36,"central_m":-0.14,"lower_m":-0.399,"upper_m":0.119},{"hour":37,"central_m":-0.119,"lower_m":-0.385,"upper_m":0.147},{"hour":38,"central_m":-0.098,"lower_m":-0.371,"upper_m":0.176},{"hour":39,"central_m":-0.076,"lower_m":-0.357,"upper_m":0.204},{"hour":40,"central_m":-0.055,"lower_m":-0.343,"upper_m":0.233},{"hour":41,"central_m":-0.034,"lower_m":-0.329,"upper_m":0.261},{"hour":42,"central_m":-0.013,"lower_m":-0.315,"upper_m":0.29},{"hour":43,"central_m":0.009,"lower_m":-0.301,"upper_m":0.318},{"hour":44,"central_m":0.03,"lower_m":-0.287,"upper_m":0.346},{"hour":45,"central_m":0.051,"lower_m":-0.273,"upper_m":0.375},{"hour":46,"central_m":0.072,"lower_m":-0.259,"upper_m":0.403},{"hour":47,"central_m":0.093,"lower_m":-0.245,"upper_m":0.431},{"hour":48,"central_m":0.114,"lower_m":-0.231,"upper_m":0.46}],"reference_crossing_h":43,"peak_relative_m":0.114,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"no-feasible-route","route":null,"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":600,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Kurigram. The illustrative screening index is 45/100 (watch). The scenario assumes 86 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — কুড়িগ্রাম। অনুশীলনভিত্তিক ঝুঁকি সূচক 45/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 86 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery","No feasible route for the exercise inputs"],"provenance":"synthetic"}},{"id":"sirajganj-baseline-6","preset":"baseline","scenario":{"region":"sirajganj","rain_mm":64.0,"soil_pct":62.0,"margin_m":1.55,"trend_mh":0.012,"horizon_h":6,"blocked_edges":[],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":64.0,"runoff_proxy_mm":35.46,"runoff_fraction":0.554,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":1.55,"trend_mh":0.012,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":32,"category":"watch","components":[{"id":"rainfall","label":"24-hour rainfall","points":11.52,"max":36},{"id":"saturation","label":"Soil saturation","points":11.16,"max":18},{"id":"headroom","label":"River reference margin","points":6.3,"max":28},{"id":"rise","label":"River rise assumption","points":2.7,"max":18}],"trace":[{"hour":0,"central_m":-1.55,"lower_m":-1.55,"upper_m":-1.55},{"hour":1,"central_m":-1.523,"lower_m":-1.529,"upper_m":-1.517},{"hour":2,"central_m":-1.498,"lower_m":-1.51,"upper_m":-1.485},{"hour":3,"central_m":-1.474,"lower_m":-1.492,"upper_m":-1.455},{"hour":4,"central_m":-1.451,"lower_m":-1.476,"upper_m":-1.426},{"hour":5,"central_m":-1.43,"lower_m":-1.461,"upper_m":-1.398},{"hour":6,"central_m":-1.409,"lower_m":-1.446,"upper_m":-1.372}],"reference_crossing_h":null,"peak_relative_m":-1.409,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"exercise-route","route":{"destination":"Practice hub B","destination_id":"hub-b","capacity":500,"minutes":12,"weighted_cost":17.25,"nodes":["origin","bridge","hub-b"],"edges":["bridge","south"]},"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Sirajganj. The illustrative screening index is 32/100 (watch). The scenario assumes 64 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — সিরাজগঞ্জ। অনুশীলনভিত্তিক ঝুঁকি সূচক 32/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 64 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery"],"provenance":"synthetic"}},{"id":"sirajganj-baseline-12","preset":"baseline","scenario":{"region":"sirajganj","rain_mm":64.0,"soil_pct":62.0,"margin_m":1.55,"trend_mh":0.012,"horizon_h":12,"blocked_edges":[],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":64.0,"runoff_proxy_mm":35.46,"runoff_fraction":0.554,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":1.55,"trend_mh":0.012,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":32,"category":"watch","components":[{"id":"rainfall","label":"24-hour rainfall","points":11.52,"max":36},{"id":"saturation","label":"Soil saturation","points":11.16,"max":18},{"id":"headroom","label":"River reference margin","points":6.3,"max":28},{"id":"rise","label":"River rise assumption","points":2.7,"max":18}],"trace":[{"hour":0,"central_m":-1.55,"lower_m":-1.55,"upper_m":-1.55},{"hour":1,"central_m":-1.523,"lower_m":-1.529,"upper_m":-1.517},{"hour":2,"central_m":-1.498,"lower_m":-1.51,"upper_m":-1.485},{"hour":3,"central_m":-1.474,"lower_m":-1.492,"upper_m":-1.455},{"hour":4,"central_m":-1.451,"lower_m":-1.476,"upper_m":-1.426},{"hour":5,"central_m":-1.43,"lower_m":-1.461,"upper_m":-1.398},{"hour":6,"central_m":-1.409,"lower_m":-1.446,"upper_m":-1.372},{"hour":7,"central_m":-1.389,"lower_m":-1.433,"upper_m":-1.346},{"hour":8,"central_m":-1.37,"lower_m":-1.42,"upper_m":-1.321},{"hour":9,"central_m":-1.352,"lower_m":-1.408,"upper_m":-1.296},{"hour":10,"central_m":-1.335,"lower_m":-1.397,"upper_m":-1.273},{"hour":11,"central_m":-1.318,"lower_m":-1.387,"upper_m":-1.249},{"hour":12,"central_m":-1.302,"lower_m":-1.376,"upper_m":-1.227}],"reference_crossing_h":null,"peak_relative_m":-1.302,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"exercise-route","route":{"destination":"Practice hub B","destination_id":"hub-b","capacity":500,"minutes":12,"weighted_cost":17.25,"nodes":["origin","bridge","hub-b"],"edges":["bridge","south"]},"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Sirajganj. The illustrative screening index is 32/100 (watch). The scenario assumes 64 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — সিরাজগঞ্জ। অনুশীলনভিত্তিক ঝুঁকি সূচক 32/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 64 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery"],"provenance":"synthetic"}},{"id":"sirajganj-baseline-24","preset":"baseline","scenario":{"region":"sirajganj","rain_mm":64.0,"soil_pct":62.0,"margin_m":1.55,"trend_mh":0.012,"horizon_h":24,"blocked_edges":[],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":64.0,"runoff_proxy_mm":35.46,"runoff_fraction":0.554,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":1.55,"trend_mh":0.012,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":32,"category":"watch","components":[{"id":"rainfall","label":"24-hour rainfall","points":11.52,"max":36},{"id":"saturation","label":"Soil saturation","points":11.16,"max":18},{"id":"headroom","label":"River reference margin","points":6.3,"max":28},{"id":"rise","label":"River rise assumption","points":2.7,"max":18}],"trace":[{"hour":0,"central_m":-1.55,"lower_m":-1.55,"upper_m":-1.55},{"hour":1,"central_m":-1.523,"lower_m":-1.529,"upper_m":-1.517},{"hour":2,"central_m":-1.498,"lower_m":-1.51,"upper_m":-1.485},{"hour":3,"central_m":-1.474,"lower_m":-1.492,"upper_m":-1.455},{"hour":4,"central_m":-1.451,"lower_m":-1.476,"upper_m":-1.426},{"hour":5,"central_m":-1.43,"lower_m":-1.461,"upper_m":-1.398},{"hour":6,"central_m":-1.409,"lower_m":-1.446,"upper_m":-1.372},{"hour":7,"central_m":-1.389,"lower_m":-1.433,"upper_m":-1.346},{"hour":8,"central_m":-1.37,"lower_m":-1.42,"upper_m":-1.321},{"hour":9,"central_m":-1.352,"lower_m":-1.408,"upper_m":-1.296},{"hour":10,"central_m":-1.335,"lower_m":-1.397,"upper_m":-1.273},{"hour":11,"central_m":-1.318,"lower_m":-1.387,"upper_m":-1.249},{"hour":12,"central_m":-1.302,"lower_m":-1.376,"upper_m":-1.227},{"hour":13,"central_m":-1.286,"lower_m":-1.367,"upper_m":-1.205},{"hour":14,"central_m":-1.27,"lower_m":-1.357,"upper_m":-1.183},{"hour":15,"central_m":-1.255,"lower_m":-1.348,"upper_m":-1.161},{"hour":16,"central_m":-1.24,"lower_m":-1.34,"upper_m":-1.14},{"hour":17,"central_m":-1.226,"lower_m":-1.332,"upper_m":-1.12},{"hour":18,"central_m":-1.211,"lower_m":-1.324,"upper_m":-1.099},{"hour":19,"central_m":-1.197,"lower_m":-1.316,"upper_m":-1.079},{"hour":20,"central_m":-1.184,"lower_m":-1.308,"upper_m":-1.059},{"hour":21,"central_m":-1.17,"lower_m":-1.301,"upper_m":-1.039},{"hour":22,"central_m":-1.156,"lower_m":-1.294,"upper_m":-1.019},{"hour":23,"central_m":-1.143,"lower_m":-1.287,"upper_m":-1.0},{"hour":24,"central_m":-1.13,"lower_m":-1.28,"upper_m":-0.98}],"reference_crossing_h":null,"peak_relative_m":-1.13,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"exercise-route","route":{"destination":"Practice hub B","destination_id":"hub-b","capacity":500,"minutes":12,"weighted_cost":17.25,"nodes":["origin","bridge","hub-b"],"edges":["bridge","south"]},"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Sirajganj. The illustrative screening index is 32/100 (watch). The scenario assumes 64 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — সিরাজগঞ্জ। অনুশীলনভিত্তিক ঝুঁকি সূচক 32/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 64 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery"],"provenance":"synthetic"}},{"id":"sirajganj-baseline-48","preset":"baseline","scenario":{"region":"sirajganj","rain_mm":64.0,"soil_pct":62.0,"margin_m":1.55,"trend_mh":0.012,"horizon_h":48,"blocked_edges":[],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":64.0,"runoff_proxy_mm":35.46,"runoff_fraction":0.554,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":1.55,"trend_mh":0.012,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":32,"category":"watch","components":[{"id":"rainfall","label":"24-hour rainfall","points":11.52,"max":36},{"id":"saturation","label":"Soil saturation","points":11.16,"max":18},{"id":"headroom","label":"River reference margin","points":6.3,"max":28},{"id":"rise","label":"River rise assumption","points":2.7,"max":18}],"trace":[{"hour":0,"central_m":-1.55,"lower_m":-1.55,"upper_m":-1.55},{"hour":1,"central_m":-1.523,"lower_m":-1.529,"upper_m":-1.517},{"hour":2,"central_m":-1.498,"lower_m":-1.51,"upper_m":-1.485},{"hour":3,"central_m":-1.474,"lower_m":-1.492,"upper_m":-1.455},{"hour":4,"central_m":-1.451,"lower_m":-1.476,"upper_m":-1.426},{"hour":5,"central_m":-1.43,"lower_m":-1.461,"upper_m":-1.398},{"hour":6,"central_m":-1.409,"lower_m":-1.446,"upper_m":-1.372},{"hour":7,"central_m":-1.389,"lower_m":-1.433,"upper_m":-1.346},{"hour":8,"central_m":-1.37,"lower_m":-1.42,"upper_m":-1.321},{"hour":9,"central_m":-1.352,"lower_m":-1.408,"upper_m":-1.296},{"hour":10,"central_m":-1.335,"lower_m":-1.397,"upper_m":-1.273},{"hour":11,"central_m":-1.318,"lower_m":-1.387,"upper_m":-1.249},{"hour":12,"central_m":-1.302,"lower_m":-1.376,"upper_m":-1.227},{"hour":13,"central_m":-1.286,"lower_m":-1.367,"upper_m":-1.205},{"hour":14,"central_m":-1.27,"lower_m":-1.357,"upper_m":-1.183},{"hour":15,"central_m":-1.255,"lower_m":-1.348,"upper_m":-1.161},{"hour":16,"central_m":-1.24,"lower_m":-1.34,"upper_m":-1.14},{"hour":17,"central_m":-1.226,"lower_m":-1.332,"upper_m":-1.12},{"hour":18,"central_m":-1.211,"lower_m":-1.324,"upper_m":-1.099},{"hour":19,"central_m":-1.197,"lower_m":-1.316,"upper_m":-1.079},{"hour":20,"central_m":-1.184,"lower_m":-1.308,"upper_m":-1.059},{"hour":21,"central_m":-1.17,"lower_m":-1.301,"upper_m":-1.039},{"hour":22,"central_m":-1.156,"lower_m":-1.294,"upper_m":-1.019},{"hour":23,"central_m":-1.143,"lower_m":-1.287,"upper_m":-1.0},{"hour":24,"central_m":-1.13,"lower_m":-1.28,"upper_m":-0.98},{"hour":25,"central_m":-1.117,"lower_m":-1.273,"upper_m":-0.961},{"hour":26,"central_m":-1.104,"lower_m":-1.266,"upper_m":-0.942},{"hour":27,"central_m":-1.091,"lower_m":-1.26,"upper_m":-0.923},{"hour":28,"central_m":-1.078,"lower_m":-1.253,"upper_m":-0.904},{"hour":29,"central_m":-1.066,"lower_m":-1.247,"upper_m":-0.885},{"hour":30,"central_m":-1.053,"lower_m":-1.24,"upper_m":-0.866},{"hour":31,"central_m":-1.041,"lower_m":-1.234,"upper_m":-0.847},{"hour":32,"central_m":-1.028,"lower_m":-1.228,"upper_m":-0.829},{"hour":33,"central_m":-1.016,"lower_m":-1.222,"upper_m":-0.81},{"hour":34,"central_m":-1.003,"lower_m":-1.215,"upper_m":-0.791},{"hour":35,"central_m":-0.991,"lower_m":-1.209,"upper_m":-0.773},{"hour":36,"central_m":-0.979,"lower_m":-1.203,"upper_m":-0.754},{"hour":37,"central_m":-0.966,"lower_m":-1.197,"upper_m":-0.736},{"hour":38,"central_m":-0.954,"lower_m":-1.191,"upper_m":-0.717},{"hour":39,"central_m":-0.942,"lower_m":-1.185,"upper_m":-0.699},{"hour":40,"central_m":-0.93,"lower_m":-1.179,"upper_m":-0.68},{"hour":41,"central_m":-0.918,"lower_m":-1.173,"upper_m":-0.662},{"hour":42,"central_m":-0.905,"lower_m":-1.167,"upper_m":-0.644},{"hour":43,"central_m":-0.893,"lower_m":-1.161,"upper_m":-0.625},{"hour":44,"central_m":-0.881,"lower_m":-1.156,"upper_m":-0.607},{"hour":45,"central_m":-0.869,"lower_m":-1.15,"upper_m":-0.589},{"hour":46,"central_m":-0.857,"lower_m":-1.144,"upper_m":-0.57},{"hour":47,"central_m":-0.845,"lower_m":-1.138,"upper_m":-0.552},{"hour":48,"central_m":-0.833,"lower_m":-1.132,"upper_m":-0.534}],"reference_crossing_h":null,"peak_relative_m":-0.833,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"exercise-route","route":{"destination":"Practice hub B","destination_id":"hub-b","capacity":500,"minutes":12,"weighted_cost":17.25,"nodes":["origin","bridge","hub-b"],"edges":["bridge","south"]},"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Sirajganj. The illustrative screening index is 32/100 (watch). The scenario assumes 64 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — সিরাজগঞ্জ। অনুশীলনভিত্তিক ঝুঁকি সূচক 32/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 64 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery"],"provenance":"synthetic"}},{"id":"sirajganj-wet-6","preset":"wet","scenario":{"region":"sirajganj","rain_mm":220.0,"soil_pct":95.0,"margin_m":0.25,"trend_mh":0.06,"horizon_h":6,"blocked_edges":[],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":220.0,"runoff_proxy_mm":172.7,"runoff_fraction":0.785,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.25,"trend_mh":0.06,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":91,"category":"critical","components":[{"id":"rainfall","label":"24-hour rainfall","points":36,"max":36},{"id":"saturation","label":"Soil saturation","points":17.1,"max":18},{"id":"headroom","label":"River reference margin","points":24.5,"max":28},{"id":"rise","label":"River rise assumption","points":13.5,"max":18}],"trace":[{"hour":0,"central_m":-0.25,"lower_m":-0.25,"upper_m":-0.25},{"hour":1,"central_m":-0.117,"lower_m":-0.132,"upper_m":-0.103},{"hour":2,"central_m":0.008,"lower_m":-0.021,"upper_m":0.036},{"hour":3,"central_m":0.126,"lower_m":0.083,"upper_m":0.169},{"hour":4,"central_m":0.238,"lower_m":0.181,"upper_m":0.295},{"hour":5,"central_m":0.344,"lower_m":0.273,"upper_m":0.416},{"hour":6,"central_m":0.446,"lower_m":0.361,"upper_m":0.532}],"reference_crossing_h":2,"peak_relative_m":0.446,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"exercise-route","route":{"destination":"Practice hub A","destination_id":"hub-a","capacity":180,"minutes":18,"weighted_cost":22.0,"nodes":["origin","junction","hub-a"],"edges":["north","ridge"]},"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Sirajganj. The illustrative screening index is 91/100 (critical). The scenario assumes 220 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — সিরাজগঞ্জ। অনুশীলনভিত্তিক ঝুঁকি সূচক 91/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 220 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery"],"provenance":"synthetic"}},{"id":"sirajganj-wet-12","preset":"wet","scenario":{"region":"sirajganj","rain_mm":220.0,"soil_pct":95.0,"margin_m":0.25,"trend_mh":0.06,"horizon_h":12,"blocked_edges":[],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":220.0,"runoff_proxy_mm":172.7,"runoff_fraction":0.785,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.25,"trend_mh":0.06,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":91,"category":"critical","components":[{"id":"rainfall","label":"24-hour rainfall","points":36,"max":36},{"id":"saturation","label":"Soil saturation","points":17.1,"max":18},{"id":"headroom","label":"River reference margin","points":24.5,"max":28},{"id":"rise","label":"River rise assumption","points":13.5,"max":18}],"trace":[{"hour":0,"central_m":-0.25,"lower_m":-0.25,"upper_m":-0.25},{"hour":1,"central_m":-0.117,"lower_m":-0.132,"upper_m":-0.103},{"hour":2,"central_m":0.008,"lower_m":-0.021,"upper_m":0.036},{"hour":3,"central_m":0.126,"lower_m":0.083,"upper_m":0.169},{"hour":4,"central_m":0.238,"lower_m":0.181,"upper_m":0.295},{"hour":5,"central_m":0.344,"lower_m":0.273,"upper_m":0.416},{"hour":6,"central_m":0.446,"lower_m":0.361,"upper_m":0.532},{"hour":7,"central_m":0.543,"lower_m":0.444,"upper_m":0.643},{"hour":8,"central_m":0.637,"lower_m":0.523,"upper_m":0.751},{"hour":9,"central_m":0.727,"lower_m":0.599,"upper_m":0.855},{"hour":10,"central_m":0.813,"lower_m":0.671,"upper_m":0.956},{"hour":11,"central_m":0.897,"lower_m":0.741,"upper_m":1.054},{"hour":12,"central_m":0.979,"lower_m":0.808,"upper_m":1.15}],"reference_crossing_h":2,"peak_relative_m":0.979,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"exercise-route","route":{"destination":"Practice hub A","destination_id":"hub-a","capacity":180,"minutes":18,"weighted_cost":22.0,"nodes":["origin","junction","hub-a"],"edges":["north","ridge"]},"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Sirajganj. The illustrative screening index is 91/100 (critical). The scenario assumes 220 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — সিরাজগঞ্জ। অনুশীলনভিত্তিক ঝুঁকি সূচক 91/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 220 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery"],"provenance":"synthetic"}},{"id":"sirajganj-wet-24","preset":"wet","scenario":{"region":"sirajganj","rain_mm":220.0,"soil_pct":95.0,"margin_m":0.25,"trend_mh":0.06,"horizon_h":24,"blocked_edges":[],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":220.0,"runoff_proxy_mm":172.7,"runoff_fraction":0.785,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.25,"trend_mh":0.06,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":91,"category":"critical","components":[{"id":"rainfall","label":"24-hour rainfall","points":36,"max":36},{"id":"saturation","label":"Soil saturation","points":17.1,"max":18},{"id":"headroom","label":"River reference margin","points":24.5,"max":28},{"id":"rise","label":"River rise assumption","points":13.5,"max":18}],"trace":[{"hour":0,"central_m":-0.25,"lower_m":-0.25,"upper_m":-0.25},{"hour":1,"central_m":-0.117,"lower_m":-0.132,"upper_m":-0.103},{"hour":2,"central_m":0.008,"lower_m":-0.021,"upper_m":0.036},{"hour":3,"central_m":0.126,"lower_m":0.083,"upper_m":0.169},{"hour":4,"central_m":0.238,"lower_m":0.181,"upper_m":0.295},{"hour":5,"central_m":0.344,"lower_m":0.273,"upper_m":0.416},{"hour":6,"central_m":0.446,"lower_m":0.361,"upper_m":0.532},{"hour":7,"central_m":0.543,"lower_m":0.444,"upper_m":0.643},{"hour":8,"central_m":0.637,"lower_m":0.523,"upper_m":0.751},{"hour":9,"central_m":0.727,"lower_m":0.599,"upper_m":0.855},{"hour":10,"central_m":0.813,"lower_m":0.671,"upper_m":0.956},{"hour":11,"central_m":0.897,"lower_m":0.741,"upper_m":1.054},{"hour":12,"central_m":0.979,"lower_m":0.808,"upper_m":1.15},{"hour":13,"central_m":1.058,"lower_m":0.873,"upper_m":1.243},{"hour":14,"central_m":1.135,"lower_m":0.936,"upper_m":1.334},{"hour":15,"central_m":1.21,"lower_m":0.997,"upper_m":1.424},{"hour":16,"central_m":1.284,"lower_m":1.056,"upper_m":1.512},{"hour":17,"central_m":1.356,"lower_m":1.114,"upper_m":1.598},{"hour":18,"central_m":1.427,"lower_m":1.171,"upper_m":1.684},{"hour":19,"central_m":1.497,"lower_m":1.227,"upper_m":1.768},{"hour":20,"central_m":1.566,"lower_m":1.281,"upper_m":1.851},{"hour":21,"central_m":1.634,"lower_m":1.335,"upper_m":1.933},{"hour":22,"central_m":1.701,"lower_m":1.388,"upper_m":2.014},{"hour":23,"central_m":1.767,"lower_m":1.44,"upper_m":2.095},{"hour":24,"central_m":1.833,"lower_m":1.491,"upper_m":2.175}],"reference_crossing_h":2,"peak_relative_m":1.833,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"exercise-route","route":{"destination":"Practice hub A","destination_id":"hub-a","capacity":180,"minutes":18,"weighted_cost":22.0,"nodes":["origin","junction","hub-a"],"edges":["north","ridge"]},"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Sirajganj. The illustrative screening index is 91/100 (critical). The scenario assumes 220 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — সিরাজগঞ্জ। অনুশীলনভিত্তিক ঝুঁকি সূচক 91/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 220 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery"],"provenance":"synthetic"}},{"id":"sirajganj-wet-48","preset":"wet","scenario":{"region":"sirajganj","rain_mm":220.0,"soil_pct":95.0,"margin_m":0.25,"trend_mh":0.06,"horizon_h":48,"blocked_edges":[],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":220.0,"runoff_proxy_mm":172.7,"runoff_fraction":0.785,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.25,"trend_mh":0.06,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":91,"category":"critical","components":[{"id":"rainfall","label":"24-hour rainfall","points":36,"max":36},{"id":"saturation","label":"Soil saturation","points":17.1,"max":18},{"id":"headroom","label":"River reference margin","points":24.5,"max":28},{"id":"rise","label":"River rise assumption","points":13.5,"max":18}],"trace":[{"hour":0,"central_m":-0.25,"lower_m":-0.25,"upper_m":-0.25},{"hour":1,"central_m":-0.117,"lower_m":-0.132,"upper_m":-0.103},{"hour":2,"central_m":0.008,"lower_m":-0.021,"upper_m":0.036},{"hour":3,"central_m":0.126,"lower_m":0.083,"upper_m":0.169},{"hour":4,"central_m":0.238,"lower_m":0.181,"upper_m":0.295},{"hour":5,"central_m":0.344,"lower_m":0.273,"upper_m":0.416},{"hour":6,"central_m":0.446,"lower_m":0.361,"upper_m":0.532},{"hour":7,"central_m":0.543,"lower_m":0.444,"upper_m":0.643},{"hour":8,"central_m":0.637,"lower_m":0.523,"upper_m":0.751},{"hour":9,"central_m":0.727,"lower_m":0.599,"upper_m":0.855},{"hour":10,"central_m":0.813,"lower_m":0.671,"upper_m":0.956},{"hour":11,"central_m":0.897,"lower_m":0.741,"upper_m":1.054},{"hour":12,"central_m":0.979,"lower_m":0.808,"upper_m":1.15},{"hour":13,"central_m":1.058,"lower_m":0.873,"upper_m":1.243},{"hour":14,"central_m":1.135,"lower_m":0.936,"upper_m":1.334},{"hour":15,"central_m":1.21,"lower_m":0.997,"upper_m":1.424},{"hour":16,"central_m":1.284,"lower_m":1.056,"upper_m":1.512},{"hour":17,"central_m":1.356,"lower_m":1.114,"upper_m":1.598},{"hour":18,"central_m":1.427,"lower_m":1.171,"upper_m":1.684},{"hour":19,"central_m":1.497,"lower_m":1.227,"upper_m":1.768},{"hour":20,"central_m":1.566,"lower_m":1.281,"upper_m":1.851},{"hour":21,"central_m":1.634,"lower_m":1.335,"upper_m":1.933},{"hour":22,"central_m":1.701,"lower_m":1.388,"upper_m":2.014},{"hour":23,"central_m":1.767,"lower_m":1.44,"upper_m":2.095},{"hour":24,"central_m":1.833,"lower_m":1.491,"upper_m":2.175},{"hour":25,"central_m":1.898,"lower_m":1.542,"upper_m":2.254},{"hour":26,"central_m":1.962,"lower_m":1.592,"upper_m":2.333},{"hour":27,"central_m":2.026,"lower_m":1.642,"upper_m":2.411},{"hour":28,"central_m":2.09,"lower_m":1.691,"upper_m":2.489},{"hour":29,"central_m":2.153,"lower_m":1.74,"upper_m":2.566},{"hour":30,"central_m":2.216,"lower_m":1.789,"upper_m":2.643},{"hour":31,"central_m":2.279,"lower_m":1.837,"upper_m":2.72},{"hour":32,"central_m":2.341,"lower_m":1.885,"upper_m":2.797},{"hour":33,"central_m":2.403,"lower_m":1.933,"upper_m":2.873},{"hour":34,"central_m":2.465,"lower_m":1.981,"upper_m":2.949},{"hour":35,"central_m":2.527,"lower_m":2.028,"upper_m":3.025},{"hour":36,"central_m":2.588,"lower_m":2.075,"upper_m":3.101},{"hour":37,"central_m":2.649,"lower_m":2.123,"upper_m":3.176},{"hour":38,"central_m":2.711,"lower_m":2.17,"upper_m":3.252},{"hour":39,"central_m":2.772,"lower_m":2.216,"upper_m":3.327},{"hour":40,"central_m":2.833,"lower_m":2.263,"upper_m":3.402},{"hour":41,"central_m":2.894,"lower_m":2.31,"upper_m":3.477},{"hour":42,"central_m":2.954,"lower_m":2.356,"upper_m":3.552},{"hour":43,"central_m":3.015,"lower_m":2.403,"upper_m":3.627},{"hour":44,"central_m":3.076,"lower_m":2.449,"upper_m":3.702},{"hour":45,"central_m":3.136,"lower_m":2.495,"upper_m":3.777},{"hour":46,"central_m":3.197,"lower_m":2.542,"upper_m":3.852},{"hour":47,"central_m":3.257,"lower_m":2.588,"upper_m":3.926},{"hour":48,"central_m":3.317,"lower_m":2.634,"upper_m":4.001}],"reference_crossing_h":2,"peak_relative_m":3.317,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"exercise-route","route":{"destination":"Practice hub A","destination_id":"hub-a","capacity":180,"minutes":18,"weighted_cost":22.0,"nodes":["origin","junction","hub-a"],"edges":["north","ridge"]},"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Sirajganj. The illustrative screening index is 91/100 (critical). The scenario assumes 220 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — সিরাজগঞ্জ। অনুশীলনভিত্তিক ঝুঁকি সূচক 91/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 220 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery"],"provenance":"synthetic"}},{"id":"sirajganj-closed-6","preset":"closed","scenario":{"region":"sirajganj","rain_mm":64.0,"soil_pct":62.0,"margin_m":1.55,"trend_mh":0.012,"horizon_h":6,"blocked_edges":["bridge","north"],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":64.0,"runoff_proxy_mm":35.46,"runoff_fraction":0.554,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":1.55,"trend_mh":0.012,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":32,"category":"watch","components":[{"id":"rainfall","label":"24-hour rainfall","points":11.52,"max":36},{"id":"saturation","label":"Soil saturation","points":11.16,"max":18},{"id":"headroom","label":"River reference margin","points":6.3,"max":28},{"id":"rise","label":"River rise assumption","points":2.7,"max":18}],"trace":[{"hour":0,"central_m":-1.55,"lower_m":-1.55,"upper_m":-1.55},{"hour":1,"central_m":-1.523,"lower_m":-1.529,"upper_m":-1.517},{"hour":2,"central_m":-1.498,"lower_m":-1.51,"upper_m":-1.485},{"hour":3,"central_m":-1.474,"lower_m":-1.492,"upper_m":-1.455},{"hour":4,"central_m":-1.451,"lower_m":-1.476,"upper_m":-1.426},{"hour":5,"central_m":-1.43,"lower_m":-1.461,"upper_m":-1.398},{"hour":6,"central_m":-1.409,"lower_m":-1.446,"upper_m":-1.372}],"reference_crossing_h":null,"peak_relative_m":-1.409,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"no-feasible-route","route":null,"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":["bridge","north"],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Sirajganj. The illustrative screening index is 32/100 (watch). The scenario assumes 64 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — সিরাজগঞ্জ। অনুশীলনভিত্তিক ঝুঁকি সূচক 32/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 64 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery","No feasible route for the exercise inputs"],"provenance":"synthetic"}},{"id":"sirajganj-closed-12","preset":"closed","scenario":{"region":"sirajganj","rain_mm":64.0,"soil_pct":62.0,"margin_m":1.55,"trend_mh":0.012,"horizon_h":12,"blocked_edges":["bridge","north"],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":64.0,"runoff_proxy_mm":35.46,"runoff_fraction":0.554,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":1.55,"trend_mh":0.012,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":32,"category":"watch","components":[{"id":"rainfall","label":"24-hour rainfall","points":11.52,"max":36},{"id":"saturation","label":"Soil saturation","points":11.16,"max":18},{"id":"headroom","label":"River reference margin","points":6.3,"max":28},{"id":"rise","label":"River rise assumption","points":2.7,"max":18}],"trace":[{"hour":0,"central_m":-1.55,"lower_m":-1.55,"upper_m":-1.55},{"hour":1,"central_m":-1.523,"lower_m":-1.529,"upper_m":-1.517},{"hour":2,"central_m":-1.498,"lower_m":-1.51,"upper_m":-1.485},{"hour":3,"central_m":-1.474,"lower_m":-1.492,"upper_m":-1.455},{"hour":4,"central_m":-1.451,"lower_m":-1.476,"upper_m":-1.426},{"hour":5,"central_m":-1.43,"lower_m":-1.461,"upper_m":-1.398},{"hour":6,"central_m":-1.409,"lower_m":-1.446,"upper_m":-1.372},{"hour":7,"central_m":-1.389,"lower_m":-1.433,"upper_m":-1.346},{"hour":8,"central_m":-1.37,"lower_m":-1.42,"upper_m":-1.321},{"hour":9,"central_m":-1.352,"lower_m":-1.408,"upper_m":-1.296},{"hour":10,"central_m":-1.335,"lower_m":-1.397,"upper_m":-1.273},{"hour":11,"central_m":-1.318,"lower_m":-1.387,"upper_m":-1.249},{"hour":12,"central_m":-1.302,"lower_m":-1.376,"upper_m":-1.227}],"reference_crossing_h":null,"peak_relative_m":-1.302,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"no-feasible-route","route":null,"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":["bridge","north"],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Sirajganj. The illustrative screening index is 32/100 (watch). The scenario assumes 64 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — সিরাজগঞ্জ। অনুশীলনভিত্তিক ঝুঁকি সূচক 32/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 64 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery","No feasible route for the exercise inputs"],"provenance":"synthetic"}},{"id":"sirajganj-closed-24","preset":"closed","scenario":{"region":"sirajganj","rain_mm":64.0,"soil_pct":62.0,"margin_m":1.55,"trend_mh":0.012,"horizon_h":24,"blocked_edges":["bridge","north"],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":64.0,"runoff_proxy_mm":35.46,"runoff_fraction":0.554,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":1.55,"trend_mh":0.012,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":32,"category":"watch","components":[{"id":"rainfall","label":"24-hour rainfall","points":11.52,"max":36},{"id":"saturation","label":"Soil saturation","points":11.16,"max":18},{"id":"headroom","label":"River reference margin","points":6.3,"max":28},{"id":"rise","label":"River rise assumption","points":2.7,"max":18}],"trace":[{"hour":0,"central_m":-1.55,"lower_m":-1.55,"upper_m":-1.55},{"hour":1,"central_m":-1.523,"lower_m":-1.529,"upper_m":-1.517},{"hour":2,"central_m":-1.498,"lower_m":-1.51,"upper_m":-1.485},{"hour":3,"central_m":-1.474,"lower_m":-1.492,"upper_m":-1.455},{"hour":4,"central_m":-1.451,"lower_m":-1.476,"upper_m":-1.426},{"hour":5,"central_m":-1.43,"lower_m":-1.461,"upper_m":-1.398},{"hour":6,"central_m":-1.409,"lower_m":-1.446,"upper_m":-1.372},{"hour":7,"central_m":-1.389,"lower_m":-1.433,"upper_m":-1.346},{"hour":8,"central_m":-1.37,"lower_m":-1.42,"upper_m":-1.321},{"hour":9,"central_m":-1.352,"lower_m":-1.408,"upper_m":-1.296},{"hour":10,"central_m":-1.335,"lower_m":-1.397,"upper_m":-1.273},{"hour":11,"central_m":-1.318,"lower_m":-1.387,"upper_m":-1.249},{"hour":12,"central_m":-1.302,"lower_m":-1.376,"upper_m":-1.227},{"hour":13,"central_m":-1.286,"lower_m":-1.367,"upper_m":-1.205},{"hour":14,"central_m":-1.27,"lower_m":-1.357,"upper_m":-1.183},{"hour":15,"central_m":-1.255,"lower_m":-1.348,"upper_m":-1.161},{"hour":16,"central_m":-1.24,"lower_m":-1.34,"upper_m":-1.14},{"hour":17,"central_m":-1.226,"lower_m":-1.332,"upper_m":-1.12},{"hour":18,"central_m":-1.211,"lower_m":-1.324,"upper_m":-1.099},{"hour":19,"central_m":-1.197,"lower_m":-1.316,"upper_m":-1.079},{"hour":20,"central_m":-1.184,"lower_m":-1.308,"upper_m":-1.059},{"hour":21,"central_m":-1.17,"lower_m":-1.301,"upper_m":-1.039},{"hour":22,"central_m":-1.156,"lower_m":-1.294,"upper_m":-1.019},{"hour":23,"central_m":-1.143,"lower_m":-1.287,"upper_m":-1.0},{"hour":24,"central_m":-1.13,"lower_m":-1.28,"upper_m":-0.98}],"reference_crossing_h":null,"peak_relative_m":-1.13,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"no-feasible-route","route":null,"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":["bridge","north"],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Sirajganj. The illustrative screening index is 32/100 (watch). The scenario assumes 64 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — সিরাজগঞ্জ। অনুশীলনভিত্তিক ঝুঁকি সূচক 32/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 64 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery","No feasible route for the exercise inputs"],"provenance":"synthetic"}},{"id":"sirajganj-closed-48","preset":"closed","scenario":{"region":"sirajganj","rain_mm":64.0,"soil_pct":62.0,"margin_m":1.55,"trend_mh":0.012,"horizon_h":48,"blocked_edges":["bridge","north"],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":64.0,"runoff_proxy_mm":35.46,"runoff_fraction":0.554,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":1.55,"trend_mh":0.012,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":32,"category":"watch","components":[{"id":"rainfall","label":"24-hour rainfall","points":11.52,"max":36},{"id":"saturation","label":"Soil saturation","points":11.16,"max":18},{"id":"headroom","label":"River reference margin","points":6.3,"max":28},{"id":"rise","label":"River rise assumption","points":2.7,"max":18}],"trace":[{"hour":0,"central_m":-1.55,"lower_m":-1.55,"upper_m":-1.55},{"hour":1,"central_m":-1.523,"lower_m":-1.529,"upper_m":-1.517},{"hour":2,"central_m":-1.498,"lower_m":-1.51,"upper_m":-1.485},{"hour":3,"central_m":-1.474,"lower_m":-1.492,"upper_m":-1.455},{"hour":4,"central_m":-1.451,"lower_m":-1.476,"upper_m":-1.426},{"hour":5,"central_m":-1.43,"lower_m":-1.461,"upper_m":-1.398},{"hour":6,"central_m":-1.409,"lower_m":-1.446,"upper_m":-1.372},{"hour":7,"central_m":-1.389,"lower_m":-1.433,"upper_m":-1.346},{"hour":8,"central_m":-1.37,"lower_m":-1.42,"upper_m":-1.321},{"hour":9,"central_m":-1.352,"lower_m":-1.408,"upper_m":-1.296},{"hour":10,"central_m":-1.335,"lower_m":-1.397,"upper_m":-1.273},{"hour":11,"central_m":-1.318,"lower_m":-1.387,"upper_m":-1.249},{"hour":12,"central_m":-1.302,"lower_m":-1.376,"upper_m":-1.227},{"hour":13,"central_m":-1.286,"lower_m":-1.367,"upper_m":-1.205},{"hour":14,"central_m":-1.27,"lower_m":-1.357,"upper_m":-1.183},{"hour":15,"central_m":-1.255,"lower_m":-1.348,"upper_m":-1.161},{"hour":16,"central_m":-1.24,"lower_m":-1.34,"upper_m":-1.14},{"hour":17,"central_m":-1.226,"lower_m":-1.332,"upper_m":-1.12},{"hour":18,"central_m":-1.211,"lower_m":-1.324,"upper_m":-1.099},{"hour":19,"central_m":-1.197,"lower_m":-1.316,"upper_m":-1.079},{"hour":20,"central_m":-1.184,"lower_m":-1.308,"upper_m":-1.059},{"hour":21,"central_m":-1.17,"lower_m":-1.301,"upper_m":-1.039},{"hour":22,"central_m":-1.156,"lower_m":-1.294,"upper_m":-1.019},{"hour":23,"central_m":-1.143,"lower_m":-1.287,"upper_m":-1.0},{"hour":24,"central_m":-1.13,"lower_m":-1.28,"upper_m":-0.98},{"hour":25,"central_m":-1.117,"lower_m":-1.273,"upper_m":-0.961},{"hour":26,"central_m":-1.104,"lower_m":-1.266,"upper_m":-0.942},{"hour":27,"central_m":-1.091,"lower_m":-1.26,"upper_m":-0.923},{"hour":28,"central_m":-1.078,"lower_m":-1.253,"upper_m":-0.904},{"hour":29,"central_m":-1.066,"lower_m":-1.247,"upper_m":-0.885},{"hour":30,"central_m":-1.053,"lower_m":-1.24,"upper_m":-0.866},{"hour":31,"central_m":-1.041,"lower_m":-1.234,"upper_m":-0.847},{"hour":32,"central_m":-1.028,"lower_m":-1.228,"upper_m":-0.829},{"hour":33,"central_m":-1.016,"lower_m":-1.222,"upper_m":-0.81},{"hour":34,"central_m":-1.003,"lower_m":-1.215,"upper_m":-0.791},{"hour":35,"central_m":-0.991,"lower_m":-1.209,"upper_m":-0.773},{"hour":36,"central_m":-0.979,"lower_m":-1.203,"upper_m":-0.754},{"hour":37,"central_m":-0.966,"lower_m":-1.197,"upper_m":-0.736},{"hour":38,"central_m":-0.954,"lower_m":-1.191,"upper_m":-0.717},{"hour":39,"central_m":-0.942,"lower_m":-1.185,"upper_m":-0.699},{"hour":40,"central_m":-0.93,"lower_m":-1.179,"upper_m":-0.68},{"hour":41,"central_m":-0.918,"lower_m":-1.173,"upper_m":-0.662},{"hour":42,"central_m":-0.905,"lower_m":-1.167,"upper_m":-0.644},{"hour":43,"central_m":-0.893,"lower_m":-1.161,"upper_m":-0.625},{"hour":44,"central_m":-0.881,"lower_m":-1.156,"upper_m":-0.607},{"hour":45,"central_m":-0.869,"lower_m":-1.15,"upper_m":-0.589},{"hour":46,"central_m":-0.857,"lower_m":-1.144,"upper_m":-0.57},{"hour":47,"central_m":-0.845,"lower_m":-1.138,"upper_m":-0.552},{"hour":48,"central_m":-0.833,"lower_m":-1.132,"upper_m":-0.534}],"reference_crossing_h":null,"peak_relative_m":-0.833,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"no-feasible-route","route":null,"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":["bridge","north"],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Sirajganj. The illustrative screening index is 32/100 (watch). The scenario assumes 64 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — সিরাজগঞ্জ। অনুশীলনভিত্তিক ঝুঁকি সূচক 32/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 64 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery","No feasible route for the exercise inputs"],"provenance":"synthetic"}},{"id":"sirajganj-capacity-6","preset":"capacity","scenario":{"region":"sirajganj","rain_mm":64.0,"soil_pct":62.0,"margin_m":1.55,"trend_mh":0.012,"horizon_h":6,"blocked_edges":[],"people":600,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":64.0,"runoff_proxy_mm":35.46,"runoff_fraction":0.554,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":1.55,"trend_mh":0.012,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":32,"category":"watch","components":[{"id":"rainfall","label":"24-hour rainfall","points":11.52,"max":36},{"id":"saturation","label":"Soil saturation","points":11.16,"max":18},{"id":"headroom","label":"River reference margin","points":6.3,"max":28},{"id":"rise","label":"River rise assumption","points":2.7,"max":18}],"trace":[{"hour":0,"central_m":-1.55,"lower_m":-1.55,"upper_m":-1.55},{"hour":1,"central_m":-1.523,"lower_m":-1.529,"upper_m":-1.517},{"hour":2,"central_m":-1.498,"lower_m":-1.51,"upper_m":-1.485},{"hour":3,"central_m":-1.474,"lower_m":-1.492,"upper_m":-1.455},{"hour":4,"central_m":-1.451,"lower_m":-1.476,"upper_m":-1.426},{"hour":5,"central_m":-1.43,"lower_m":-1.461,"upper_m":-1.398},{"hour":6,"central_m":-1.409,"lower_m":-1.446,"upper_m":-1.372}],"reference_crossing_h":null,"peak_relative_m":-1.409,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"no-feasible-route","route":null,"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":600,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Sirajganj. The illustrative screening index is 32/100 (watch). The scenario assumes 64 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — সিরাজগঞ্জ। অনুশীলনভিত্তিক ঝুঁকি সূচক 32/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 64 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery","No feasible route for the exercise inputs"],"provenance":"synthetic"}},{"id":"sirajganj-capacity-12","preset":"capacity","scenario":{"region":"sirajganj","rain_mm":64.0,"soil_pct":62.0,"margin_m":1.55,"trend_mh":0.012,"horizon_h":12,"blocked_edges":[],"people":600,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":64.0,"runoff_proxy_mm":35.46,"runoff_fraction":0.554,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":1.55,"trend_mh":0.012,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":32,"category":"watch","components":[{"id":"rainfall","label":"24-hour rainfall","points":11.52,"max":36},{"id":"saturation","label":"Soil saturation","points":11.16,"max":18},{"id":"headroom","label":"River reference margin","points":6.3,"max":28},{"id":"rise","label":"River rise assumption","points":2.7,"max":18}],"trace":[{"hour":0,"central_m":-1.55,"lower_m":-1.55,"upper_m":-1.55},{"hour":1,"central_m":-1.523,"lower_m":-1.529,"upper_m":-1.517},{"hour":2,"central_m":-1.498,"lower_m":-1.51,"upper_m":-1.485},{"hour":3,"central_m":-1.474,"lower_m":-1.492,"upper_m":-1.455},{"hour":4,"central_m":-1.451,"lower_m":-1.476,"upper_m":-1.426},{"hour":5,"central_m":-1.43,"lower_m":-1.461,"upper_m":-1.398},{"hour":6,"central_m":-1.409,"lower_m":-1.446,"upper_m":-1.372},{"hour":7,"central_m":-1.389,"lower_m":-1.433,"upper_m":-1.346},{"hour":8,"central_m":-1.37,"lower_m":-1.42,"upper_m":-1.321},{"hour":9,"central_m":-1.352,"lower_m":-1.408,"upper_m":-1.296},{"hour":10,"central_m":-1.335,"lower_m":-1.397,"upper_m":-1.273},{"hour":11,"central_m":-1.318,"lower_m":-1.387,"upper_m":-1.249},{"hour":12,"central_m":-1.302,"lower_m":-1.376,"upper_m":-1.227}],"reference_crossing_h":null,"peak_relative_m":-1.302,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"no-feasible-route","route":null,"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":600,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Sirajganj. The illustrative screening index is 32/100 (watch). The scenario assumes 64 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — সিরাজগঞ্জ। অনুশীলনভিত্তিক ঝুঁকি সূচক 32/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 64 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery","No feasible route for the exercise inputs"],"provenance":"synthetic"}},{"id":"sirajganj-capacity-24","preset":"capacity","scenario":{"region":"sirajganj","rain_mm":64.0,"soil_pct":62.0,"margin_m":1.55,"trend_mh":0.012,"horizon_h":24,"blocked_edges":[],"people":600,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":64.0,"runoff_proxy_mm":35.46,"runoff_fraction":0.554,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":1.55,"trend_mh":0.012,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":32,"category":"watch","components":[{"id":"rainfall","label":"24-hour rainfall","points":11.52,"max":36},{"id":"saturation","label":"Soil saturation","points":11.16,"max":18},{"id":"headroom","label":"River reference margin","points":6.3,"max":28},{"id":"rise","label":"River rise assumption","points":2.7,"max":18}],"trace":[{"hour":0,"central_m":-1.55,"lower_m":-1.55,"upper_m":-1.55},{"hour":1,"central_m":-1.523,"lower_m":-1.529,"upper_m":-1.517},{"hour":2,"central_m":-1.498,"lower_m":-1.51,"upper_m":-1.485},{"hour":3,"central_m":-1.474,"lower_m":-1.492,"upper_m":-1.455},{"hour":4,"central_m":-1.451,"lower_m":-1.476,"upper_m":-1.426},{"hour":5,"central_m":-1.43,"lower_m":-1.461,"upper_m":-1.398},{"hour":6,"central_m":-1.409,"lower_m":-1.446,"upper_m":-1.372},{"hour":7,"central_m":-1.389,"lower_m":-1.433,"upper_m":-1.346},{"hour":8,"central_m":-1.37,"lower_m":-1.42,"upper_m":-1.321},{"hour":9,"central_m":-1.352,"lower_m":-1.408,"upper_m":-1.296},{"hour":10,"central_m":-1.335,"lower_m":-1.397,"upper_m":-1.273},{"hour":11,"central_m":-1.318,"lower_m":-1.387,"upper_m":-1.249},{"hour":12,"central_m":-1.302,"lower_m":-1.376,"upper_m":-1.227},{"hour":13,"central_m":-1.286,"lower_m":-1.367,"upper_m":-1.205},{"hour":14,"central_m":-1.27,"lower_m":-1.357,"upper_m":-1.183},{"hour":15,"central_m":-1.255,"lower_m":-1.348,"upper_m":-1.161},{"hour":16,"central_m":-1.24,"lower_m":-1.34,"upper_m":-1.14},{"hour":17,"central_m":-1.226,"lower_m":-1.332,"upper_m":-1.12},{"hour":18,"central_m":-1.211,"lower_m":-1.324,"upper_m":-1.099},{"hour":19,"central_m":-1.197,"lower_m":-1.316,"upper_m":-1.079},{"hour":20,"central_m":-1.184,"lower_m":-1.308,"upper_m":-1.059},{"hour":21,"central_m":-1.17,"lower_m":-1.301,"upper_m":-1.039},{"hour":22,"central_m":-1.156,"lower_m":-1.294,"upper_m":-1.019},{"hour":23,"central_m":-1.143,"lower_m":-1.287,"upper_m":-1.0},{"hour":24,"central_m":-1.13,"lower_m":-1.28,"upper_m":-0.98}],"reference_crossing_h":null,"peak_relative_m":-1.13,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"no-feasible-route","route":null,"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":600,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Sirajganj. The illustrative screening index is 32/100 (watch). The scenario assumes 64 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — সিরাজগঞ্জ। অনুশীলনভিত্তিক ঝুঁকি সূচক 32/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 64 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery","No feasible route for the exercise inputs"],"provenance":"synthetic"}},{"id":"sirajganj-capacity-48","preset":"capacity","scenario":{"region":"sirajganj","rain_mm":64.0,"soil_pct":62.0,"margin_m":1.55,"trend_mh":0.012,"horizon_h":48,"blocked_edges":[],"people":600,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":64.0,"runoff_proxy_mm":35.46,"runoff_fraction":0.554,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":1.55,"trend_mh":0.012,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":32,"category":"watch","components":[{"id":"rainfall","label":"24-hour rainfall","points":11.52,"max":36},{"id":"saturation","label":"Soil saturation","points":11.16,"max":18},{"id":"headroom","label":"River reference margin","points":6.3,"max":28},{"id":"rise","label":"River rise assumption","points":2.7,"max":18}],"trace":[{"hour":0,"central_m":-1.55,"lower_m":-1.55,"upper_m":-1.55},{"hour":1,"central_m":-1.523,"lower_m":-1.529,"upper_m":-1.517},{"hour":2,"central_m":-1.498,"lower_m":-1.51,"upper_m":-1.485},{"hour":3,"central_m":-1.474,"lower_m":-1.492,"upper_m":-1.455},{"hour":4,"central_m":-1.451,"lower_m":-1.476,"upper_m":-1.426},{"hour":5,"central_m":-1.43,"lower_m":-1.461,"upper_m":-1.398},{"hour":6,"central_m":-1.409,"lower_m":-1.446,"upper_m":-1.372},{"hour":7,"central_m":-1.389,"lower_m":-1.433,"upper_m":-1.346},{"hour":8,"central_m":-1.37,"lower_m":-1.42,"upper_m":-1.321},{"hour":9,"central_m":-1.352,"lower_m":-1.408,"upper_m":-1.296},{"hour":10,"central_m":-1.335,"lower_m":-1.397,"upper_m":-1.273},{"hour":11,"central_m":-1.318,"lower_m":-1.387,"upper_m":-1.249},{"hour":12,"central_m":-1.302,"lower_m":-1.376,"upper_m":-1.227},{"hour":13,"central_m":-1.286,"lower_m":-1.367,"upper_m":-1.205},{"hour":14,"central_m":-1.27,"lower_m":-1.357,"upper_m":-1.183},{"hour":15,"central_m":-1.255,"lower_m":-1.348,"upper_m":-1.161},{"hour":16,"central_m":-1.24,"lower_m":-1.34,"upper_m":-1.14},{"hour":17,"central_m":-1.226,"lower_m":-1.332,"upper_m":-1.12},{"hour":18,"central_m":-1.211,"lower_m":-1.324,"upper_m":-1.099},{"hour":19,"central_m":-1.197,"lower_m":-1.316,"upper_m":-1.079},{"hour":20,"central_m":-1.184,"lower_m":-1.308,"upper_m":-1.059},{"hour":21,"central_m":-1.17,"lower_m":-1.301,"upper_m":-1.039},{"hour":22,"central_m":-1.156,"lower_m":-1.294,"upper_m":-1.019},{"hour":23,"central_m":-1.143,"lower_m":-1.287,"upper_m":-1.0},{"hour":24,"central_m":-1.13,"lower_m":-1.28,"upper_m":-0.98},{"hour":25,"central_m":-1.117,"lower_m":-1.273,"upper_m":-0.961},{"hour":26,"central_m":-1.104,"lower_m":-1.266,"upper_m":-0.942},{"hour":27,"central_m":-1.091,"lower_m":-1.26,"upper_m":-0.923},{"hour":28,"central_m":-1.078,"lower_m":-1.253,"upper_m":-0.904},{"hour":29,"central_m":-1.066,"lower_m":-1.247,"upper_m":-0.885},{"hour":30,"central_m":-1.053,"lower_m":-1.24,"upper_m":-0.866},{"hour":31,"central_m":-1.041,"lower_m":-1.234,"upper_m":-0.847},{"hour":32,"central_m":-1.028,"lower_m":-1.228,"upper_m":-0.829},{"hour":33,"central_m":-1.016,"lower_m":-1.222,"upper_m":-0.81},{"hour":34,"central_m":-1.003,"lower_m":-1.215,"upper_m":-0.791},{"hour":35,"central_m":-0.991,"lower_m":-1.209,"upper_m":-0.773},{"hour":36,"central_m":-0.979,"lower_m":-1.203,"upper_m":-0.754},{"hour":37,"central_m":-0.966,"lower_m":-1.197,"upper_m":-0.736},{"hour":38,"central_m":-0.954,"lower_m":-1.191,"upper_m":-0.717},{"hour":39,"central_m":-0.942,"lower_m":-1.185,"upper_m":-0.699},{"hour":40,"central_m":-0.93,"lower_m":-1.179,"upper_m":-0.68},{"hour":41,"central_m":-0.918,"lower_m":-1.173,"upper_m":-0.662},{"hour":42,"central_m":-0.905,"lower_m":-1.167,"upper_m":-0.644},{"hour":43,"central_m":-0.893,"lower_m":-1.161,"upper_m":-0.625},{"hour":44,"central_m":-0.881,"lower_m":-1.156,"upper_m":-0.607},{"hour":45,"central_m":-0.869,"lower_m":-1.15,"upper_m":-0.589},{"hour":46,"central_m":-0.857,"lower_m":-1.144,"upper_m":-0.57},{"hour":47,"central_m":-0.845,"lower_m":-1.138,"upper_m":-0.552},{"hour":48,"central_m":-0.833,"lower_m":-1.132,"upper_m":-0.534}],"reference_crossing_h":null,"peak_relative_m":-0.833,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"no-feasible-route","route":null,"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":600,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Sirajganj. The illustrative screening index is 32/100 (watch). The scenario assumes 64 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — সিরাজগঞ্জ। অনুশীলনভিত্তিক ঝুঁকি সূচক 32/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 64 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery","No feasible route for the exercise inputs"],"provenance":"synthetic"}},{"id":"feni-baseline-6","preset":"baseline","scenario":{"region":"feni","rain_mm":126.0,"soil_pct":81.0,"margin_m":0.68,"trend_mh":0.036,"horizon_h":6,"blocked_edges":[],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":126.0,"runoff_proxy_mm":86.56,"runoff_fraction":0.687,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.68,"trend_mh":0.036,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":64,"category":"high","components":[{"id":"rainfall","label":"24-hour rainfall","points":22.68,"max":36},{"id":"saturation","label":"Soil saturation","points":14.58,"max":18},{"id":"headroom","label":"River reference margin","points":18.48,"max":28},{"id":"rise","label":"River rise assumption","points":8.1,"max":18}],"trace":[{"hour":0,"central_m":-0.68,"lower_m":-0.68,"upper_m":-0.68},{"hour":1,"central_m":-0.608,"lower_m":-0.617,"upper_m":-0.598},{"hour":2,"central_m":-0.539,"lower_m":-0.557,"upper_m":-0.521},{"hour":3,"central_m":-0.474,"lower_m":-0.501,"upper_m":-0.446},{"hour":4,"central_m":-0.412,"lower_m":-0.449,"upper_m":-0.375},{"hour":5,"central_m":-0.352,"lower_m":-0.398,"upper_m":-0.306},{"hour":6,"central_m":-0.296,"lower_m":-0.351,"upper_m":-0.24}],"reference_crossing_h":null,"peak_relative_m":-0.296,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"exercise-route","route":{"destination":"Practice hub A","destination_id":"hub-a","capacity":180,"minutes":18,"weighted_cost":20.82,"nodes":["origin","junction","hub-a"],"edges":["north","ridge"]},"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Feni. The illustrative screening index is 64/100 (high). The scenario assumes 126 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — ফেনী। অনুশীলনভিত্তিক ঝুঁকি সূচক 64/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 126 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery"],"provenance":"synthetic"}},{"id":"feni-baseline-12","preset":"baseline","scenario":{"region":"feni","rain_mm":126.0,"soil_pct":81.0,"margin_m":0.68,"trend_mh":0.036,"horizon_h":12,"blocked_edges":[],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":126.0,"runoff_proxy_mm":86.56,"runoff_fraction":0.687,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.68,"trend_mh":0.036,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":64,"category":"high","components":[{"id":"rainfall","label":"24-hour rainfall","points":22.68,"max":36},{"id":"saturation","label":"Soil saturation","points":14.58,"max":18},{"id":"headroom","label":"River reference margin","points":18.48,"max":28},{"id":"rise","label":"River rise assumption","points":8.1,"max":18}],"trace":[{"hour":0,"central_m":-0.68,"lower_m":-0.68,"upper_m":-0.68},{"hour":1,"central_m":-0.608,"lower_m":-0.617,"upper_m":-0.598},{"hour":2,"central_m":-0.539,"lower_m":-0.557,"upper_m":-0.521},{"hour":3,"central_m":-0.474,"lower_m":-0.501,"upper_m":-0.446},{"hour":4,"central_m":-0.412,"lower_m":-0.449,"upper_m":-0.375},{"hour":5,"central_m":-0.352,"lower_m":-0.398,"upper_m":-0.306},{"hour":6,"central_m":-0.296,"lower_m":-0.351,"upper_m":-0.24},{"hour":7,"central_m":-0.241,"lower_m":-0.305,"upper_m":-0.176},{"hour":8,"central_m":-0.188,"lower_m":-0.262,"upper_m":-0.114},{"hour":9,"central_m":-0.137,"lower_m":-0.22,"upper_m":-0.054},{"hour":10,"central_m":-0.088,"lower_m":-0.18,"upper_m":0.004},{"hour":11,"central_m":-0.04,"lower_m":-0.141,"upper_m":0.062},{"hour":12,"central_m":0.007,"lower_m":-0.104,"upper_m":0.118}],"reference_crossing_h":12,"peak_relative_m":0.007,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"exercise-route","route":{"destination":"Practice hub A","destination_id":"hub-a","capacity":180,"minutes":18,"weighted_cost":20.82,"nodes":["origin","junction","hub-a"],"edges":["north","ridge"]},"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Feni. The illustrative screening index is 64/100 (high). The scenario assumes 126 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — ফেনী। অনুশীলনভিত্তিক ঝুঁকি সূচক 64/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 126 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery"],"provenance":"synthetic"}},{"id":"feni-baseline-24","preset":"baseline","scenario":{"region":"feni","rain_mm":126.0,"soil_pct":81.0,"margin_m":0.68,"trend_mh":0.036,"horizon_h":24,"blocked_edges":[],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":126.0,"runoff_proxy_mm":86.56,"runoff_fraction":0.687,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.68,"trend_mh":0.036,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":64,"category":"high","components":[{"id":"rainfall","label":"24-hour rainfall","points":22.68,"max":36},{"id":"saturation","label":"Soil saturation","points":14.58,"max":18},{"id":"headroom","label":"River reference margin","points":18.48,"max":28},{"id":"rise","label":"River rise assumption","points":8.1,"max":18}],"trace":[{"hour":0,"central_m":-0.68,"lower_m":-0.68,"upper_m":-0.68},{"hour":1,"central_m":-0.608,"lower_m":-0.617,"upper_m":-0.598},{"hour":2,"central_m":-0.539,"lower_m":-0.557,"upper_m":-0.521},{"hour":3,"central_m":-0.474,"lower_m":-0.501,"upper_m":-0.446},{"hour":4,"central_m":-0.412,"lower_m":-0.449,"upper_m":-0.375},{"hour":5,"central_m":-0.352,"lower_m":-0.398,"upper_m":-0.306},{"hour":6,"central_m":-0.296,"lower_m":-0.351,"upper_m":-0.24},{"hour":7,"central_m":-0.241,"lower_m":-0.305,"upper_m":-0.176},{"hour":8,"central_m":-0.188,"lower_m":-0.262,"upper_m":-0.114},{"hour":9,"central_m":-0.137,"lower_m":-0.22,"upper_m":-0.054},{"hour":10,"central_m":-0.088,"lower_m":-0.18,"upper_m":0.004},{"hour":11,"central_m":-0.04,"lower_m":-0.141,"upper_m":0.062},{"hour":12,"central_m":0.007,"lower_m":-0.104,"upper_m":0.118},{"hour":13,"central_m":0.053,"lower_m":-0.067,"upper_m":0.172},{"hour":14,"central_m":0.097,"lower_m":-0.032,"upper_m":0.226},{"hour":15,"central_m":0.141,"lower_m":0.003,"upper_m":0.279},{"hour":16,"central_m":0.184,"lower_m":0.036,"upper_m":0.331},{"hour":17,"central_m":0.226,"lower_m":0.069,"upper_m":0.383},{"hour":18,"central_m":0.267,"lower_m":0.101,"upper_m":0.433},{"hour":19,"central_m":0.308,"lower_m":0.133,"upper_m":0.483},{"hour":20,"central_m":0.349,"lower_m":0.164,"upper_m":0.533},{"hour":21,"central_m":0.389,"lower_m":0.195,"upper_m":0.582},{"hour":22,"central_m":0.428,"lower_m":0.225,"upper_m":0.631},{"hour":23,"central_m":0.467,"lower_m":0.255,"upper_m":0.679},{"hour":24,"central_m":0.506,"lower_m":0.285,"upper_m":0.727}],"reference_crossing_h":12,"peak_relative_m":0.506,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"exercise-route","route":{"destination":"Practice hub A","destination_id":"hub-a","capacity":180,"minutes":18,"weighted_cost":20.82,"nodes":["origin","junction","hub-a"],"edges":["north","ridge"]},"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Feni. The illustrative screening index is 64/100 (high). The scenario assumes 126 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — ফেনী। অনুশীলনভিত্তিক ঝুঁকি সূচক 64/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 126 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery"],"provenance":"synthetic"}},{"id":"feni-baseline-48","preset":"baseline","scenario":{"region":"feni","rain_mm":126.0,"soil_pct":81.0,"margin_m":0.68,"trend_mh":0.036,"horizon_h":48,"blocked_edges":[],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":126.0,"runoff_proxy_mm":86.56,"runoff_fraction":0.687,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.68,"trend_mh":0.036,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":64,"category":"high","components":[{"id":"rainfall","label":"24-hour rainfall","points":22.68,"max":36},{"id":"saturation","label":"Soil saturation","points":14.58,"max":18},{"id":"headroom","label":"River reference margin","points":18.48,"max":28},{"id":"rise","label":"River rise assumption","points":8.1,"max":18}],"trace":[{"hour":0,"central_m":-0.68,"lower_m":-0.68,"upper_m":-0.68},{"hour":1,"central_m":-0.608,"lower_m":-0.617,"upper_m":-0.598},{"hour":2,"central_m":-0.539,"lower_m":-0.557,"upper_m":-0.521},{"hour":3,"central_m":-0.474,"lower_m":-0.501,"upper_m":-0.446},{"hour":4,"central_m":-0.412,"lower_m":-0.449,"upper_m":-0.375},{"hour":5,"central_m":-0.352,"lower_m":-0.398,"upper_m":-0.306},{"hour":6,"central_m":-0.296,"lower_m":-0.351,"upper_m":-0.24},{"hour":7,"central_m":-0.241,"lower_m":-0.305,"upper_m":-0.176},{"hour":8,"central_m":-0.188,"lower_m":-0.262,"upper_m":-0.114},{"hour":9,"central_m":-0.137,"lower_m":-0.22,"upper_m":-0.054},{"hour":10,"central_m":-0.088,"lower_m":-0.18,"upper_m":0.004},{"hour":11,"central_m":-0.04,"lower_m":-0.141,"upper_m":0.062},{"hour":12,"central_m":0.007,"lower_m":-0.104,"upper_m":0.118},{"hour":13,"central_m":0.053,"lower_m":-0.067,"upper_m":0.172},{"hour":14,"central_m":0.097,"lower_m":-0.032,"upper_m":0.226},{"hour":15,"central_m":0.141,"lower_m":0.003,"upper_m":0.279},{"hour":16,"central_m":0.184,"lower_m":0.036,"upper_m":0.331},{"hour":17,"central_m":0.226,"lower_m":0.069,"upper_m":0.383},{"hour":18,"central_m":0.267,"lower_m":0.101,"upper_m":0.433},{"hour":19,"central_m":0.308,"lower_m":0.133,"upper_m":0.483},{"hour":20,"central_m":0.349,"lower_m":0.164,"upper_m":0.533},{"hour":21,"central_m":0.389,"lower_m":0.195,"upper_m":0.582},{"hour":22,"central_m":0.428,"lower_m":0.225,"upper_m":0.631},{"hour":23,"central_m":0.467,"lower_m":0.255,"upper_m":0.679},{"hour":24,"central_m":0.506,"lower_m":0.285,"upper_m":0.727},{"hour":25,"central_m":0.545,"lower_m":0.314,"upper_m":0.775},{"hour":26,"central_m":0.583,"lower_m":0.343,"upper_m":0.823},{"hour":27,"central_m":0.621,"lower_m":0.372,"upper_m":0.87},{"hour":28,"central_m":0.659,"lower_m":0.401,"upper_m":0.917},{"hour":29,"central_m":0.696,"lower_m":0.429,"upper_m":0.964},{"hour":30,"central_m":0.734,"lower_m":0.457,"upper_m":1.01},{"hour":31,"central_m":0.771,"lower_m":0.485,"upper_m":1.057},{"hour":32,"central_m":0.808,"lower_m":0.513,"upper_m":1.103},{"hour":33,"central_m":0.845,"lower_m":0.541,"upper_m":1.15},{"hour":34,"central_m":0.882,"lower_m":0.569,"upper_m":1.196},{"hour":35,"central_m":0.919,"lower_m":0.597,"upper_m":1.242},{"hour":36,"central_m":0.956,"lower_m":0.624,"upper_m":1.288},{"hour":37,"central_m":0.993,"lower_m":0.652,"upper_m":1.334},{"hour":38,"central_m":1.029,"lower_m":0.679,"upper_m":1.379},{"hour":39,"central_m":1.066,"lower_m":0.706,"upper_m":1.425},{"hour":40,"central_m":1.102,"lower_m":0.734,"upper_m":1.471},{"hour":41,"central_m":1.139,"lower_m":0.761,"upper_m":1.516},{"hour":42,"central_m":1.175,"lower_m":0.788,"upper_m":1.562},{"hour":43,"central_m":1.211,"lower_m":0.815,"upper_m":1.608},{"hour":44,"central_m":1.248,"lower_m":0.842,"upper_m":1.653},{"hour":45,"central_m":1.284,"lower_m":0.869,"upper_m":1.699},{"hour":46,"central_m":1.32,"lower_m":0.896,"upper_m":1.744},{"hour":47,"central_m":1.356,"lower_m":0.923,"upper_m":1.79},{"hour":48,"central_m":1.393,"lower_m":0.95,"upper_m":1.835}],"reference_crossing_h":12,"peak_relative_m":1.393,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"exercise-route","route":{"destination":"Practice hub A","destination_id":"hub-a","capacity":180,"minutes":18,"weighted_cost":20.82,"nodes":["origin","junction","hub-a"],"edges":["north","ridge"]},"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Feni. The illustrative screening index is 64/100 (high). The scenario assumes 126 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — ফেনী। অনুশীলনভিত্তিক ঝুঁকি সূচক 64/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 126 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery"],"provenance":"synthetic"}},{"id":"feni-wet-6","preset":"wet","scenario":{"region":"feni","rain_mm":220.0,"soil_pct":95.0,"margin_m":0.25,"trend_mh":0.06,"horizon_h":6,"blocked_edges":[],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":220.0,"runoff_proxy_mm":172.7,"runoff_fraction":0.785,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.25,"trend_mh":0.06,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":91,"category":"critical","components":[{"id":"rainfall","label":"24-hour rainfall","points":36,"max":36},{"id":"saturation","label":"Soil saturation","points":17.1,"max":18},{"id":"headroom","label":"River reference margin","points":24.5,"max":28},{"id":"rise","label":"River rise assumption","points":13.5,"max":18}],"trace":[{"hour":0,"central_m":-0.25,"lower_m":-0.25,"upper_m":-0.25},{"hour":1,"central_m":-0.117,"lower_m":-0.132,"upper_m":-0.103},{"hour":2,"central_m":0.008,"lower_m":-0.021,"upper_m":0.036},{"hour":3,"central_m":0.126,"lower_m":0.083,"upper_m":0.169},{"hour":4,"central_m":0.238,"lower_m":0.181,"upper_m":0.295},{"hour":5,"central_m":0.344,"lower_m":0.273,"upper_m":0.416},{"hour":6,"central_m":0.446,"lower_m":0.361,"upper_m":0.532}],"reference_crossing_h":2,"peak_relative_m":0.446,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"exercise-route","route":{"destination":"Practice hub A","destination_id":"hub-a","capacity":180,"minutes":18,"weighted_cost":22.0,"nodes":["origin","junction","hub-a"],"edges":["north","ridge"]},"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Feni. The illustrative screening index is 91/100 (critical). The scenario assumes 220 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — ফেনী। অনুশীলনভিত্তিক ঝুঁকি সূচক 91/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 220 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery"],"provenance":"synthetic"}},{"id":"feni-wet-12","preset":"wet","scenario":{"region":"feni","rain_mm":220.0,"soil_pct":95.0,"margin_m":0.25,"trend_mh":0.06,"horizon_h":12,"blocked_edges":[],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":220.0,"runoff_proxy_mm":172.7,"runoff_fraction":0.785,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.25,"trend_mh":0.06,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":91,"category":"critical","components":[{"id":"rainfall","label":"24-hour rainfall","points":36,"max":36},{"id":"saturation","label":"Soil saturation","points":17.1,"max":18},{"id":"headroom","label":"River reference margin","points":24.5,"max":28},{"id":"rise","label":"River rise assumption","points":13.5,"max":18}],"trace":[{"hour":0,"central_m":-0.25,"lower_m":-0.25,"upper_m":-0.25},{"hour":1,"central_m":-0.117,"lower_m":-0.132,"upper_m":-0.103},{"hour":2,"central_m":0.008,"lower_m":-0.021,"upper_m":0.036},{"hour":3,"central_m":0.126,"lower_m":0.083,"upper_m":0.169},{"hour":4,"central_m":0.238,"lower_m":0.181,"upper_m":0.295},{"hour":5,"central_m":0.344,"lower_m":0.273,"upper_m":0.416},{"hour":6,"central_m":0.446,"lower_m":0.361,"upper_m":0.532},{"hour":7,"central_m":0.543,"lower_m":0.444,"upper_m":0.643},{"hour":8,"central_m":0.637,"lower_m":0.523,"upper_m":0.751},{"hour":9,"central_m":0.727,"lower_m":0.599,"upper_m":0.855},{"hour":10,"central_m":0.813,"lower_m":0.671,"upper_m":0.956},{"hour":11,"central_m":0.897,"lower_m":0.741,"upper_m":1.054},{"hour":12,"central_m":0.979,"lower_m":0.808,"upper_m":1.15}],"reference_crossing_h":2,"peak_relative_m":0.979,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"exercise-route","route":{"destination":"Practice hub A","destination_id":"hub-a","capacity":180,"minutes":18,"weighted_cost":22.0,"nodes":["origin","junction","hub-a"],"edges":["north","ridge"]},"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Feni. The illustrative screening index is 91/100 (critical). The scenario assumes 220 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — ফেনী। অনুশীলনভিত্তিক ঝুঁকি সূচক 91/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 220 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery"],"provenance":"synthetic"}},{"id":"feni-wet-24","preset":"wet","scenario":{"region":"feni","rain_mm":220.0,"soil_pct":95.0,"margin_m":0.25,"trend_mh":0.06,"horizon_h":24,"blocked_edges":[],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":220.0,"runoff_proxy_mm":172.7,"runoff_fraction":0.785,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.25,"trend_mh":0.06,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":91,"category":"critical","components":[{"id":"rainfall","label":"24-hour rainfall","points":36,"max":36},{"id":"saturation","label":"Soil saturation","points":17.1,"max":18},{"id":"headroom","label":"River reference margin","points":24.5,"max":28},{"id":"rise","label":"River rise assumption","points":13.5,"max":18}],"trace":[{"hour":0,"central_m":-0.25,"lower_m":-0.25,"upper_m":-0.25},{"hour":1,"central_m":-0.117,"lower_m":-0.132,"upper_m":-0.103},{"hour":2,"central_m":0.008,"lower_m":-0.021,"upper_m":0.036},{"hour":3,"central_m":0.126,"lower_m":0.083,"upper_m":0.169},{"hour":4,"central_m":0.238,"lower_m":0.181,"upper_m":0.295},{"hour":5,"central_m":0.344,"lower_m":0.273,"upper_m":0.416},{"hour":6,"central_m":0.446,"lower_m":0.361,"upper_m":0.532},{"hour":7,"central_m":0.543,"lower_m":0.444,"upper_m":0.643},{"hour":8,"central_m":0.637,"lower_m":0.523,"upper_m":0.751},{"hour":9,"central_m":0.727,"lower_m":0.599,"upper_m":0.855},{"hour":10,"central_m":0.813,"lower_m":0.671,"upper_m":0.956},{"hour":11,"central_m":0.897,"lower_m":0.741,"upper_m":1.054},{"hour":12,"central_m":0.979,"lower_m":0.808,"upper_m":1.15},{"hour":13,"central_m":1.058,"lower_m":0.873,"upper_m":1.243},{"hour":14,"central_m":1.135,"lower_m":0.936,"upper_m":1.334},{"hour":15,"central_m":1.21,"lower_m":0.997,"upper_m":1.424},{"hour":16,"central_m":1.284,"lower_m":1.056,"upper_m":1.512},{"hour":17,"central_m":1.356,"lower_m":1.114,"upper_m":1.598},{"hour":18,"central_m":1.427,"lower_m":1.171,"upper_m":1.684},{"hour":19,"central_m":1.497,"lower_m":1.227,"upper_m":1.768},{"hour":20,"central_m":1.566,"lower_m":1.281,"upper_m":1.851},{"hour":21,"central_m":1.634,"lower_m":1.335,"upper_m":1.933},{"hour":22,"central_m":1.701,"lower_m":1.388,"upper_m":2.014},{"hour":23,"central_m":1.767,"lower_m":1.44,"upper_m":2.095},{"hour":24,"central_m":1.833,"lower_m":1.491,"upper_m":2.175}],"reference_crossing_h":2,"peak_relative_m":1.833,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"exercise-route","route":{"destination":"Practice hub A","destination_id":"hub-a","capacity":180,"minutes":18,"weighted_cost":22.0,"nodes":["origin","junction","hub-a"],"edges":["north","ridge"]},"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Feni. The illustrative screening index is 91/100 (critical). The scenario assumes 220 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — ফেনী। অনুশীলনভিত্তিক ঝুঁকি সূচক 91/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 220 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery"],"provenance":"synthetic"}},{"id":"feni-wet-48","preset":"wet","scenario":{"region":"feni","rain_mm":220.0,"soil_pct":95.0,"margin_m":0.25,"trend_mh":0.06,"horizon_h":48,"blocked_edges":[],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":220.0,"runoff_proxy_mm":172.7,"runoff_fraction":0.785,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.25,"trend_mh":0.06,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":91,"category":"critical","components":[{"id":"rainfall","label":"24-hour rainfall","points":36,"max":36},{"id":"saturation","label":"Soil saturation","points":17.1,"max":18},{"id":"headroom","label":"River reference margin","points":24.5,"max":28},{"id":"rise","label":"River rise assumption","points":13.5,"max":18}],"trace":[{"hour":0,"central_m":-0.25,"lower_m":-0.25,"upper_m":-0.25},{"hour":1,"central_m":-0.117,"lower_m":-0.132,"upper_m":-0.103},{"hour":2,"central_m":0.008,"lower_m":-0.021,"upper_m":0.036},{"hour":3,"central_m":0.126,"lower_m":0.083,"upper_m":0.169},{"hour":4,"central_m":0.238,"lower_m":0.181,"upper_m":0.295},{"hour":5,"central_m":0.344,"lower_m":0.273,"upper_m":0.416},{"hour":6,"central_m":0.446,"lower_m":0.361,"upper_m":0.532},{"hour":7,"central_m":0.543,"lower_m":0.444,"upper_m":0.643},{"hour":8,"central_m":0.637,"lower_m":0.523,"upper_m":0.751},{"hour":9,"central_m":0.727,"lower_m":0.599,"upper_m":0.855},{"hour":10,"central_m":0.813,"lower_m":0.671,"upper_m":0.956},{"hour":11,"central_m":0.897,"lower_m":0.741,"upper_m":1.054},{"hour":12,"central_m":0.979,"lower_m":0.808,"upper_m":1.15},{"hour":13,"central_m":1.058,"lower_m":0.873,"upper_m":1.243},{"hour":14,"central_m":1.135,"lower_m":0.936,"upper_m":1.334},{"hour":15,"central_m":1.21,"lower_m":0.997,"upper_m":1.424},{"hour":16,"central_m":1.284,"lower_m":1.056,"upper_m":1.512},{"hour":17,"central_m":1.356,"lower_m":1.114,"upper_m":1.598},{"hour":18,"central_m":1.427,"lower_m":1.171,"upper_m":1.684},{"hour":19,"central_m":1.497,"lower_m":1.227,"upper_m":1.768},{"hour":20,"central_m":1.566,"lower_m":1.281,"upper_m":1.851},{"hour":21,"central_m":1.634,"lower_m":1.335,"upper_m":1.933},{"hour":22,"central_m":1.701,"lower_m":1.388,"upper_m":2.014},{"hour":23,"central_m":1.767,"lower_m":1.44,"upper_m":2.095},{"hour":24,"central_m":1.833,"lower_m":1.491,"upper_m":2.175},{"hour":25,"central_m":1.898,"lower_m":1.542,"upper_m":2.254},{"hour":26,"central_m":1.962,"lower_m":1.592,"upper_m":2.333},{"hour":27,"central_m":2.026,"lower_m":1.642,"upper_m":2.411},{"hour":28,"central_m":2.09,"lower_m":1.691,"upper_m":2.489},{"hour":29,"central_m":2.153,"lower_m":1.74,"upper_m":2.566},{"hour":30,"central_m":2.216,"lower_m":1.789,"upper_m":2.643},{"hour":31,"central_m":2.279,"lower_m":1.837,"upper_m":2.72},{"hour":32,"central_m":2.341,"lower_m":1.885,"upper_m":2.797},{"hour":33,"central_m":2.403,"lower_m":1.933,"upper_m":2.873},{"hour":34,"central_m":2.465,"lower_m":1.981,"upper_m":2.949},{"hour":35,"central_m":2.527,"lower_m":2.028,"upper_m":3.025},{"hour":36,"central_m":2.588,"lower_m":2.075,"upper_m":3.101},{"hour":37,"central_m":2.649,"lower_m":2.123,"upper_m":3.176},{"hour":38,"central_m":2.711,"lower_m":2.17,"upper_m":3.252},{"hour":39,"central_m":2.772,"lower_m":2.216,"upper_m":3.327},{"hour":40,"central_m":2.833,"lower_m":2.263,"upper_m":3.402},{"hour":41,"central_m":2.894,"lower_m":2.31,"upper_m":3.477},{"hour":42,"central_m":2.954,"lower_m":2.356,"upper_m":3.552},{"hour":43,"central_m":3.015,"lower_m":2.403,"upper_m":3.627},{"hour":44,"central_m":3.076,"lower_m":2.449,"upper_m":3.702},{"hour":45,"central_m":3.136,"lower_m":2.495,"upper_m":3.777},{"hour":46,"central_m":3.197,"lower_m":2.542,"upper_m":3.852},{"hour":47,"central_m":3.257,"lower_m":2.588,"upper_m":3.926},{"hour":48,"central_m":3.317,"lower_m":2.634,"upper_m":4.001}],"reference_crossing_h":2,"peak_relative_m":3.317,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"exercise-route","route":{"destination":"Practice hub A","destination_id":"hub-a","capacity":180,"minutes":18,"weighted_cost":22.0,"nodes":["origin","junction","hub-a"],"edges":["north","ridge"]},"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Feni. The illustrative screening index is 91/100 (critical). The scenario assumes 220 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — ফেনী। অনুশীলনভিত্তিক ঝুঁকি সূচক 91/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 220 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery"],"provenance":"synthetic"}},{"id":"feni-closed-6","preset":"closed","scenario":{"region":"feni","rain_mm":126.0,"soil_pct":81.0,"margin_m":0.68,"trend_mh":0.036,"horizon_h":6,"blocked_edges":["bridge","north"],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":126.0,"runoff_proxy_mm":86.56,"runoff_fraction":0.687,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.68,"trend_mh":0.036,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":64,"category":"high","components":[{"id":"rainfall","label":"24-hour rainfall","points":22.68,"max":36},{"id":"saturation","label":"Soil saturation","points":14.58,"max":18},{"id":"headroom","label":"River reference margin","points":18.48,"max":28},{"id":"rise","label":"River rise assumption","points":8.1,"max":18}],"trace":[{"hour":0,"central_m":-0.68,"lower_m":-0.68,"upper_m":-0.68},{"hour":1,"central_m":-0.608,"lower_m":-0.617,"upper_m":-0.598},{"hour":2,"central_m":-0.539,"lower_m":-0.557,"upper_m":-0.521},{"hour":3,"central_m":-0.474,"lower_m":-0.501,"upper_m":-0.446},{"hour":4,"central_m":-0.412,"lower_m":-0.449,"upper_m":-0.375},{"hour":5,"central_m":-0.352,"lower_m":-0.398,"upper_m":-0.306},{"hour":6,"central_m":-0.296,"lower_m":-0.351,"upper_m":-0.24}],"reference_crossing_h":null,"peak_relative_m":-0.296,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"no-feasible-route","route":null,"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":["bridge","north"],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Feni. The illustrative screening index is 64/100 (high). The scenario assumes 126 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — ফেনী। অনুশীলনভিত্তিক ঝুঁকি সূচক 64/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 126 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery","No feasible route for the exercise inputs"],"provenance":"synthetic"}},{"id":"feni-closed-12","preset":"closed","scenario":{"region":"feni","rain_mm":126.0,"soil_pct":81.0,"margin_m":0.68,"trend_mh":0.036,"horizon_h":12,"blocked_edges":["bridge","north"],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":126.0,"runoff_proxy_mm":86.56,"runoff_fraction":0.687,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.68,"trend_mh":0.036,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":64,"category":"high","components":[{"id":"rainfall","label":"24-hour rainfall","points":22.68,"max":36},{"id":"saturation","label":"Soil saturation","points":14.58,"max":18},{"id":"headroom","label":"River reference margin","points":18.48,"max":28},{"id":"rise","label":"River rise assumption","points":8.1,"max":18}],"trace":[{"hour":0,"central_m":-0.68,"lower_m":-0.68,"upper_m":-0.68},{"hour":1,"central_m":-0.608,"lower_m":-0.617,"upper_m":-0.598},{"hour":2,"central_m":-0.539,"lower_m":-0.557,"upper_m":-0.521},{"hour":3,"central_m":-0.474,"lower_m":-0.501,"upper_m":-0.446},{"hour":4,"central_m":-0.412,"lower_m":-0.449,"upper_m":-0.375},{"hour":5,"central_m":-0.352,"lower_m":-0.398,"upper_m":-0.306},{"hour":6,"central_m":-0.296,"lower_m":-0.351,"upper_m":-0.24},{"hour":7,"central_m":-0.241,"lower_m":-0.305,"upper_m":-0.176},{"hour":8,"central_m":-0.188,"lower_m":-0.262,"upper_m":-0.114},{"hour":9,"central_m":-0.137,"lower_m":-0.22,"upper_m":-0.054},{"hour":10,"central_m":-0.088,"lower_m":-0.18,"upper_m":0.004},{"hour":11,"central_m":-0.04,"lower_m":-0.141,"upper_m":0.062},{"hour":12,"central_m":0.007,"lower_m":-0.104,"upper_m":0.118}],"reference_crossing_h":12,"peak_relative_m":0.007,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"no-feasible-route","route":null,"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":["bridge","north"],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Feni. The illustrative screening index is 64/100 (high). The scenario assumes 126 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — ফেনী। অনুশীলনভিত্তিক ঝুঁকি সূচক 64/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 126 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery","No feasible route for the exercise inputs"],"provenance":"synthetic"}},{"id":"feni-closed-24","preset":"closed","scenario":{"region":"feni","rain_mm":126.0,"soil_pct":81.0,"margin_m":0.68,"trend_mh":0.036,"horizon_h":24,"blocked_edges":["bridge","north"],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":126.0,"runoff_proxy_mm":86.56,"runoff_fraction":0.687,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.68,"trend_mh":0.036,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":64,"category":"high","components":[{"id":"rainfall","label":"24-hour rainfall","points":22.68,"max":36},{"id":"saturation","label":"Soil saturation","points":14.58,"max":18},{"id":"headroom","label":"River reference margin","points":18.48,"max":28},{"id":"rise","label":"River rise assumption","points":8.1,"max":18}],"trace":[{"hour":0,"central_m":-0.68,"lower_m":-0.68,"upper_m":-0.68},{"hour":1,"central_m":-0.608,"lower_m":-0.617,"upper_m":-0.598},{"hour":2,"central_m":-0.539,"lower_m":-0.557,"upper_m":-0.521},{"hour":3,"central_m":-0.474,"lower_m":-0.501,"upper_m":-0.446},{"hour":4,"central_m":-0.412,"lower_m":-0.449,"upper_m":-0.375},{"hour":5,"central_m":-0.352,"lower_m":-0.398,"upper_m":-0.306},{"hour":6,"central_m":-0.296,"lower_m":-0.351,"upper_m":-0.24},{"hour":7,"central_m":-0.241,"lower_m":-0.305,"upper_m":-0.176},{"hour":8,"central_m":-0.188,"lower_m":-0.262,"upper_m":-0.114},{"hour":9,"central_m":-0.137,"lower_m":-0.22,"upper_m":-0.054},{"hour":10,"central_m":-0.088,"lower_m":-0.18,"upper_m":0.004},{"hour":11,"central_m":-0.04,"lower_m":-0.141,"upper_m":0.062},{"hour":12,"central_m":0.007,"lower_m":-0.104,"upper_m":0.118},{"hour":13,"central_m":0.053,"lower_m":-0.067,"upper_m":0.172},{"hour":14,"central_m":0.097,"lower_m":-0.032,"upper_m":0.226},{"hour":15,"central_m":0.141,"lower_m":0.003,"upper_m":0.279},{"hour":16,"central_m":0.184,"lower_m":0.036,"upper_m":0.331},{"hour":17,"central_m":0.226,"lower_m":0.069,"upper_m":0.383},{"hour":18,"central_m":0.267,"lower_m":0.101,"upper_m":0.433},{"hour":19,"central_m":0.308,"lower_m":0.133,"upper_m":0.483},{"hour":20,"central_m":0.349,"lower_m":0.164,"upper_m":0.533},{"hour":21,"central_m":0.389,"lower_m":0.195,"upper_m":0.582},{"hour":22,"central_m":0.428,"lower_m":0.225,"upper_m":0.631},{"hour":23,"central_m":0.467,"lower_m":0.255,"upper_m":0.679},{"hour":24,"central_m":0.506,"lower_m":0.285,"upper_m":0.727}],"reference_crossing_h":12,"peak_relative_m":0.506,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"no-feasible-route","route":null,"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":["bridge","north"],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Feni. The illustrative screening index is 64/100 (high). The scenario assumes 126 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — ফেনী। অনুশীলনভিত্তিক ঝুঁকি সূচক 64/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 126 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery","No feasible route for the exercise inputs"],"provenance":"synthetic"}},{"id":"feni-closed-48","preset":"closed","scenario":{"region":"feni","rain_mm":126.0,"soil_pct":81.0,"margin_m":0.68,"trend_mh":0.036,"horizon_h":48,"blocked_edges":["bridge","north"],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":126.0,"runoff_proxy_mm":86.56,"runoff_fraction":0.687,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.68,"trend_mh":0.036,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":64,"category":"high","components":[{"id":"rainfall","label":"24-hour rainfall","points":22.68,"max":36},{"id":"saturation","label":"Soil saturation","points":14.58,"max":18},{"id":"headroom","label":"River reference margin","points":18.48,"max":28},{"id":"rise","label":"River rise assumption","points":8.1,"max":18}],"trace":[{"hour":0,"central_m":-0.68,"lower_m":-0.68,"upper_m":-0.68},{"hour":1,"central_m":-0.608,"lower_m":-0.617,"upper_m":-0.598},{"hour":2,"central_m":-0.539,"lower_m":-0.557,"upper_m":-0.521},{"hour":3,"central_m":-0.474,"lower_m":-0.501,"upper_m":-0.446},{"hour":4,"central_m":-0.412,"lower_m":-0.449,"upper_m":-0.375},{"hour":5,"central_m":-0.352,"lower_m":-0.398,"upper_m":-0.306},{"hour":6,"central_m":-0.296,"lower_m":-0.351,"upper_m":-0.24},{"hour":7,"central_m":-0.241,"lower_m":-0.305,"upper_m":-0.176},{"hour":8,"central_m":-0.188,"lower_m":-0.262,"upper_m":-0.114},{"hour":9,"central_m":-0.137,"lower_m":-0.22,"upper_m":-0.054},{"hour":10,"central_m":-0.088,"lower_m":-0.18,"upper_m":0.004},{"hour":11,"central_m":-0.04,"lower_m":-0.141,"upper_m":0.062},{"hour":12,"central_m":0.007,"lower_m":-0.104,"upper_m":0.118},{"hour":13,"central_m":0.053,"lower_m":-0.067,"upper_m":0.172},{"hour":14,"central_m":0.097,"lower_m":-0.032,"upper_m":0.226},{"hour":15,"central_m":0.141,"lower_m":0.003,"upper_m":0.279},{"hour":16,"central_m":0.184,"lower_m":0.036,"upper_m":0.331},{"hour":17,"central_m":0.226,"lower_m":0.069,"upper_m":0.383},{"hour":18,"central_m":0.267,"lower_m":0.101,"upper_m":0.433},{"hour":19,"central_m":0.308,"lower_m":0.133,"upper_m":0.483},{"hour":20,"central_m":0.349,"lower_m":0.164,"upper_m":0.533},{"hour":21,"central_m":0.389,"lower_m":0.195,"upper_m":0.582},{"hour":22,"central_m":0.428,"lower_m":0.225,"upper_m":0.631},{"hour":23,"central_m":0.467,"lower_m":0.255,"upper_m":0.679},{"hour":24,"central_m":0.506,"lower_m":0.285,"upper_m":0.727},{"hour":25,"central_m":0.545,"lower_m":0.314,"upper_m":0.775},{"hour":26,"central_m":0.583,"lower_m":0.343,"upper_m":0.823},{"hour":27,"central_m":0.621,"lower_m":0.372,"upper_m":0.87},{"hour":28,"central_m":0.659,"lower_m":0.401,"upper_m":0.917},{"hour":29,"central_m":0.696,"lower_m":0.429,"upper_m":0.964},{"hour":30,"central_m":0.734,"lower_m":0.457,"upper_m":1.01},{"hour":31,"central_m":0.771,"lower_m":0.485,"upper_m":1.057},{"hour":32,"central_m":0.808,"lower_m":0.513,"upper_m":1.103},{"hour":33,"central_m":0.845,"lower_m":0.541,"upper_m":1.15},{"hour":34,"central_m":0.882,"lower_m":0.569,"upper_m":1.196},{"hour":35,"central_m":0.919,"lower_m":0.597,"upper_m":1.242},{"hour":36,"central_m":0.956,"lower_m":0.624,"upper_m":1.288},{"hour":37,"central_m":0.993,"lower_m":0.652,"upper_m":1.334},{"hour":38,"central_m":1.029,"lower_m":0.679,"upper_m":1.379},{"hour":39,"central_m":1.066,"lower_m":0.706,"upper_m":1.425},{"hour":40,"central_m":1.102,"lower_m":0.734,"upper_m":1.471},{"hour":41,"central_m":1.139,"lower_m":0.761,"upper_m":1.516},{"hour":42,"central_m":1.175,"lower_m":0.788,"upper_m":1.562},{"hour":43,"central_m":1.211,"lower_m":0.815,"upper_m":1.608},{"hour":44,"central_m":1.248,"lower_m":0.842,"upper_m":1.653},{"hour":45,"central_m":1.284,"lower_m":0.869,"upper_m":1.699},{"hour":46,"central_m":1.32,"lower_m":0.896,"upper_m":1.744},{"hour":47,"central_m":1.356,"lower_m":0.923,"upper_m":1.79},{"hour":48,"central_m":1.393,"lower_m":0.95,"upper_m":1.835}],"reference_crossing_h":12,"peak_relative_m":1.393,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"no-feasible-route","route":null,"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":["bridge","north"],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Feni. The illustrative screening index is 64/100 (high). The scenario assumes 126 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — ফেনী। অনুশীলনভিত্তিক ঝুঁকি সূচক 64/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 126 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery","No feasible route for the exercise inputs"],"provenance":"synthetic"}},{"id":"feni-capacity-6","preset":"capacity","scenario":{"region":"feni","rain_mm":126.0,"soil_pct":81.0,"margin_m":0.68,"trend_mh":0.036,"horizon_h":6,"blocked_edges":[],"people":600,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":126.0,"runoff_proxy_mm":86.56,"runoff_fraction":0.687,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.68,"trend_mh":0.036,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":64,"category":"high","components":[{"id":"rainfall","label":"24-hour rainfall","points":22.68,"max":36},{"id":"saturation","label":"Soil saturation","points":14.58,"max":18},{"id":"headroom","label":"River reference margin","points":18.48,"max":28},{"id":"rise","label":"River rise assumption","points":8.1,"max":18}],"trace":[{"hour":0,"central_m":-0.68,"lower_m":-0.68,"upper_m":-0.68},{"hour":1,"central_m":-0.608,"lower_m":-0.617,"upper_m":-0.598},{"hour":2,"central_m":-0.539,"lower_m":-0.557,"upper_m":-0.521},{"hour":3,"central_m":-0.474,"lower_m":-0.501,"upper_m":-0.446},{"hour":4,"central_m":-0.412,"lower_m":-0.449,"upper_m":-0.375},{"hour":5,"central_m":-0.352,"lower_m":-0.398,"upper_m":-0.306},{"hour":6,"central_m":-0.296,"lower_m":-0.351,"upper_m":-0.24}],"reference_crossing_h":null,"peak_relative_m":-0.296,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"no-feasible-route","route":null,"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":600,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Feni. The illustrative screening index is 64/100 (high). The scenario assumes 126 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — ফেনী। অনুশীলনভিত্তিক ঝুঁকি সূচক 64/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 126 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery","No feasible route for the exercise inputs"],"provenance":"synthetic"}},{"id":"feni-capacity-12","preset":"capacity","scenario":{"region":"feni","rain_mm":126.0,"soil_pct":81.0,"margin_m":0.68,"trend_mh":0.036,"horizon_h":12,"blocked_edges":[],"people":600,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":126.0,"runoff_proxy_mm":86.56,"runoff_fraction":0.687,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.68,"trend_mh":0.036,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":64,"category":"high","components":[{"id":"rainfall","label":"24-hour rainfall","points":22.68,"max":36},{"id":"saturation","label":"Soil saturation","points":14.58,"max":18},{"id":"headroom","label":"River reference margin","points":18.48,"max":28},{"id":"rise","label":"River rise assumption","points":8.1,"max":18}],"trace":[{"hour":0,"central_m":-0.68,"lower_m":-0.68,"upper_m":-0.68},{"hour":1,"central_m":-0.608,"lower_m":-0.617,"upper_m":-0.598},{"hour":2,"central_m":-0.539,"lower_m":-0.557,"upper_m":-0.521},{"hour":3,"central_m":-0.474,"lower_m":-0.501,"upper_m":-0.446},{"hour":4,"central_m":-0.412,"lower_m":-0.449,"upper_m":-0.375},{"hour":5,"central_m":-0.352,"lower_m":-0.398,"upper_m":-0.306},{"hour":6,"central_m":-0.296,"lower_m":-0.351,"upper_m":-0.24},{"hour":7,"central_m":-0.241,"lower_m":-0.305,"upper_m":-0.176},{"hour":8,"central_m":-0.188,"lower_m":-0.262,"upper_m":-0.114},{"hour":9,"central_m":-0.137,"lower_m":-0.22,"upper_m":-0.054},{"hour":10,"central_m":-0.088,"lower_m":-0.18,"upper_m":0.004},{"hour":11,"central_m":-0.04,"lower_m":-0.141,"upper_m":0.062},{"hour":12,"central_m":0.007,"lower_m":-0.104,"upper_m":0.118}],"reference_crossing_h":12,"peak_relative_m":0.007,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"no-feasible-route","route":null,"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":600,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Feni. The illustrative screening index is 64/100 (high). The scenario assumes 126 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — ফেনী। অনুশীলনভিত্তিক ঝুঁকি সূচক 64/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 126 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery","No feasible route for the exercise inputs"],"provenance":"synthetic"}},{"id":"feni-capacity-24","preset":"capacity","scenario":{"region":"feni","rain_mm":126.0,"soil_pct":81.0,"margin_m":0.68,"trend_mh":0.036,"horizon_h":24,"blocked_edges":[],"people":600,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":126.0,"runoff_proxy_mm":86.56,"runoff_fraction":0.687,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.68,"trend_mh":0.036,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":64,"category":"high","components":[{"id":"rainfall","label":"24-hour rainfall","points":22.68,"max":36},{"id":"saturation","label":"Soil saturation","points":14.58,"max":18},{"id":"headroom","label":"River reference margin","points":18.48,"max":28},{"id":"rise","label":"River rise assumption","points":8.1,"max":18}],"trace":[{"hour":0,"central_m":-0.68,"lower_m":-0.68,"upper_m":-0.68},{"hour":1,"central_m":-0.608,"lower_m":-0.617,"upper_m":-0.598},{"hour":2,"central_m":-0.539,"lower_m":-0.557,"upper_m":-0.521},{"hour":3,"central_m":-0.474,"lower_m":-0.501,"upper_m":-0.446},{"hour":4,"central_m":-0.412,"lower_m":-0.449,"upper_m":-0.375},{"hour":5,"central_m":-0.352,"lower_m":-0.398,"upper_m":-0.306},{"hour":6,"central_m":-0.296,"lower_m":-0.351,"upper_m":-0.24},{"hour":7,"central_m":-0.241,"lower_m":-0.305,"upper_m":-0.176},{"hour":8,"central_m":-0.188,"lower_m":-0.262,"upper_m":-0.114},{"hour":9,"central_m":-0.137,"lower_m":-0.22,"upper_m":-0.054},{"hour":10,"central_m":-0.088,"lower_m":-0.18,"upper_m":0.004},{"hour":11,"central_m":-0.04,"lower_m":-0.141,"upper_m":0.062},{"hour":12,"central_m":0.007,"lower_m":-0.104,"upper_m":0.118},{"hour":13,"central_m":0.053,"lower_m":-0.067,"upper_m":0.172},{"hour":14,"central_m":0.097,"lower_m":-0.032,"upper_m":0.226},{"hour":15,"central_m":0.141,"lower_m":0.003,"upper_m":0.279},{"hour":16,"central_m":0.184,"lower_m":0.036,"upper_m":0.331},{"hour":17,"central_m":0.226,"lower_m":0.069,"upper_m":0.383},{"hour":18,"central_m":0.267,"lower_m":0.101,"upper_m":0.433},{"hour":19,"central_m":0.308,"lower_m":0.133,"upper_m":0.483},{"hour":20,"central_m":0.349,"lower_m":0.164,"upper_m":0.533},{"hour":21,"central_m":0.389,"lower_m":0.195,"upper_m":0.582},{"hour":22,"central_m":0.428,"lower_m":0.225,"upper_m":0.631},{"hour":23,"central_m":0.467,"lower_m":0.255,"upper_m":0.679},{"hour":24,"central_m":0.506,"lower_m":0.285,"upper_m":0.727}],"reference_crossing_h":12,"peak_relative_m":0.506,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"no-feasible-route","route":null,"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":600,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Feni. The illustrative screening index is 64/100 (high). The scenario assumes 126 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — ফেনী। অনুশীলনভিত্তিক ঝুঁকি সূচক 64/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 126 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery","No feasible route for the exercise inputs"],"provenance":"synthetic"}},{"id":"feni-capacity-48","preset":"capacity","scenario":{"region":"feni","rain_mm":126.0,"soil_pct":81.0,"margin_m":0.68,"trend_mh":0.036,"horizon_h":48,"blocked_edges":[],"people":600,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":126.0,"runoff_proxy_mm":86.56,"runoff_fraction":0.687,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.68,"trend_mh":0.036,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":64,"category":"high","components":[{"id":"rainfall","label":"24-hour rainfall","points":22.68,"max":36},{"id":"saturation","label":"Soil saturation","points":14.58,"max":18},{"id":"headroom","label":"River reference margin","points":18.48,"max":28},{"id":"rise","label":"River rise assumption","points":8.1,"max":18}],"trace":[{"hour":0,"central_m":-0.68,"lower_m":-0.68,"upper_m":-0.68},{"hour":1,"central_m":-0.608,"lower_m":-0.617,"upper_m":-0.598},{"hour":2,"central_m":-0.539,"lower_m":-0.557,"upper_m":-0.521},{"hour":3,"central_m":-0.474,"lower_m":-0.501,"upper_m":-0.446},{"hour":4,"central_m":-0.412,"lower_m":-0.449,"upper_m":-0.375},{"hour":5,"central_m":-0.352,"lower_m":-0.398,"upper_m":-0.306},{"hour":6,"central_m":-0.296,"lower_m":-0.351,"upper_m":-0.24},{"hour":7,"central_m":-0.241,"lower_m":-0.305,"upper_m":-0.176},{"hour":8,"central_m":-0.188,"lower_m":-0.262,"upper_m":-0.114},{"hour":9,"central_m":-0.137,"lower_m":-0.22,"upper_m":-0.054},{"hour":10,"central_m":-0.088,"lower_m":-0.18,"upper_m":0.004},{"hour":11,"central_m":-0.04,"lower_m":-0.141,"upper_m":0.062},{"hour":12,"central_m":0.007,"lower_m":-0.104,"upper_m":0.118},{"hour":13,"central_m":0.053,"lower_m":-0.067,"upper_m":0.172},{"hour":14,"central_m":0.097,"lower_m":-0.032,"upper_m":0.226},{"hour":15,"central_m":0.141,"lower_m":0.003,"upper_m":0.279},{"hour":16,"central_m":0.184,"lower_m":0.036,"upper_m":0.331},{"hour":17,"central_m":0.226,"lower_m":0.069,"upper_m":0.383},{"hour":18,"central_m":0.267,"lower_m":0.101,"upper_m":0.433},{"hour":19,"central_m":0.308,"lower_m":0.133,"upper_m":0.483},{"hour":20,"central_m":0.349,"lower_m":0.164,"upper_m":0.533},{"hour":21,"central_m":0.389,"lower_m":0.195,"upper_m":0.582},{"hour":22,"central_m":0.428,"lower_m":0.225,"upper_m":0.631},{"hour":23,"central_m":0.467,"lower_m":0.255,"upper_m":0.679},{"hour":24,"central_m":0.506,"lower_m":0.285,"upper_m":0.727},{"hour":25,"central_m":0.545,"lower_m":0.314,"upper_m":0.775},{"hour":26,"central_m":0.583,"lower_m":0.343,"upper_m":0.823},{"hour":27,"central_m":0.621,"lower_m":0.372,"upper_m":0.87},{"hour":28,"central_m":0.659,"lower_m":0.401,"upper_m":0.917},{"hour":29,"central_m":0.696,"lower_m":0.429,"upper_m":0.964},{"hour":30,"central_m":0.734,"lower_m":0.457,"upper_m":1.01},{"hour":31,"central_m":0.771,"lower_m":0.485,"upper_m":1.057},{"hour":32,"central_m":0.808,"lower_m":0.513,"upper_m":1.103},{"hour":33,"central_m":0.845,"lower_m":0.541,"upper_m":1.15},{"hour":34,"central_m":0.882,"lower_m":0.569,"upper_m":1.196},{"hour":35,"central_m":0.919,"lower_m":0.597,"upper_m":1.242},{"hour":36,"central_m":0.956,"lower_m":0.624,"upper_m":1.288},{"hour":37,"central_m":0.993,"lower_m":0.652,"upper_m":1.334},{"hour":38,"central_m":1.029,"lower_m":0.679,"upper_m":1.379},{"hour":39,"central_m":1.066,"lower_m":0.706,"upper_m":1.425},{"hour":40,"central_m":1.102,"lower_m":0.734,"upper_m":1.471},{"hour":41,"central_m":1.139,"lower_m":0.761,"upper_m":1.516},{"hour":42,"central_m":1.175,"lower_m":0.788,"upper_m":1.562},{"hour":43,"central_m":1.211,"lower_m":0.815,"upper_m":1.608},{"hour":44,"central_m":1.248,"lower_m":0.842,"upper_m":1.653},{"hour":45,"central_m":1.284,"lower_m":0.869,"upper_m":1.699},{"hour":46,"central_m":1.32,"lower_m":0.896,"upper_m":1.744},{"hour":47,"central_m":1.356,"lower_m":0.923,"upper_m":1.79},{"hour":48,"central_m":1.393,"lower_m":0.95,"upper_m":1.835}],"reference_crossing_h":12,"peak_relative_m":1.393,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"no-feasible-route","route":null,"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":600,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Feni. The illustrative screening index is 64/100 (high). The scenario assumes 126 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — ফেনী। অনুশীলনভিত্তিক ঝুঁকি সূচক 64/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 126 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery","No feasible route for the exercise inputs"],"provenance":"synthetic"}},{"id":"chattogram-baseline-6","preset":"baseline","scenario":{"region":"chattogram","rain_mm":74.0,"soil_pct":66.0,"margin_m":1.25,"trend_mh":0.018,"horizon_h":6,"blocked_edges":[],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":74.0,"runoff_proxy_mm":43.07,"runoff_fraction":0.582,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":1.25,"trend_mh":0.018,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":40,"category":"watch","components":[{"id":"rainfall","label":"24-hour rainfall","points":13.32,"max":36},{"id":"saturation","label":"Soil saturation","points":11.88,"max":18},{"id":"headroom","label":"River reference margin","points":10.5,"max":28},{"id":"rise","label":"River rise assumption","points":4.05,"max":18}],"trace":[{"hour":0,"central_m":-1.25,"lower_m":-1.25,"upper_m":-1.25},{"hour":1,"central_m":-1.214,"lower_m":-1.221,"upper_m":-1.207},{"hour":2,"central_m":-1.18,"lower_m":-1.193,"upper_m":-1.166},{"hour":3,"central_m":-1.147,"lower_m":-1.167,"upper_m":-1.127},{"hour":4,"central_m":-1.116,"lower_m":-1.143,"upper_m":-1.089},{"hour":5,"central_m":-1.087,"lower_m":-1.12,"upper_m":-1.053},{"hour":6,"central_m":-1.058,"lower_m":-1.098,"upper_m":-1.018}],"reference_crossing_h":null,"peak_relative_m":-1.058,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"exercise-route","route":{"destination":"Practice hub B","destination_id":"hub-b","capacity":500,"minutes":12,"weighted_cost":18.56,"nodes":["origin","bridge","hub-b"],"edges":["bridge","south"]},"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Chattogram. The illustrative screening index is 40/100 (watch). The scenario assumes 74 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — চট্টগ্রাম। অনুশীলনভিত্তিক ঝুঁকি সূচক 40/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 74 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery"],"provenance":"synthetic"}},{"id":"chattogram-baseline-12","preset":"baseline","scenario":{"region":"chattogram","rain_mm":74.0,"soil_pct":66.0,"margin_m":1.25,"trend_mh":0.018,"horizon_h":12,"blocked_edges":[],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":74.0,"runoff_proxy_mm":43.07,"runoff_fraction":0.582,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":1.25,"trend_mh":0.018,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":40,"category":"watch","components":[{"id":"rainfall","label":"24-hour rainfall","points":13.32,"max":36},{"id":"saturation","label":"Soil saturation","points":11.88,"max":18},{"id":"headroom","label":"River reference margin","points":10.5,"max":28},{"id":"rise","label":"River rise assumption","points":4.05,"max":18}],"trace":[{"hour":0,"central_m":-1.25,"lower_m":-1.25,"upper_m":-1.25},{"hour":1,"central_m":-1.214,"lower_m":-1.221,"upper_m":-1.207},{"hour":2,"central_m":-1.18,"lower_m":-1.193,"upper_m":-1.166},{"hour":3,"central_m":-1.147,"lower_m":-1.167,"upper_m":-1.127},{"hour":4,"central_m":-1.116,"lower_m":-1.143,"upper_m":-1.089},{"hour":5,"central_m":-1.087,"lower_m":-1.12,"upper_m":-1.053},{"hour":6,"central_m":-1.058,"lower_m":-1.098,"upper_m":-1.018},{"hour":7,"central_m":-1.031,"lower_m":-1.078,"upper_m":-0.984},{"hour":8,"central_m":-1.005,"lower_m":-1.058,"upper_m":-0.951},{"hour":9,"central_m":-0.979,"lower_m":-1.039,"upper_m":-0.919},{"hour":10,"central_m":-0.954,"lower_m":-1.021,"upper_m":-0.888},{"hour":11,"central_m":-0.93,"lower_m":-1.004,"upper_m":-0.857},{"hour":12,"central_m":-0.907,"lower_m":-0.987,"upper_m":-0.827}],"reference_crossing_h":null,"peak_relative_m":-0.907,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"exercise-route","route":{"destination":"Practice hub B","destination_id":"hub-b","capacity":500,"minutes":12,"weighted_cost":18.56,"nodes":["origin","bridge","hub-b"],"edges":["bridge","south"]},"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Chattogram. The illustrative screening index is 40/100 (watch). The scenario assumes 74 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — চট্টগ্রাম। অনুশীলনভিত্তিক ঝুঁকি সূচক 40/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 74 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery"],"provenance":"synthetic"}},{"id":"chattogram-baseline-24","preset":"baseline","scenario":{"region":"chattogram","rain_mm":74.0,"soil_pct":66.0,"margin_m":1.25,"trend_mh":0.018,"horizon_h":24,"blocked_edges":[],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":74.0,"runoff_proxy_mm":43.07,"runoff_fraction":0.582,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":1.25,"trend_mh":0.018,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":40,"category":"watch","components":[{"id":"rainfall","label":"24-hour rainfall","points":13.32,"max":36},{"id":"saturation","label":"Soil saturation","points":11.88,"max":18},{"id":"headroom","label":"River reference margin","points":10.5,"max":28},{"id":"rise","label":"River rise assumption","points":4.05,"max":18}],"trace":[{"hour":0,"central_m":-1.25,"lower_m":-1.25,"upper_m":-1.25},{"hour":1,"central_m":-1.214,"lower_m":-1.221,"upper_m":-1.207},{"hour":2,"central_m":-1.18,"lower_m":-1.193,"upper_m":-1.166},{"hour":3,"central_m":-1.147,"lower_m":-1.167,"upper_m":-1.127},{"hour":4,"central_m":-1.116,"lower_m":-1.143,"upper_m":-1.089},{"hour":5,"central_m":-1.087,"lower_m":-1.12,"upper_m":-1.053},{"hour":6,"central_m":-1.058,"lower_m":-1.098,"upper_m":-1.018},{"hour":7,"central_m":-1.031,"lower_m":-1.078,"upper_m":-0.984},{"hour":8,"central_m":-1.005,"lower_m":-1.058,"upper_m":-0.951},{"hour":9,"central_m":-0.979,"lower_m":-1.039,"upper_m":-0.919},{"hour":10,"central_m":-0.954,"lower_m":-1.021,"upper_m":-0.888},{"hour":11,"central_m":-0.93,"lower_m":-1.004,"upper_m":-0.857},{"hour":12,"central_m":-0.907,"lower_m":-0.987,"upper_m":-0.827},{"hour":13,"central_m":-0.884,"lower_m":-0.971,"upper_m":-0.798},{"hour":14,"central_m":-0.862,"lower_m":-0.956,"upper_m":-0.769},{"hour":15,"central_m":-0.84,"lower_m":-0.94,"upper_m":-0.74},{"hour":16,"central_m":-0.819,"lower_m":-0.926,"upper_m":-0.712},{"hour":17,"central_m":-0.798,"lower_m":-0.911,"upper_m":-0.684},{"hour":18,"central_m":-0.777,"lower_m":-0.897,"upper_m":-0.657},{"hour":19,"central_m":-0.757,"lower_m":-0.883,"upper_m":-0.63},{"hour":20,"central_m":-0.736,"lower_m":-0.87,"upper_m":-0.603},{"hour":21,"central_m":-0.716,"lower_m":-0.857,"upper_m":-0.576},{"hour":22,"central_m":-0.697,"lower_m":-0.844,"upper_m":-0.55},{"hour":23,"central_m":-0.677,"lower_m":-0.831,"upper_m":-0.523},{"hour":24,"central_m":-0.658,"lower_m":-0.818,"upper_m":-0.497}],"reference_crossing_h":null,"peak_relative_m":-0.658,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"exercise-route","route":{"destination":"Practice hub B","destination_id":"hub-b","capacity":500,"minutes":12,"weighted_cost":18.56,"nodes":["origin","bridge","hub-b"],"edges":["bridge","south"]},"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Chattogram. The illustrative screening index is 40/100 (watch). The scenario assumes 74 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — চট্টগ্রাম। অনুশীলনভিত্তিক ঝুঁকি সূচক 40/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 74 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery"],"provenance":"synthetic"}},{"id":"chattogram-baseline-48","preset":"baseline","scenario":{"region":"chattogram","rain_mm":74.0,"soil_pct":66.0,"margin_m":1.25,"trend_mh":0.018,"horizon_h":48,"blocked_edges":[],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":74.0,"runoff_proxy_mm":43.07,"runoff_fraction":0.582,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":1.25,"trend_mh":0.018,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":40,"category":"watch","components":[{"id":"rainfall","label":"24-hour rainfall","points":13.32,"max":36},{"id":"saturation","label":"Soil saturation","points":11.88,"max":18},{"id":"headroom","label":"River reference margin","points":10.5,"max":28},{"id":"rise","label":"River rise assumption","points":4.05,"max":18}],"trace":[{"hour":0,"central_m":-1.25,"lower_m":-1.25,"upper_m":-1.25},{"hour":1,"central_m":-1.214,"lower_m":-1.221,"upper_m":-1.207},{"hour":2,"central_m":-1.18,"lower_m":-1.193,"upper_m":-1.166},{"hour":3,"central_m":-1.147,"lower_m":-1.167,"upper_m":-1.127},{"hour":4,"central_m":-1.116,"lower_m":-1.143,"upper_m":-1.089},{"hour":5,"central_m":-1.087,"lower_m":-1.12,"upper_m":-1.053},{"hour":6,"central_m":-1.058,"lower_m":-1.098,"upper_m":-1.018},{"hour":7,"central_m":-1.031,"lower_m":-1.078,"upper_m":-0.984},{"hour":8,"central_m":-1.005,"lower_m":-1.058,"upper_m":-0.951},{"hour":9,"central_m":-0.979,"lower_m":-1.039,"upper_m":-0.919},{"hour":10,"central_m":-0.954,"lower_m":-1.021,"upper_m":-0.888},{"hour":11,"central_m":-0.93,"lower_m":-1.004,"upper_m":-0.857},{"hour":12,"central_m":-0.907,"lower_m":-0.987,"upper_m":-0.827},{"hour":13,"central_m":-0.884,"lower_m":-0.971,"upper_m":-0.798},{"hour":14,"central_m":-0.862,"lower_m":-0.956,"upper_m":-0.769},{"hour":15,"central_m":-0.84,"lower_m":-0.94,"upper_m":-0.74},{"hour":16,"central_m":-0.819,"lower_m":-0.926,"upper_m":-0.712},{"hour":17,"central_m":-0.798,"lower_m":-0.911,"upper_m":-0.684},{"hour":18,"central_m":-0.777,"lower_m":-0.897,"upper_m":-0.657},{"hour":19,"central_m":-0.757,"lower_m":-0.883,"upper_m":-0.63},{"hour":20,"central_m":-0.736,"lower_m":-0.87,"upper_m":-0.603},{"hour":21,"central_m":-0.716,"lower_m":-0.857,"upper_m":-0.576},{"hour":22,"central_m":-0.697,"lower_m":-0.844,"upper_m":-0.55},{"hour":23,"central_m":-0.677,"lower_m":-0.831,"upper_m":-0.523},{"hour":24,"central_m":-0.658,"lower_m":-0.818,"upper_m":-0.497},{"hour":25,"central_m":-0.638,"lower_m":-0.805,"upper_m":-0.471},{"hour":26,"central_m":-0.619,"lower_m":-0.793,"upper_m":-0.446},{"hour":27,"central_m":-0.6,"lower_m":-0.781,"upper_m":-0.42},{"hour":28,"central_m":-0.581,"lower_m":-0.768,"upper_m":-0.394},{"hour":29,"central_m":-0.563,"lower_m":-0.756,"upper_m":-0.369},{"hour":30,"central_m":-0.544,"lower_m":-0.744,"upper_m":-0.343},{"hour":31,"central_m":-0.525,"lower_m":-0.732,"upper_m":-0.318},{"hour":32,"central_m":-0.507,"lower_m":-0.72,"upper_m":-0.293},{"hour":33,"central_m":-0.488,"lower_m":-0.709,"upper_m":-0.268},{"hour":34,"central_m":-0.47,"lower_m":-0.697,"upper_m":-0.243},{"hour":35,"central_m":-0.451,"lower_m":-0.685,"upper_m":-0.217},{"hour":36,"central_m":-0.433,"lower_m":-0.673,"upper_m":-0.192},{"hour":37,"central_m":-0.415,"lower_m":-0.662,"upper_m":-0.167},{"hour":38,"central_m":-0.396,"lower_m":-0.65,"upper_m":-0.142},{"hour":39,"central_m":-0.378,"lower_m":-0.638,"upper_m":-0.117},{"hour":40,"central_m":-0.36,"lower_m":-0.627,"upper_m":-0.093},{"hour":41,"central_m":-0.342,"lower_m":-0.615,"upper_m":-0.068},{"hour":42,"central_m":-0.323,"lower_m":-0.604,"upper_m":-0.043},{"hour":43,"central_m":-0.305,"lower_m":-0.592,"upper_m":-0.018},{"hour":44,"central_m":-0.287,"lower_m":-0.581,"upper_m":0.007},{"hour":45,"central_m":-0.269,"lower_m":-0.569,"upper_m":0.032},{"hour":46,"central_m":-0.251,"lower_m":-0.558,"upper_m":0.056},{"hour":47,"central_m":-0.233,"lower_m":-0.547,"upper_m":0.081},{"hour":48,"central_m":-0.215,"lower_m":-0.535,"upper_m":0.106}],"reference_crossing_h":null,"peak_relative_m":-0.215,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"exercise-route","route":{"destination":"Practice hub B","destination_id":"hub-b","capacity":500,"minutes":12,"weighted_cost":18.56,"nodes":["origin","bridge","hub-b"],"edges":["bridge","south"]},"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Chattogram. The illustrative screening index is 40/100 (watch). The scenario assumes 74 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — চট্টগ্রাম। অনুশীলনভিত্তিক ঝুঁকি সূচক 40/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 74 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery"],"provenance":"synthetic"}},{"id":"chattogram-wet-6","preset":"wet","scenario":{"region":"chattogram","rain_mm":220.0,"soil_pct":95.0,"margin_m":0.25,"trend_mh":0.06,"horizon_h":6,"blocked_edges":[],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":220.0,"runoff_proxy_mm":172.7,"runoff_fraction":0.785,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.25,"trend_mh":0.06,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":91,"category":"critical","components":[{"id":"rainfall","label":"24-hour rainfall","points":36,"max":36},{"id":"saturation","label":"Soil saturation","points":17.1,"max":18},{"id":"headroom","label":"River reference margin","points":24.5,"max":28},{"id":"rise","label":"River rise assumption","points":13.5,"max":18}],"trace":[{"hour":0,"central_m":-0.25,"lower_m":-0.25,"upper_m":-0.25},{"hour":1,"central_m":-0.117,"lower_m":-0.132,"upper_m":-0.103},{"hour":2,"central_m":0.008,"lower_m":-0.021,"upper_m":0.036},{"hour":3,"central_m":0.126,"lower_m":0.083,"upper_m":0.169},{"hour":4,"central_m":0.238,"lower_m":0.181,"upper_m":0.295},{"hour":5,"central_m":0.344,"lower_m":0.273,"upper_m":0.416},{"hour":6,"central_m":0.446,"lower_m":0.361,"upper_m":0.532}],"reference_crossing_h":2,"peak_relative_m":0.446,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"exercise-route","route":{"destination":"Practice hub A","destination_id":"hub-a","capacity":180,"minutes":18,"weighted_cost":22.0,"nodes":["origin","junction","hub-a"],"edges":["north","ridge"]},"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Chattogram. The illustrative screening index is 91/100 (critical). The scenario assumes 220 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — চট্টগ্রাম। অনুশীলনভিত্তিক ঝুঁকি সূচক 91/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 220 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery"],"provenance":"synthetic"}},{"id":"chattogram-wet-12","preset":"wet","scenario":{"region":"chattogram","rain_mm":220.0,"soil_pct":95.0,"margin_m":0.25,"trend_mh":0.06,"horizon_h":12,"blocked_edges":[],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":220.0,"runoff_proxy_mm":172.7,"runoff_fraction":0.785,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.25,"trend_mh":0.06,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":91,"category":"critical","components":[{"id":"rainfall","label":"24-hour rainfall","points":36,"max":36},{"id":"saturation","label":"Soil saturation","points":17.1,"max":18},{"id":"headroom","label":"River reference margin","points":24.5,"max":28},{"id":"rise","label":"River rise assumption","points":13.5,"max":18}],"trace":[{"hour":0,"central_m":-0.25,"lower_m":-0.25,"upper_m":-0.25},{"hour":1,"central_m":-0.117,"lower_m":-0.132,"upper_m":-0.103},{"hour":2,"central_m":0.008,"lower_m":-0.021,"upper_m":0.036},{"hour":3,"central_m":0.126,"lower_m":0.083,"upper_m":0.169},{"hour":4,"central_m":0.238,"lower_m":0.181,"upper_m":0.295},{"hour":5,"central_m":0.344,"lower_m":0.273,"upper_m":0.416},{"hour":6,"central_m":0.446,"lower_m":0.361,"upper_m":0.532},{"hour":7,"central_m":0.543,"lower_m":0.444,"upper_m":0.643},{"hour":8,"central_m":0.637,"lower_m":0.523,"upper_m":0.751},{"hour":9,"central_m":0.727,"lower_m":0.599,"upper_m":0.855},{"hour":10,"central_m":0.813,"lower_m":0.671,"upper_m":0.956},{"hour":11,"central_m":0.897,"lower_m":0.741,"upper_m":1.054},{"hour":12,"central_m":0.979,"lower_m":0.808,"upper_m":1.15}],"reference_crossing_h":2,"peak_relative_m":0.979,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"exercise-route","route":{"destination":"Practice hub A","destination_id":"hub-a","capacity":180,"minutes":18,"weighted_cost":22.0,"nodes":["origin","junction","hub-a"],"edges":["north","ridge"]},"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Chattogram. The illustrative screening index is 91/100 (critical). The scenario assumes 220 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — চট্টগ্রাম। অনুশীলনভিত্তিক ঝুঁকি সূচক 91/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 220 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery"],"provenance":"synthetic"}},{"id":"chattogram-wet-24","preset":"wet","scenario":{"region":"chattogram","rain_mm":220.0,"soil_pct":95.0,"margin_m":0.25,"trend_mh":0.06,"horizon_h":24,"blocked_edges":[],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":220.0,"runoff_proxy_mm":172.7,"runoff_fraction":0.785,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.25,"trend_mh":0.06,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":91,"category":"critical","components":[{"id":"rainfall","label":"24-hour rainfall","points":36,"max":36},{"id":"saturation","label":"Soil saturation","points":17.1,"max":18},{"id":"headroom","label":"River reference margin","points":24.5,"max":28},{"id":"rise","label":"River rise assumption","points":13.5,"max":18}],"trace":[{"hour":0,"central_m":-0.25,"lower_m":-0.25,"upper_m":-0.25},{"hour":1,"central_m":-0.117,"lower_m":-0.132,"upper_m":-0.103},{"hour":2,"central_m":0.008,"lower_m":-0.021,"upper_m":0.036},{"hour":3,"central_m":0.126,"lower_m":0.083,"upper_m":0.169},{"hour":4,"central_m":0.238,"lower_m":0.181,"upper_m":0.295},{"hour":5,"central_m":0.344,"lower_m":0.273,"upper_m":0.416},{"hour":6,"central_m":0.446,"lower_m":0.361,"upper_m":0.532},{"hour":7,"central_m":0.543,"lower_m":0.444,"upper_m":0.643},{"hour":8,"central_m":0.637,"lower_m":0.523,"upper_m":0.751},{"hour":9,"central_m":0.727,"lower_m":0.599,"upper_m":0.855},{"hour":10,"central_m":0.813,"lower_m":0.671,"upper_m":0.956},{"hour":11,"central_m":0.897,"lower_m":0.741,"upper_m":1.054},{"hour":12,"central_m":0.979,"lower_m":0.808,"upper_m":1.15},{"hour":13,"central_m":1.058,"lower_m":0.873,"upper_m":1.243},{"hour":14,"central_m":1.135,"lower_m":0.936,"upper_m":1.334},{"hour":15,"central_m":1.21,"lower_m":0.997,"upper_m":1.424},{"hour":16,"central_m":1.284,"lower_m":1.056,"upper_m":1.512},{"hour":17,"central_m":1.356,"lower_m":1.114,"upper_m":1.598},{"hour":18,"central_m":1.427,"lower_m":1.171,"upper_m":1.684},{"hour":19,"central_m":1.497,"lower_m":1.227,"upper_m":1.768},{"hour":20,"central_m":1.566,"lower_m":1.281,"upper_m":1.851},{"hour":21,"central_m":1.634,"lower_m":1.335,"upper_m":1.933},{"hour":22,"central_m":1.701,"lower_m":1.388,"upper_m":2.014},{"hour":23,"central_m":1.767,"lower_m":1.44,"upper_m":2.095},{"hour":24,"central_m":1.833,"lower_m":1.491,"upper_m":2.175}],"reference_crossing_h":2,"peak_relative_m":1.833,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"exercise-route","route":{"destination":"Practice hub A","destination_id":"hub-a","capacity":180,"minutes":18,"weighted_cost":22.0,"nodes":["origin","junction","hub-a"],"edges":["north","ridge"]},"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Chattogram. The illustrative screening index is 91/100 (critical). The scenario assumes 220 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — চট্টগ্রাম। অনুশীলনভিত্তিক ঝুঁকি সূচক 91/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 220 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery"],"provenance":"synthetic"}},{"id":"chattogram-wet-48","preset":"wet","scenario":{"region":"chattogram","rain_mm":220.0,"soil_pct":95.0,"margin_m":0.25,"trend_mh":0.06,"horizon_h":48,"blocked_edges":[],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":220.0,"runoff_proxy_mm":172.7,"runoff_fraction":0.785,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":0.25,"trend_mh":0.06,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":91,"category":"critical","components":[{"id":"rainfall","label":"24-hour rainfall","points":36,"max":36},{"id":"saturation","label":"Soil saturation","points":17.1,"max":18},{"id":"headroom","label":"River reference margin","points":24.5,"max":28},{"id":"rise","label":"River rise assumption","points":13.5,"max":18}],"trace":[{"hour":0,"central_m":-0.25,"lower_m":-0.25,"upper_m":-0.25},{"hour":1,"central_m":-0.117,"lower_m":-0.132,"upper_m":-0.103},{"hour":2,"central_m":0.008,"lower_m":-0.021,"upper_m":0.036},{"hour":3,"central_m":0.126,"lower_m":0.083,"upper_m":0.169},{"hour":4,"central_m":0.238,"lower_m":0.181,"upper_m":0.295},{"hour":5,"central_m":0.344,"lower_m":0.273,"upper_m":0.416},{"hour":6,"central_m":0.446,"lower_m":0.361,"upper_m":0.532},{"hour":7,"central_m":0.543,"lower_m":0.444,"upper_m":0.643},{"hour":8,"central_m":0.637,"lower_m":0.523,"upper_m":0.751},{"hour":9,"central_m":0.727,"lower_m":0.599,"upper_m":0.855},{"hour":10,"central_m":0.813,"lower_m":0.671,"upper_m":0.956},{"hour":11,"central_m":0.897,"lower_m":0.741,"upper_m":1.054},{"hour":12,"central_m":0.979,"lower_m":0.808,"upper_m":1.15},{"hour":13,"central_m":1.058,"lower_m":0.873,"upper_m":1.243},{"hour":14,"central_m":1.135,"lower_m":0.936,"upper_m":1.334},{"hour":15,"central_m":1.21,"lower_m":0.997,"upper_m":1.424},{"hour":16,"central_m":1.284,"lower_m":1.056,"upper_m":1.512},{"hour":17,"central_m":1.356,"lower_m":1.114,"upper_m":1.598},{"hour":18,"central_m":1.427,"lower_m":1.171,"upper_m":1.684},{"hour":19,"central_m":1.497,"lower_m":1.227,"upper_m":1.768},{"hour":20,"central_m":1.566,"lower_m":1.281,"upper_m":1.851},{"hour":21,"central_m":1.634,"lower_m":1.335,"upper_m":1.933},{"hour":22,"central_m":1.701,"lower_m":1.388,"upper_m":2.014},{"hour":23,"central_m":1.767,"lower_m":1.44,"upper_m":2.095},{"hour":24,"central_m":1.833,"lower_m":1.491,"upper_m":2.175},{"hour":25,"central_m":1.898,"lower_m":1.542,"upper_m":2.254},{"hour":26,"central_m":1.962,"lower_m":1.592,"upper_m":2.333},{"hour":27,"central_m":2.026,"lower_m":1.642,"upper_m":2.411},{"hour":28,"central_m":2.09,"lower_m":1.691,"upper_m":2.489},{"hour":29,"central_m":2.153,"lower_m":1.74,"upper_m":2.566},{"hour":30,"central_m":2.216,"lower_m":1.789,"upper_m":2.643},{"hour":31,"central_m":2.279,"lower_m":1.837,"upper_m":2.72},{"hour":32,"central_m":2.341,"lower_m":1.885,"upper_m":2.797},{"hour":33,"central_m":2.403,"lower_m":1.933,"upper_m":2.873},{"hour":34,"central_m":2.465,"lower_m":1.981,"upper_m":2.949},{"hour":35,"central_m":2.527,"lower_m":2.028,"upper_m":3.025},{"hour":36,"central_m":2.588,"lower_m":2.075,"upper_m":3.101},{"hour":37,"central_m":2.649,"lower_m":2.123,"upper_m":3.176},{"hour":38,"central_m":2.711,"lower_m":2.17,"upper_m":3.252},{"hour":39,"central_m":2.772,"lower_m":2.216,"upper_m":3.327},{"hour":40,"central_m":2.833,"lower_m":2.263,"upper_m":3.402},{"hour":41,"central_m":2.894,"lower_m":2.31,"upper_m":3.477},{"hour":42,"central_m":2.954,"lower_m":2.356,"upper_m":3.552},{"hour":43,"central_m":3.015,"lower_m":2.403,"upper_m":3.627},{"hour":44,"central_m":3.076,"lower_m":2.449,"upper_m":3.702},{"hour":45,"central_m":3.136,"lower_m":2.495,"upper_m":3.777},{"hour":46,"central_m":3.197,"lower_m":2.542,"upper_m":3.852},{"hour":47,"central_m":3.257,"lower_m":2.588,"upper_m":3.926},{"hour":48,"central_m":3.317,"lower_m":2.634,"upper_m":4.001}],"reference_crossing_h":2,"peak_relative_m":3.317,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"exercise-route","route":{"destination":"Practice hub A","destination_id":"hub-a","capacity":180,"minutes":18,"weighted_cost":22.0,"nodes":["origin","junction","hub-a"],"edges":["north","ridge"]},"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Chattogram. The illustrative screening index is 91/100 (critical). The scenario assumes 220 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — চট্টগ্রাম। অনুশীলনভিত্তিক ঝুঁকি সূচক 91/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 220 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery"],"provenance":"synthetic"}},{"id":"chattogram-closed-6","preset":"closed","scenario":{"region":"chattogram","rain_mm":74.0,"soil_pct":66.0,"margin_m":1.25,"trend_mh":0.018,"horizon_h":6,"blocked_edges":["bridge","north"],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":74.0,"runoff_proxy_mm":43.07,"runoff_fraction":0.582,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":1.25,"trend_mh":0.018,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":40,"category":"watch","components":[{"id":"rainfall","label":"24-hour rainfall","points":13.32,"max":36},{"id":"saturation","label":"Soil saturation","points":11.88,"max":18},{"id":"headroom","label":"River reference margin","points":10.5,"max":28},{"id":"rise","label":"River rise assumption","points":4.05,"max":18}],"trace":[{"hour":0,"central_m":-1.25,"lower_m":-1.25,"upper_m":-1.25},{"hour":1,"central_m":-1.214,"lower_m":-1.221,"upper_m":-1.207},{"hour":2,"central_m":-1.18,"lower_m":-1.193,"upper_m":-1.166},{"hour":3,"central_m":-1.147,"lower_m":-1.167,"upper_m":-1.127},{"hour":4,"central_m":-1.116,"lower_m":-1.143,"upper_m":-1.089},{"hour":5,"central_m":-1.087,"lower_m":-1.12,"upper_m":-1.053},{"hour":6,"central_m":-1.058,"lower_m":-1.098,"upper_m":-1.018}],"reference_crossing_h":null,"peak_relative_m":-1.058,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"no-feasible-route","route":null,"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":["bridge","north"],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Chattogram. The illustrative screening index is 40/100 (watch). The scenario assumes 74 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — চট্টগ্রাম। অনুশীলনভিত্তিক ঝুঁকি সূচক 40/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 74 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery","No feasible route for the exercise inputs"],"provenance":"synthetic"}},{"id":"chattogram-closed-12","preset":"closed","scenario":{"region":"chattogram","rain_mm":74.0,"soil_pct":66.0,"margin_m":1.25,"trend_mh":0.018,"horizon_h":12,"blocked_edges":["bridge","north"],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":74.0,"runoff_proxy_mm":43.07,"runoff_fraction":0.582,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":1.25,"trend_mh":0.018,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":40,"category":"watch","components":[{"id":"rainfall","label":"24-hour rainfall","points":13.32,"max":36},{"id":"saturation","label":"Soil saturation","points":11.88,"max":18},{"id":"headroom","label":"River reference margin","points":10.5,"max":28},{"id":"rise","label":"River rise assumption","points":4.05,"max":18}],"trace":[{"hour":0,"central_m":-1.25,"lower_m":-1.25,"upper_m":-1.25},{"hour":1,"central_m":-1.214,"lower_m":-1.221,"upper_m":-1.207},{"hour":2,"central_m":-1.18,"lower_m":-1.193,"upper_m":-1.166},{"hour":3,"central_m":-1.147,"lower_m":-1.167,"upper_m":-1.127},{"hour":4,"central_m":-1.116,"lower_m":-1.143,"upper_m":-1.089},{"hour":5,"central_m":-1.087,"lower_m":-1.12,"upper_m":-1.053},{"hour":6,"central_m":-1.058,"lower_m":-1.098,"upper_m":-1.018},{"hour":7,"central_m":-1.031,"lower_m":-1.078,"upper_m":-0.984},{"hour":8,"central_m":-1.005,"lower_m":-1.058,"upper_m":-0.951},{"hour":9,"central_m":-0.979,"lower_m":-1.039,"upper_m":-0.919},{"hour":10,"central_m":-0.954,"lower_m":-1.021,"upper_m":-0.888},{"hour":11,"central_m":-0.93,"lower_m":-1.004,"upper_m":-0.857},{"hour":12,"central_m":-0.907,"lower_m":-0.987,"upper_m":-0.827}],"reference_crossing_h":null,"peak_relative_m":-0.907,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"no-feasible-route","route":null,"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":["bridge","north"],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Chattogram. The illustrative screening index is 40/100 (watch). The scenario assumes 74 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — চট্টগ্রাম। অনুশীলনভিত্তিক ঝুঁকি সূচক 40/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 74 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery","No feasible route for the exercise inputs"],"provenance":"synthetic"}},{"id":"chattogram-closed-24","preset":"closed","scenario":{"region":"chattogram","rain_mm":74.0,"soil_pct":66.0,"margin_m":1.25,"trend_mh":0.018,"horizon_h":24,"blocked_edges":["bridge","north"],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":74.0,"runoff_proxy_mm":43.07,"runoff_fraction":0.582,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":1.25,"trend_mh":0.018,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":40,"category":"watch","components":[{"id":"rainfall","label":"24-hour rainfall","points":13.32,"max":36},{"id":"saturation","label":"Soil saturation","points":11.88,"max":18},{"id":"headroom","label":"River reference margin","points":10.5,"max":28},{"id":"rise","label":"River rise assumption","points":4.05,"max":18}],"trace":[{"hour":0,"central_m":-1.25,"lower_m":-1.25,"upper_m":-1.25},{"hour":1,"central_m":-1.214,"lower_m":-1.221,"upper_m":-1.207},{"hour":2,"central_m":-1.18,"lower_m":-1.193,"upper_m":-1.166},{"hour":3,"central_m":-1.147,"lower_m":-1.167,"upper_m":-1.127},{"hour":4,"central_m":-1.116,"lower_m":-1.143,"upper_m":-1.089},{"hour":5,"central_m":-1.087,"lower_m":-1.12,"upper_m":-1.053},{"hour":6,"central_m":-1.058,"lower_m":-1.098,"upper_m":-1.018},{"hour":7,"central_m":-1.031,"lower_m":-1.078,"upper_m":-0.984},{"hour":8,"central_m":-1.005,"lower_m":-1.058,"upper_m":-0.951},{"hour":9,"central_m":-0.979,"lower_m":-1.039,"upper_m":-0.919},{"hour":10,"central_m":-0.954,"lower_m":-1.021,"upper_m":-0.888},{"hour":11,"central_m":-0.93,"lower_m":-1.004,"upper_m":-0.857},{"hour":12,"central_m":-0.907,"lower_m":-0.987,"upper_m":-0.827},{"hour":13,"central_m":-0.884,"lower_m":-0.971,"upper_m":-0.798},{"hour":14,"central_m":-0.862,"lower_m":-0.956,"upper_m":-0.769},{"hour":15,"central_m":-0.84,"lower_m":-0.94,"upper_m":-0.74},{"hour":16,"central_m":-0.819,"lower_m":-0.926,"upper_m":-0.712},{"hour":17,"central_m":-0.798,"lower_m":-0.911,"upper_m":-0.684},{"hour":18,"central_m":-0.777,"lower_m":-0.897,"upper_m":-0.657},{"hour":19,"central_m":-0.757,"lower_m":-0.883,"upper_m":-0.63},{"hour":20,"central_m":-0.736,"lower_m":-0.87,"upper_m":-0.603},{"hour":21,"central_m":-0.716,"lower_m":-0.857,"upper_m":-0.576},{"hour":22,"central_m":-0.697,"lower_m":-0.844,"upper_m":-0.55},{"hour":23,"central_m":-0.677,"lower_m":-0.831,"upper_m":-0.523},{"hour":24,"central_m":-0.658,"lower_m":-0.818,"upper_m":-0.497}],"reference_crossing_h":null,"peak_relative_m":-0.658,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"no-feasible-route","route":null,"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":["bridge","north"],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Chattogram. The illustrative screening index is 40/100 (watch). The scenario assumes 74 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — চট্টগ্রাম। অনুশীলনভিত্তিক ঝুঁকি সূচক 40/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 74 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery","No feasible route for the exercise inputs"],"provenance":"synthetic"}},{"id":"chattogram-closed-48","preset":"closed","scenario":{"region":"chattogram","rain_mm":74.0,"soil_pct":66.0,"margin_m":1.25,"trend_mh":0.018,"horizon_h":48,"blocked_edges":["bridge","north"],"people":120,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":74.0,"runoff_proxy_mm":43.07,"runoff_fraction":0.582,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":1.25,"trend_mh":0.018,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":40,"category":"watch","components":[{"id":"rainfall","label":"24-hour rainfall","points":13.32,"max":36},{"id":"saturation","label":"Soil saturation","points":11.88,"max":18},{"id":"headroom","label":"River reference margin","points":10.5,"max":28},{"id":"rise","label":"River rise assumption","points":4.05,"max":18}],"trace":[{"hour":0,"central_m":-1.25,"lower_m":-1.25,"upper_m":-1.25},{"hour":1,"central_m":-1.214,"lower_m":-1.221,"upper_m":-1.207},{"hour":2,"central_m":-1.18,"lower_m":-1.193,"upper_m":-1.166},{"hour":3,"central_m":-1.147,"lower_m":-1.167,"upper_m":-1.127},{"hour":4,"central_m":-1.116,"lower_m":-1.143,"upper_m":-1.089},{"hour":5,"central_m":-1.087,"lower_m":-1.12,"upper_m":-1.053},{"hour":6,"central_m":-1.058,"lower_m":-1.098,"upper_m":-1.018},{"hour":7,"central_m":-1.031,"lower_m":-1.078,"upper_m":-0.984},{"hour":8,"central_m":-1.005,"lower_m":-1.058,"upper_m":-0.951},{"hour":9,"central_m":-0.979,"lower_m":-1.039,"upper_m":-0.919},{"hour":10,"central_m":-0.954,"lower_m":-1.021,"upper_m":-0.888},{"hour":11,"central_m":-0.93,"lower_m":-1.004,"upper_m":-0.857},{"hour":12,"central_m":-0.907,"lower_m":-0.987,"upper_m":-0.827},{"hour":13,"central_m":-0.884,"lower_m":-0.971,"upper_m":-0.798},{"hour":14,"central_m":-0.862,"lower_m":-0.956,"upper_m":-0.769},{"hour":15,"central_m":-0.84,"lower_m":-0.94,"upper_m":-0.74},{"hour":16,"central_m":-0.819,"lower_m":-0.926,"upper_m":-0.712},{"hour":17,"central_m":-0.798,"lower_m":-0.911,"upper_m":-0.684},{"hour":18,"central_m":-0.777,"lower_m":-0.897,"upper_m":-0.657},{"hour":19,"central_m":-0.757,"lower_m":-0.883,"upper_m":-0.63},{"hour":20,"central_m":-0.736,"lower_m":-0.87,"upper_m":-0.603},{"hour":21,"central_m":-0.716,"lower_m":-0.857,"upper_m":-0.576},{"hour":22,"central_m":-0.697,"lower_m":-0.844,"upper_m":-0.55},{"hour":23,"central_m":-0.677,"lower_m":-0.831,"upper_m":-0.523},{"hour":24,"central_m":-0.658,"lower_m":-0.818,"upper_m":-0.497},{"hour":25,"central_m":-0.638,"lower_m":-0.805,"upper_m":-0.471},{"hour":26,"central_m":-0.619,"lower_m":-0.793,"upper_m":-0.446},{"hour":27,"central_m":-0.6,"lower_m":-0.781,"upper_m":-0.42},{"hour":28,"central_m":-0.581,"lower_m":-0.768,"upper_m":-0.394},{"hour":29,"central_m":-0.563,"lower_m":-0.756,"upper_m":-0.369},{"hour":30,"central_m":-0.544,"lower_m":-0.744,"upper_m":-0.343},{"hour":31,"central_m":-0.525,"lower_m":-0.732,"upper_m":-0.318},{"hour":32,"central_m":-0.507,"lower_m":-0.72,"upper_m":-0.293},{"hour":33,"central_m":-0.488,"lower_m":-0.709,"upper_m":-0.268},{"hour":34,"central_m":-0.47,"lower_m":-0.697,"upper_m":-0.243},{"hour":35,"central_m":-0.451,"lower_m":-0.685,"upper_m":-0.217},{"hour":36,"central_m":-0.433,"lower_m":-0.673,"upper_m":-0.192},{"hour":37,"central_m":-0.415,"lower_m":-0.662,"upper_m":-0.167},{"hour":38,"central_m":-0.396,"lower_m":-0.65,"upper_m":-0.142},{"hour":39,"central_m":-0.378,"lower_m":-0.638,"upper_m":-0.117},{"hour":40,"central_m":-0.36,"lower_m":-0.627,"upper_m":-0.093},{"hour":41,"central_m":-0.342,"lower_m":-0.615,"upper_m":-0.068},{"hour":42,"central_m":-0.323,"lower_m":-0.604,"upper_m":-0.043},{"hour":43,"central_m":-0.305,"lower_m":-0.592,"upper_m":-0.018},{"hour":44,"central_m":-0.287,"lower_m":-0.581,"upper_m":0.007},{"hour":45,"central_m":-0.269,"lower_m":-0.569,"upper_m":0.032},{"hour":46,"central_m":-0.251,"lower_m":-0.558,"upper_m":0.056},{"hour":47,"central_m":-0.233,"lower_m":-0.547,"upper_m":0.081},{"hour":48,"central_m":-0.215,"lower_m":-0.535,"upper_m":0.106}],"reference_crossing_h":null,"peak_relative_m":-0.215,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"no-feasible-route","route":null,"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":["bridge","north"],"people":120,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Chattogram. The illustrative screening index is 40/100 (watch). The scenario assumes 74 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — চট্টগ্রাম। অনুশীলনভিত্তিক ঝুঁকি সূচক 40/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 74 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery","No feasible route for the exercise inputs"],"provenance":"synthetic"}},{"id":"chattogram-capacity-6","preset":"capacity","scenario":{"region":"chattogram","rain_mm":74.0,"soil_pct":66.0,"margin_m":1.25,"trend_mh":0.018,"horizon_h":6,"blocked_edges":[],"people":600,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":74.0,"runoff_proxy_mm":43.07,"runoff_fraction":0.582,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":1.25,"trend_mh":0.018,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":40,"category":"watch","components":[{"id":"rainfall","label":"24-hour rainfall","points":13.32,"max":36},{"id":"saturation","label":"Soil saturation","points":11.88,"max":18},{"id":"headroom","label":"River reference margin","points":10.5,"max":28},{"id":"rise","label":"River rise assumption","points":4.05,"max":18}],"trace":[{"hour":0,"central_m":-1.25,"lower_m":-1.25,"upper_m":-1.25},{"hour":1,"central_m":-1.214,"lower_m":-1.221,"upper_m":-1.207},{"hour":2,"central_m":-1.18,"lower_m":-1.193,"upper_m":-1.166},{"hour":3,"central_m":-1.147,"lower_m":-1.167,"upper_m":-1.127},{"hour":4,"central_m":-1.116,"lower_m":-1.143,"upper_m":-1.089},{"hour":5,"central_m":-1.087,"lower_m":-1.12,"upper_m":-1.053},{"hour":6,"central_m":-1.058,"lower_m":-1.098,"upper_m":-1.018}],"reference_crossing_h":null,"peak_relative_m":-1.058,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"no-feasible-route","route":null,"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":600,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Chattogram. The illustrative screening index is 40/100 (watch). The scenario assumes 74 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — চট্টগ্রাম। অনুশীলনভিত্তিক ঝুঁকি সূচক 40/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 74 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery","No feasible route for the exercise inputs"],"provenance":"synthetic"}},{"id":"chattogram-capacity-12","preset":"capacity","scenario":{"region":"chattogram","rain_mm":74.0,"soil_pct":66.0,"margin_m":1.25,"trend_mh":0.018,"horizon_h":12,"blocked_edges":[],"people":600,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":74.0,"runoff_proxy_mm":43.07,"runoff_fraction":0.582,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":1.25,"trend_mh":0.018,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":40,"category":"watch","components":[{"id":"rainfall","label":"24-hour rainfall","points":13.32,"max":36},{"id":"saturation","label":"Soil saturation","points":11.88,"max":18},{"id":"headroom","label":"River reference margin","points":10.5,"max":28},{"id":"rise","label":"River rise assumption","points":4.05,"max":18}],"trace":[{"hour":0,"central_m":-1.25,"lower_m":-1.25,"upper_m":-1.25},{"hour":1,"central_m":-1.214,"lower_m":-1.221,"upper_m":-1.207},{"hour":2,"central_m":-1.18,"lower_m":-1.193,"upper_m":-1.166},{"hour":3,"central_m":-1.147,"lower_m":-1.167,"upper_m":-1.127},{"hour":4,"central_m":-1.116,"lower_m":-1.143,"upper_m":-1.089},{"hour":5,"central_m":-1.087,"lower_m":-1.12,"upper_m":-1.053},{"hour":6,"central_m":-1.058,"lower_m":-1.098,"upper_m":-1.018},{"hour":7,"central_m":-1.031,"lower_m":-1.078,"upper_m":-0.984},{"hour":8,"central_m":-1.005,"lower_m":-1.058,"upper_m":-0.951},{"hour":9,"central_m":-0.979,"lower_m":-1.039,"upper_m":-0.919},{"hour":10,"central_m":-0.954,"lower_m":-1.021,"upper_m":-0.888},{"hour":11,"central_m":-0.93,"lower_m":-1.004,"upper_m":-0.857},{"hour":12,"central_m":-0.907,"lower_m":-0.987,"upper_m":-0.827}],"reference_crossing_h":null,"peak_relative_m":-0.907,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"no-feasible-route","route":null,"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":600,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Chattogram. The illustrative screening index is 40/100 (watch). The scenario assumes 74 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — চট্টগ্রাম। অনুশীলনভিত্তিক ঝুঁকি সূচক 40/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 74 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery","No feasible route for the exercise inputs"],"provenance":"synthetic"}},{"id":"chattogram-capacity-24","preset":"capacity","scenario":{"region":"chattogram","rain_mm":74.0,"soil_pct":66.0,"margin_m":1.25,"trend_mh":0.018,"horizon_h":24,"blocked_edges":[],"people":600,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":74.0,"runoff_proxy_mm":43.07,"runoff_fraction":0.582,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":1.25,"trend_mh":0.018,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":40,"category":"watch","components":[{"id":"rainfall","label":"24-hour rainfall","points":13.32,"max":36},{"id":"saturation","label":"Soil saturation","points":11.88,"max":18},{"id":"headroom","label":"River reference margin","points":10.5,"max":28},{"id":"rise","label":"River rise assumption","points":4.05,"max":18}],"trace":[{"hour":0,"central_m":-1.25,"lower_m":-1.25,"upper_m":-1.25},{"hour":1,"central_m":-1.214,"lower_m":-1.221,"upper_m":-1.207},{"hour":2,"central_m":-1.18,"lower_m":-1.193,"upper_m":-1.166},{"hour":3,"central_m":-1.147,"lower_m":-1.167,"upper_m":-1.127},{"hour":4,"central_m":-1.116,"lower_m":-1.143,"upper_m":-1.089},{"hour":5,"central_m":-1.087,"lower_m":-1.12,"upper_m":-1.053},{"hour":6,"central_m":-1.058,"lower_m":-1.098,"upper_m":-1.018},{"hour":7,"central_m":-1.031,"lower_m":-1.078,"upper_m":-0.984},{"hour":8,"central_m":-1.005,"lower_m":-1.058,"upper_m":-0.951},{"hour":9,"central_m":-0.979,"lower_m":-1.039,"upper_m":-0.919},{"hour":10,"central_m":-0.954,"lower_m":-1.021,"upper_m":-0.888},{"hour":11,"central_m":-0.93,"lower_m":-1.004,"upper_m":-0.857},{"hour":12,"central_m":-0.907,"lower_m":-0.987,"upper_m":-0.827},{"hour":13,"central_m":-0.884,"lower_m":-0.971,"upper_m":-0.798},{"hour":14,"central_m":-0.862,"lower_m":-0.956,"upper_m":-0.769},{"hour":15,"central_m":-0.84,"lower_m":-0.94,"upper_m":-0.74},{"hour":16,"central_m":-0.819,"lower_m":-0.926,"upper_m":-0.712},{"hour":17,"central_m":-0.798,"lower_m":-0.911,"upper_m":-0.684},{"hour":18,"central_m":-0.777,"lower_m":-0.897,"upper_m":-0.657},{"hour":19,"central_m":-0.757,"lower_m":-0.883,"upper_m":-0.63},{"hour":20,"central_m":-0.736,"lower_m":-0.87,"upper_m":-0.603},{"hour":21,"central_m":-0.716,"lower_m":-0.857,"upper_m":-0.576},{"hour":22,"central_m":-0.697,"lower_m":-0.844,"upper_m":-0.55},{"hour":23,"central_m":-0.677,"lower_m":-0.831,"upper_m":-0.523},{"hour":24,"central_m":-0.658,"lower_m":-0.818,"upper_m":-0.497}],"reference_crossing_h":null,"peak_relative_m":-0.658,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"no-feasible-route","route":null,"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":600,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Chattogram. The illustrative screening index is 40/100 (watch). The scenario assumes 74 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — চট্টগ্রাম। অনুশীলনভিত্তিক ঝুঁকি সূচক 40/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 74 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery","No feasible route for the exercise inputs"],"provenance":"synthetic"}},{"id":"chattogram-capacity-48","preset":"capacity","scenario":{"region":"chattogram","rain_mm":74.0,"soil_pct":66.0,"margin_m":1.25,"trend_mh":0.018,"horizon_h":48,"blocked_edges":[],"people":600,"source":"synthetic","observed_at":null,"observation_id":null},"rainfall":{"rain_24h_mm":74.0,"runoff_proxy_mm":43.07,"runoff_fraction":0.582,"note":"Illustrative runoff proxy; not a measured discharge or flood depth."},"river":{"margin_m":1.25,"trend_mh":0.018,"data_quality":"synthetic","age_h":null,"note":"Margin is below a scenario reference, not an official warning threshold."},"risk":{"score":40,"category":"watch","components":[{"id":"rainfall","label":"24-hour rainfall","points":13.32,"max":36},{"id":"saturation","label":"Soil saturation","points":11.88,"max":18},{"id":"headroom","label":"River reference margin","points":10.5,"max":28},{"id":"rise","label":"River rise assumption","points":4.05,"max":18}],"trace":[{"hour":0,"central_m":-1.25,"lower_m":-1.25,"upper_m":-1.25},{"hour":1,"central_m":-1.214,"lower_m":-1.221,"upper_m":-1.207},{"hour":2,"central_m":-1.18,"lower_m":-1.193,"upper_m":-1.166},{"hour":3,"central_m":-1.147,"lower_m":-1.167,"upper_m":-1.127},{"hour":4,"central_m":-1.116,"lower_m":-1.143,"upper_m":-1.089},{"hour":5,"central_m":-1.087,"lower_m":-1.12,"upper_m":-1.053},{"hour":6,"central_m":-1.058,"lower_m":-1.098,"upper_m":-1.018},{"hour":7,"central_m":-1.031,"lower_m":-1.078,"upper_m":-0.984},{"hour":8,"central_m":-1.005,"lower_m":-1.058,"upper_m":-0.951},{"hour":9,"central_m":-0.979,"lower_m":-1.039,"upper_m":-0.919},{"hour":10,"central_m":-0.954,"lower_m":-1.021,"upper_m":-0.888},{"hour":11,"central_m":-0.93,"lower_m":-1.004,"upper_m":-0.857},{"hour":12,"central_m":-0.907,"lower_m":-0.987,"upper_m":-0.827},{"hour":13,"central_m":-0.884,"lower_m":-0.971,"upper_m":-0.798},{"hour":14,"central_m":-0.862,"lower_m":-0.956,"upper_m":-0.769},{"hour":15,"central_m":-0.84,"lower_m":-0.94,"upper_m":-0.74},{"hour":16,"central_m":-0.819,"lower_m":-0.926,"upper_m":-0.712},{"hour":17,"central_m":-0.798,"lower_m":-0.911,"upper_m":-0.684},{"hour":18,"central_m":-0.777,"lower_m":-0.897,"upper_m":-0.657},{"hour":19,"central_m":-0.757,"lower_m":-0.883,"upper_m":-0.63},{"hour":20,"central_m":-0.736,"lower_m":-0.87,"upper_m":-0.603},{"hour":21,"central_m":-0.716,"lower_m":-0.857,"upper_m":-0.576},{"hour":22,"central_m":-0.697,"lower_m":-0.844,"upper_m":-0.55},{"hour":23,"central_m":-0.677,"lower_m":-0.831,"upper_m":-0.523},{"hour":24,"central_m":-0.658,"lower_m":-0.818,"upper_m":-0.497},{"hour":25,"central_m":-0.638,"lower_m":-0.805,"upper_m":-0.471},{"hour":26,"central_m":-0.619,"lower_m":-0.793,"upper_m":-0.446},{"hour":27,"central_m":-0.6,"lower_m":-0.781,"upper_m":-0.42},{"hour":28,"central_m":-0.581,"lower_m":-0.768,"upper_m":-0.394},{"hour":29,"central_m":-0.563,"lower_m":-0.756,"upper_m":-0.369},{"hour":30,"central_m":-0.544,"lower_m":-0.744,"upper_m":-0.343},{"hour":31,"central_m":-0.525,"lower_m":-0.732,"upper_m":-0.318},{"hour":32,"central_m":-0.507,"lower_m":-0.72,"upper_m":-0.293},{"hour":33,"central_m":-0.488,"lower_m":-0.709,"upper_m":-0.268},{"hour":34,"central_m":-0.47,"lower_m":-0.697,"upper_m":-0.243},{"hour":35,"central_m":-0.451,"lower_m":-0.685,"upper_m":-0.217},{"hour":36,"central_m":-0.433,"lower_m":-0.673,"upper_m":-0.192},{"hour":37,"central_m":-0.415,"lower_m":-0.662,"upper_m":-0.167},{"hour":38,"central_m":-0.396,"lower_m":-0.65,"upper_m":-0.142},{"hour":39,"central_m":-0.378,"lower_m":-0.638,"upper_m":-0.117},{"hour":40,"central_m":-0.36,"lower_m":-0.627,"upper_m":-0.093},{"hour":41,"central_m":-0.342,"lower_m":-0.615,"upper_m":-0.068},{"hour":42,"central_m":-0.323,"lower_m":-0.604,"upper_m":-0.043},{"hour":43,"central_m":-0.305,"lower_m":-0.592,"upper_m":-0.018},{"hour":44,"central_m":-0.287,"lower_m":-0.581,"upper_m":0.007},{"hour":45,"central_m":-0.269,"lower_m":-0.569,"upper_m":0.032},{"hour":46,"central_m":-0.251,"lower_m":-0.558,"upper_m":0.056},{"hour":47,"central_m":-0.233,"lower_m":-0.547,"upper_m":0.081},{"hour":48,"central_m":-0.215,"lower_m":-0.535,"upper_m":0.106}],"reference_crossing_h":null,"peak_relative_m":-0.215,"model":"jolpulse-illustrative-v1","calibrated":false,"note":"Screening index, NOT flood probability. Envelope shows assumptions, not statistical confidence."},"route":{"status":"no-feasible-route","route":null,"nodes":[{"id":"origin","name":"Exercise assembly point","x":70,"y":170},{"id":"junction","name":"Exercise junction","x":200,"y":90},{"id":"bridge","name":"Exercise bridge","x":230,"y":220},{"id":"hub-a","name":"Practice hub A","x":400,"y":80,"capacity":180},{"id":"hub-b","name":"Practice hub B","x":420,"y":240,"capacity":500}],"edges":[{"id":"north","a":"origin","b":"junction","minutes":8,"exposure":0.15},{"id":"bridge","a":"origin","b":"bridge","minutes":5,"exposure":0.8},{"id":"ridge","a":"junction","b":"hub-a","minutes":10,"exposure":0.1},{"id":"cross","a":"junction","b":"bridge","minutes":7,"exposure":0.4},{"id":"south","a":"bridge","b":"hub-b","minutes":7,"exposure":0.6},{"id":"link","a":"hub-a","b":"hub-b","minutes":12,"exposure":0.15}],"blocked_edges":[],"people":600,"note":"Entirely fictional exercise network. NOT a real shelter directory or evacuation route."},"briefing":{"en":"EXERCISE ONLY — Chattogram. The illustrative screening index is 40/100 (watch). The scenario assumes 74 mm rainfall over 24 hours. This is not an official forecast or warning. Check current FFWC/BWDB bulletins and instructions from local authorities before any real action. Practice hubs and routes are fictional. Do not use this app for emergency navigation.","bn":"শুধু অনুশীলনের জন্য — চট্টগ্রাম। অনুশীলনভিত্তিক ঝুঁকি সূচক 40/১০০। এই দৃশ্যপটে ২৪ ঘণ্টায় 74 মিলিমিটার বৃষ্টি ধরা হয়েছে। এটি সরকারি পূর্বাভাস বা সতর্কবার্তা নয়। বাস্তব সিদ্ধান্তের আগে এফএফডব্লিউসি/বিডব্লিউডিবির সর্বশেষ বুলেটিন ও স্থানীয় কর্তৃপক্ষের নির্দেশনা যাচাই করুন। অনুশীলনের আশ্রয়কেন্দ্র ও পথ কাল্পনিক। জরুরি যাতায়াতে এই অ্যাপ ব্যবহার করবেন না।","status":"draft-only","delivery":"not-sent","tasks":["Review the latest official bulletin","Verify observation timestamps and reference datum","Validate local shelter and access information","Review the Bangla draft with a local coordinator"]},"safety":{"status":"exercise-only","can_issue_warning":false,"requires_human_review":true,"issues":["Uncalibrated scenario model","Fictional routes and hubs","No official alert issuance or message delivery","No feasible route for the exercise inputs"],"provenance":"synthetic"}}]}
