get_region labels growing species "declining" — the classifier tests |recentChangePct| and drops the sign #220

Closed
opened 2026-08-12 23:13:20 +00:00 by coilyco-ops · 0 comments
Member

QA sweep, Eco via Sirens, day 40, 2026-08-12.

Observed

get_region.speciesRisk puts thriving species in the declining bucket:

Species Cycle change Recent change State
HuckleberrySpecies +425% +28.0% declining
TomatoesSpecies +635% +74.5% declining
RiceSpecies +199% +19.6% declining
BighornSheepSpecies +5.1% +24.0% declining
CoyoteSpecies +15.3% +23.6% declining
WheatSpecies +49.8% −52.4% declining
DaisySpecies −58.3% −2.1% stable
CriminiMushroomSpecies −61.2% −1.8% stable

Each carries "reason": "Population is declining, but the combined at-risk threshold was not crossed."

Diagnosis

Sort by abs(recentChangePct) and the buckets separate cleanly at the documented 0.15 band:

  • every declining entry has |recent| ≥ 0.196
  • every stable entry has |recent| ≤ 0.139

So the rule is abs(recentChangePct) > recentDeclinePct — the sign is discarded, and a population that grew 74% in the recent window is reported as declining.

Expected

declining requires recentChangePct < -threshold. Growth should be stable (or a growing state, if one is wanted). Daisy at −58% over the cycle probably deserves better than stable too.

Impact

This is the field a reader uses to decide what to protect. It currently names the winners.

QA sweep, Eco via Sirens, day 40, 2026-08-12. ## Observed `get_region.speciesRisk` puts thriving species in the `declining` bucket: | Species | Cycle change | Recent change | State | |---|---|---|---| | HuckleberrySpecies | **+425%** | **+28.0%** | `declining` | | TomatoesSpecies | **+635%** | **+74.5%** | `declining` | | RiceSpecies | +199% | +19.6% | `declining` | | BighornSheepSpecies | +5.1% | +24.0% | `declining` | | CoyoteSpecies | +15.3% | +23.6% | `declining` | | WheatSpecies | +49.8% | −52.4% | `declining` | | DaisySpecies | **−58.3%** | −2.1% | `stable` | | CriminiMushroomSpecies | **−61.2%** | −1.8% | `stable` | Each carries `"reason": "Population is declining, but the combined at-risk threshold was not crossed."` ## Diagnosis Sort by `abs(recentChangePct)` and the buckets separate cleanly at the documented 0.15 band: - every `declining` entry has |recent| ≥ 0.196 - every `stable` entry has |recent| ≤ 0.139 So the rule is `abs(recentChangePct) > recentDeclinePct` — the sign is discarded, and a population that grew 74% in the recent window is reported as declining. ## Expected `declining` requires `recentChangePct < -threshold`. Growth should be `stable` (or a `growing` state, if one is wanted). Daisy at −58% over the cycle probably deserves better than `stable` too. ## Impact This is the field a reader uses to decide what to protect. It currently names the winners.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
coilyco-gaming/eco-app#220
No description provided.