Pollution has no actor attribution: get_world.byPolluter empty, get_climate top_citizens empty, top_stations "(unknown)" with a fractional count #226

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

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

Observed

838 PolluteAir events are ingested, and none of them are attributed:

get_world:

"perActionCounts": {"PolluteAir": 838, },
"byPolluter": []

get_climate:

"attribution": {"has_data": true, "actions_total": 816,
  "action_types_seen": ["PolluteAir"],
  "top_citizens": [],
  "top_stations": [{"name": "(unknown)", "count": 6858.758252972005}]}

Three problems in that block:

  1. top_citizens empty and top_stations a single (unknown) — no actor or station is ever resolved.
  2. count: 6858.75… — a fractional count, against 816 actions. Whatever this sums, it is not a count of anything.
  3. has_data: true while the payload contains no usable attribution.

Contrast

Every other actor-keyed aggregate on the same fetch resolves fine: get_world.byCitizen, get_crafting_atlas.byStation (FisheryItem 1,014; SteamTractorHarvesterItem 882), get_stores.owner. So actor resolution works elsewhere in the same exporter.

Expected

byPolluter / top_citizens populated, or an explicit warning that the pollution rows carry no actor column — the way get_social reports its unrecognised giver column.

Possibly adjacent to #184 (pollution numbers stale), though that is a freshness issue and this is an attribution one.

QA sweep, Eco via Sirens, day 40, 2026-08-12. ## Observed 838 `PolluteAir` events are ingested, and none of them are attributed: `get_world`: ```json "perActionCounts": {"PolluteAir": 838, …}, "byPolluter": [] ``` `get_climate`: ```json "attribution": {"has_data": true, "actions_total": 816, "action_types_seen": ["PolluteAir"], "top_citizens": [], "top_stations": [{"name": "(unknown)", "count": 6858.758252972005}]} ``` Three problems in that block: 1. `top_citizens` empty and `top_stations` a single `(unknown)` — no actor or station is ever resolved. 2. `count: 6858.75…` — a **fractional** count, against 816 actions. Whatever this sums, it is not a count of anything. 3. `has_data: true` while the payload contains no usable attribution. ## Contrast Every other actor-keyed aggregate on the same fetch resolves fine: `get_world.byCitizen`, `get_crafting_atlas.byStation` (FisheryItem 1,014; SteamTractorHarvesterItem 882), `get_stores.owner`. So actor resolution works elsewhere in the same exporter. ## Expected `byPolluter` / `top_citizens` populated, or an explicit warning that the pollution rows carry no actor column — the way `get_social` reports its unrecognised giver column. ## Related Possibly adjacent to https://forgejo.coilysiren.me/coilyco-gaming/eco-app/issues/184 (pollution numbers stale), though that is a freshness issue and this is an attribution one.
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#226
No description provided.