maniator / maniator/verticopolis

[Feature]: [P3] Finance Window equivalent (two-ledger income/maintenance report)

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

Nobody has claimed this yet.

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

Description

Imported from the engineering backlog (_bmad-output/implementation-artifacts/backlog.md, story finance-1010).
Priority P3 (do-first order) | Severity: n/a | Status: idea | Epic: OpenSkyscraper docs | Type: feature-request | Recorded: 2026-07-07

Problem / motivation

Owner-requested 2026-07-08 (saw the real game's Finance Window and wants an equivalent in our UI): a two-column Total Income / Total Maintenance sheet with a Population + Income column per facility line and a Maintenance Expense column, plus Net Revenues / Other Income / Construction Costs / Last Quarter's Balance / Total Balance rows, hiding zero lines ("Items with no income or expenses are not displayed"). This validates §9's layout AND the per-line population semantics (see population-census-parity: the real window shows Fast Food population 175, Office 48, Condo 45). Ready: S–M. Align the income report with the original's finance taxonomy (docs/canon/tdt-format.md §9): 10 income + 10 maintenance categories. Extend LedgerCat additively (hotel single/double/suite split; parking/metro/service maintenance lines; Ledger.restore's sanitizeDay drops unknown keys so no version bump), rework buildIncomeHtml as a two-ledger Income | Maintenance layout keeping our net-summary line; dim zero rows; stacks on phone. Patch bump if lines change.

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

Read docs/canon/tdt-format.md §9, then trace LedgerCat, Ledger.restore’s sanitizeDay handling, and buildIncomeHtml. Confirm the two-ledger taxonomy and population semantics against the stated facility examples. Done means the report has the requested income and maintenance lines, summary rows, zero-line treatment, and phone stacking without breaking ledger restoration.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
frontend
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.