maniator / maniator/verticopolis

[Feature]: [P1] Attendance venues are invisible to retail coverage, so an entertainment-led tower can shed tenants past one token shop

Open
#705 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
5
Forks
1
PR merge metrics
No merged PRs in 30d

Description

Filed from the #548 demand-calibration design party (2026-07-29); the calibration makes this reachable, so it graduates from a footnote to its own row.

Coverage for the unmet-local-demand drain reads only the RETAIL pool (shop, fast food, restaurant and kin): reachableVenuesByOrigin and retailVenueCount both exclude attendance venues (cinema, party hall) by design (#424, they earn from live fill, not the demand pool). Before #548 this was harmless because the eviction region only opened at coverage ~0.02. After the calibration (erosion 0.12, evict floor 0.35, net shed below coverage ~0.20) a tower with one token shop and several thriving cinemas reads its coverage off the shop alone, can sit 10x-20x oversubscribed on paper, and genuinely sheds tenants while running a packed entertainment floor. The zero-retail exemption does not save it: retailVenueCount is 1, so the drain is armed.

The design question (deliberately NOT rushed into the calibration PR): should attendance capacity count toward coverage, and if so how, given that adding it to the coverage denominator without adding it to the income pool breaks the share identity (coverage = min(1, 1/share)), and the 1994 "not enough amenities" evaluation read commerce. Options sketched in the party: a separate attendance-coverage term folded into unmetCoverage, an attendance-aware exemption tier, or ruling that entertainment deliberately does not feed residents and the copy should say so. Chained to the same telemetry gate as the #548 perCapita retune so the ruling is made against real tower data.

/gds-code-review when picked up.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with reachableVenuesByOrigin and retailVenueCount, then read the linked #548 calibration and #424 rationale. Use the telemetry gate and real tower data to compare the attendance-coverage options; done means the project has a decided rule, consistent coverage/share semantics, and updated resident-facing copy where required.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
game-dev
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.