Twenty-two years of biocontrol data, read as a trend

A monitoring dashboard for an invasive plant biological control program, tracking every release site from 2004 to now. Sites are classified as improving, stable, or worsening by change in weed cover, each site drills down to stem, insect, grass, and bare ground trends, and AI writes the plain-language narrative for the sites worth reading about.

Client
SIMP biocontrol monitoring
Period
2004–26 data, dashboard 2026
Our role
Dashboard design, data analysis, AI integration
Built with
ArcGIS, Claude API, JavaScript

The problem

A biological control program releases insects against invasive plants and then monitors the release sites for years. The data piles up honestly and usefully, but in a form that only answers small questions: what was the weed cover at this site on this date, what was the stem count, how many agents were counted.

The question the program actually has to answer, year after year and to anyone holding a budget, is different: is this working? Twenty-two years of survey rows do not answer that on their own. Somebody has to sit down with a spreadsheet per site and work out the direction of travel.

What we built

A dashboard that treats change over time as the primary fact rather than a derived one. It reads the survey records, groups them by monitoring site, and classifies every site by what has happened to its target weed cover:

  • Improving - weed cover down more than 10 percent
  • Stable - within 10 percent either way
  • Worsening - weed cover up more than 10 percent

Those three classes drive the map, so the whole program reads at a glance, and the filters narrow by weed species and by state, so a single agent-and-host pairing can be pulled out of the whole record.

The part people notice

The dashboard surfaces success stories and struggling sites automatically, each with a plain-language narrative written by AI from that site's own trend data. A program manager gets the story of a site without opening a chart, and the chart is right there when they want to check it.

How it works

Site-level drilldown

Clicking a site on the map opens its full history: average target weed cover by year, average stem count, average insect count, and the supporting cover measures for grass and bare ground. Those last two matter, because weed cover falling while bare ground rises is a different outcome than weed cover falling while grass comes back.

Program-level trend charts

Above the site detail, the same measures roll up across the current filter: cover by year, stems per site, agents per site. Filter to one weed species in one state and the charts re-read for that slice.

AI narratives, grounded in the data

Narratives are generated from the site's actual measurements, not from a template with numbers dropped in. The API key is held in the browser's local storage rather than baked into the page, so the dashboard can be shared without handing out credentials.

Reports that leave the screen

Any site view exports to PDF, because the audience for this data is frequently a legislative committee, a cooperator, or a grant report, and none of them are looking at a browser tab.

What it changed

The program can now answer the "is it working" question in the room where it gets asked, at the level of a single release site or the whole state, and can point at the sites where the answer is yes. Two decades of careful field monitoring stopped being an archive and started being an argument.

2004First year of records in the dashboard
3Trend classes driving the map
±10%Threshold for improving or worsening
4Measures tracked per site over time
ArcGISClaude APIJavaScriptTrend analysisPDF export
Get in touch

Tell us what the ground looks like.

A few sentences about the program, the data you already have, and the deadline you are working against is enough to start. You will hear back from the person who would do the work.

What happens next
First

A real reply, not a ticket number

Usually within one business day, from the person who would build it.

Then

A short call about the data

What exists, where it lives, and who has to use the result.

After that

Scope and a fixed number

Written scope with the cuts called out, so the budget decision is yours.