A model nobody can check is an opinion.
The method below is the same on a two-week study and a multi-year forecast system. The scale changes; the sequence does not.
Start from the decision
The decision sets the required accuracy, and the required accuracy sets the method — not the other way round.
You get · A scoping memo naming the method and its limits.
Build the domain honestly
Resolution is allocated by a size function designed against the physics, and the bathymetry seams are documented rather than smoothed over.
You get · Mesh, size function, and the quality report that accepted it.
Force it with something defensible
Forcing is the largest lever on the answer, so the choice gets stated and tested rather than inherited.
You get · Forcing files, generated by tooling rather than assembled by hand.
Run it so it can be run again
Mesh, forcing, control, and submit script all live in version control. Nothing that affects a result lives only in someone’s shell history.
You get · A run archive that regenerates itself.
Validate against what happened
Per station and in aggregate, using metrics chosen up front. Where the model is wrong we say where and by how much.
You get · A station-by-station report, regenerated on demand.
Hand it over completely
If the only person who can re-run the study is the person who built it, the study is not finished.
You get · A package that opens and makes sense without a walkthrough.
Four rules that survive every schedule.
Show the working
Every figure traces back to a script and an input. No number appears that cannot be regenerated.
State the limits
Every model has a domain of validity. Naming where it stops is what makes the rest usable.
Automate the preparation
Preparation done by hand does not survive a staffing change. Tooling is part of the deliverable, not overhead.
Reproducible, not open-ended
Everything needed to re-run and check a result ships with it — inputs, configuration, extraction and validation scripts. Our development tooling stays ours.
The hardest part of a flood study is not the hydrodynamics. It is keeping the chain from bathymetry to floodplain legible to someone who was not in the room.