Post-Hoc Recovery Evaluation: Measuring Agent Recovery After Unsafe Tool Execution
A research project that makes recovery a first-class evaluation object: injecting controlled, sandboxed unsafe-execution events into agent benchmarks and measuring...
Build a beginner-friendly explorer for the EPA/USGS Water Quality Portal — ingest real water-quality observations, organize them by site and contaminant, visualize them honestly, and surface data-quality limits without ever declaring water safe or unsafe.

A beginner-friendly data project that turns the EPA/USGS Water Quality Portal — a huge public collection of water-quality measurements from across the United States — into a local, explorable application. You query the portal’s web services for a county, watershed, or monitoring site of interest, clean and organize what comes back, store it in a small database, and build charts and summaries that answer real questions: which contaminants have been measured near a location, when, at which sites, and how the observed values compare with reference context values you choose to display alongside them. The finished project is an exploration tool: it makes open government data approachable, and it is equally honest about the gaps — missing samples, detection limits, and sparse coverage — that every real environmental dataset carries.
>An educational explorer, not a water-safety verdict. This project summarizes publicly reported measurements for study and awareness. It cannot tell anyone whether water is safe to drink: measurements are sparse in space and time, portals may lag behind current conditions, and interpreting results against health limits requires expertise and properly collected samples. For real drinking-water decisions, people should rely on their water supplier’s consumer-confidence reports, certified laboratory testing, and their local health authority. Your app should say so — prominently.
Water-quality data in the United States is public by design — the Water Quality Portal aggregates submissions from the EPA’s Water Quality Exchange and the USGS National Water Information System, with contributions from hundreds of state, federal, tribal, and local agencies. But “public” does not mean “accessible.” The raw services return wide tables full of codes, units, detection qualifiers, and nulls; a curious resident who simply wants to know what has been measured in their watershed faces a wall of jargon. Meanwhile, most tutorials teach data cleaning on pristine sample datasets, which teaches the wrong lesson. This project sits exactly in that gap: it teaches the real skills on real data, and its central design constraint — explore, never declare — forces beginners to think about what data can and cannot support.
The pipeline is deliberately simple enough for a first project, but every stage teaches a durable skill. Build the stages in order; each one’s output feeds the next.
The portal exposes documented web services that accept query parameters — site identifiers, county or watershed codes, characteristic (contaminant) names, and date ranges — and return results as structured tables (CSV among the formats). Start small: one county, one or two well-known characteristics such as nitrate or lead, one year of data. Study the returned columns before writing any cleaning code. The portal publishes user guides and a web-services document; read them first so your queries reflect how the data is actually organized, rather than guessing at parameter names.
Real results arrive with quirks you must handle explicitly: different units for the same characteristic, results reported as below detection limits, duplicate submissions, and missing metadata. Build a cleaning stage that standardizes units per characteristic, encodes “non-detect” values honestly (keep the detection limit rather than inventing a zero), and records every transformation. This stage is the heart of the project — and a genuine skill multiplier for everything you build afterward.
Load the cleaned rows into a small relational database (SQLite is perfect) with a simple schema: sites, results, and a reference table for the characteristics you support. A database, rather than scattered CSV files, gives you filtering, joining, and reproducible re-ingestion — and it keeps the app responsive even when a query returns tens of thousands of rows.
For each characteristic you support, let the app display reference context — for example, a regulatory threshold or health-related benchmark that the user or maintainer has chosen to show — as a clearly labeled band or line on charts. The values live in a table you curate, with a source note for each. The app never computes its own safety judgment; it shows measurements and context side by side, and it labels every context value with where it came from and what it applies to.
Build the exploratory views: measurements over time per site, value distributions per characteristic, site counts per watershed, and a coverage map or table showing where samples exist — and where they do not. Every chart should render the data’s texture honestly: non-detects shown distinctly, detection limits visible, sparse periods visibly sparse. A coverage summary (“this county has 41 nitrate samples since 2020, collected at 6 sites”) teaches more than any single number.
Give missingness a first-class UI. A “data coverage” panel lists characteristics with no recent samples, sites with stale records, and results reported under detection limits. This panel is the project’s integrity feature: it prevents the most common misuse of exploratory environmental tools, which is reading absence of data as absence of contamination.
Everything runs on your machine: queries fetch data, a script refreshes the local database, and the app reads only local storage. Fixed query parameters and a recorded fetch date make any chart reproducible. Local-first also keeps the project gentle on the public service — cache responses, batch queries politely, and avoid re-fetching data you already have.
A minimal but complete MVP:
Explicitly out of MVP: multi-state coverage, predictions or forecasts of any kind, map tiles at scale, automated threshold lookup from regulatory sources, and any export aimed at health decisions. All are natural extensions — none are MVP obligations.
The site’s environmental projects each transform data; this one organizes and contextualizes it. The Air Quality Prediction & Pollution Hotspot Mapper builds a forecasting model over air measurements — a prediction job with a model to train. The Smart Walking Route Planner (a product idea consuming environmental feeds to rank walking routes) is a consumer scoring job — a consumer scoring job. This project has no model and no ranking: it is pure open-data exploration — ingestion, cleaning, storage, and honest display of water-quality records, with the coverage gaps treated as a core feature. The Data Quality Scorecard for Data Teams shares the quality-awareness mindset but targets internal data pipelines; here the same discipline is applied to public scientific data and made legible to non-specialists.
| Tool type | Approach | Limitation |
|———–|———-|————|
| Portal web forms | Official query interfaces for the raw data | Power-user oriented; jargon-heavy; no local exploration layer |
| Agency dashboards | Pre-built views for specific programs | Fixed scope; rarely county-level or characteristic-flexible |
| Research notebooks | One-off analyses published as papers/code | Not reusable tools; rarely maintained for non-specialists |
| Generic mapping apps | Show monitoring sites on a map | Little measurement context; no data-quality surface |
This project’s differentiators: a beginner-buildable end-to-end pipeline on a verified public source, honest non-detect and coverage handling, curated reference context with provenance, and an explicit exploration-not-certification boundary baked into the UI.
Browse more Project Ideas · Beginner Ideas · Environment Ideas
A research project that makes recovery a first-class evaluation object: injecting controlled, sandboxed unsafe-execution events into agent benchmarks and measuring...
A research project that answers the question every failed agent run raises: which step broke it? Building an attributed corpus...
A research project that audits the measurement instruments themselves: applying the ABC validity-checklist methodology to agent-security benchmarks to find task-validity...
Published on September 12, 2026
A team of developers, researchers, and innovators who review and publish practical ideas for builders and creators.
Published on September 12, 2026
A team of developers, researchers, and innovators who review and publish practical ideas for builders and creators.