WQ Report Generator

Staff Beta
Site Information
Auto-calculated if left blank
For Cloudinary image matching
Water Quality Parameters

Leave blank for parameters not tested. Only filled parameters appear in the report.

Routine Panel
If TP blank, TP = PO₄ × 3.066
Total hardness as CaCO₃
Elemental Ca, not as CaCO₃
Elemental Mg, not as CaCO₃
Total dissolved solids; appears in the report as Salinity (TDS)
Required. Auto-fills from Turbidity (8 / 25 NTU breakpoints) — leave it on the auto value or pick an override. Report won't generate until this is set.
Routes the MetaFloc dose. Algae drives the phosphorus-binding dose (the green stands in for phosphorus held in the water column). Clay / sediment drives the clarification dose (flocculates suspended mineral particles). Leave blank to infer from the algae and cyanobacteria observations.
Additional Parameters

Not part of the routine in-house panel. Leave blank unless tested.

Operator Observations
Algae Presence

Check each algae type observed and rate its abundance.

Select all species observed. Use search to filter, or add a custom species at the bottom.
Select every species observed. The preferred treatment is shown beside each. Use search to filter.
Loading species list...
Photos

Upload site photos, microscopy images, pond maps, or weed/algae identification shots. These will be embedded in the report.

📷 Drag & drop photos here, or click to browse JPG, PNG, HEIC — up to 20 MB each
Management Goals & Safety
Additional Concerns (select all that apply)
Safety Context
Change for local dev: http://localhost:8787
Finalize round-trip: upload your Word-edited report
ui-2026-08-01
Edited the downloaded report in Word? Upload the finished .docx and we'll compare it to what the app generated, then turn your edits into reviewable changes you can capture for learning. Works after a reload too: load recent reports and pick the one you edited.

Durable rules that shape future reports. Proposed rules come from feedback synthesis and affect nothing until approved. Active rules fire on matching reports and include your explicit "save for future" decisions; pause one to switch it off temporarily, retire it to remove it permanently.