rrt/docs/atlas/company-and-ledger.md

151 lines
9.1 KiB
Markdown
Raw Normal View History

# Company and Ledger
Primary atlas sources:
- [control-loop-atlas.md#input-saveload-and-simulation](/home/jan/projects/rrt/docs/control-loop-atlas.md#input-saveload-and-simulation)
This view isolates the company-side shell panes, linked-transit company maintenance, city-connection
news, and annual finance-policy thresholds.
Current grounded owners:
- `shell_company_list_window_construct`
- `shell_company_detail_window_construct`
- `shell_company_detail_window_handle_message`
- `shell_load_screen_window_construct`
- `company_service_periodic_city_connection_finance_and_linked_transit_lanes`
- `company_evaluate_annual_finance_policy_and_publish_news`
- `company_balance_linked_transit_train_roster`
- `company_try_buy_unowned_industry_near_city_and_publish_news`
- `company_evaluate_and_publish_city_connection_bonus_news`
- `simulation_try_select_and_publish_company_start_or_city_connection_news`
Current bounded finance verbs:
- bankruptcy
- bond repayment
- bond issuance
- public-share repurchase
- public-share issuance
- dividend adjustment
Current bounded shell families:
- `CompanyDetail.win`
- `CompanyList`
- `LoadScreen.win`
What this note is for:
- CompanyDetail section ownership and finance dialogs
- Ledger and report-page ownership
- Linked-transit autoroute and train-roster maintenance
- City-connection announcement and bonus lanes
- Annual finance-policy thresholds and same-cycle reaction latches
Current bounded linked-transit cache outputs:
- peer row `+0x05`: route-step count from the tracker metric chooser
- peer row `+0x09`: normalized continuity share `(steps - mismatches) / max(steps, 1)`
- site cache `+0x12`: raw surviving linked-transit site-score total
- site cache `+0x0e`: continuity-and-step-weighted companion total
- site cache `+0x16`: promoted final autoroute site-ranking lane
- `company_compute_owned_linked_transit_site_score_total`: converts summed site `+0x12` totals
into the train-roster target through year and site-count ladders, plus the special build-`1.03+`
two-site distance branch
Current bounded compatibility impact:
- the pre-`1.03` versus `1.03+` tracker metric split mainly perturbs peer continuity and weighted
site ranking
- that means it can change which site `0x00408280` prefers and which peer `0x00408380` seeds into
a train route
- current evidence says it does not directly move the company train-pressure target in
`0x00408f70`, because that target sums raw site cache `+0x12` rather than the weighted `+0x0e`
or promoted `+0x16` lanes
Latest finance closure:
- The remaining semantic meaning of the annual finance policy branches is now narrower:
stat-family `0x2329/0x1d` is now bounded as current `Book Value Per Share` in the stock-issue
denominator path, `0x2329/0x0d` is now bounded there as the current cash gate before the
bond-rate-versus-support ladder, the broader support-adjusted share-price or public-support lane
is now bounded through `company_compute_public_support_adjusted_share_price_scalar` `0x00424fd0`,
and its immediate feeder is now bounded as
`company_compute_cached_recent_per_share_performance_subscore` `0x004248d0`, which uses an
explicit recent-history ladder: the current partial year is weighted by `(5 * [world+0x0f]) - 5`,
the prior four full years use `48/36/24/12` for `Earnings Per Share` and `Revenue Per Share`
lanes `0x1f/0x1e`, and the adjacent `Dividend Per Share` non-decline trend comparisons on lane
`0x20` use weights `9/8/7/6`, all before the tail folds those lanes against current `Book Value
Per Share`, while `0x21` now routes through
`company_compute_five_year_weighted_shareholder_return` `0x004246b0` and its paired hidden
shareholder-payout lane `0x23`,
raw slot `0x09` aligns with the Income Statement fuel-cost lane surfaced by tooltip `1309`, and
derived slot `0x2b` now reads as the rolling net-profits lane. The exact stock-issue cutoff
ordering is now closed, and the current grounded read is:
bankruptcy = first the year, toggle, and cooldown gates, then the three-year scan, then the
revenue-band-selected cash-and-debt ladder, then the support-adjusted share-price threshold,
then the fuel-cost lane and net-profit accumulator; the later deep-distress fallback then
re-checks cash below `-300000` plus the first three recent profit years at or below `-20000`.
Stock issuance = first the bond/stock toggles, live-bond count, and founding-age gates, then
tranche sizing from outstanding shares, then the `55000` proceeds-cap trim, then the pressured
support-adjusted share-price recompute and price-to-book derivation, followed by the tested
gates in fixed order: share-price floor `22`, proceeds floor `55000`, current cash
`0x2329/0x0d` against highest-coupon principal plus `5000`, one later stock-issue cooldown gate
driven by the current issue mixed-radix calendar tuple at `[company+0x16b/+0x16f]` versus the
active world absolute calendar counter `[world+0x15]`, and only then the coupon-versus-price-to-book ladder
`0.07/1.3 .. 0.14/0.35`. Dividend
adjustment = first the toggle and age gates, then the weighted recent-profit-per-share target,
then the small-unassigned-share cash supplement, then the board ceiling clamp. The debt-news tail
is also now explicit:
it compares total retired versus newly issued principal to pick `2882..2886`, and the
stock-buyback tail separately publishes `2887` from the accumulated repurchased-share count.
Current finance closure detail:
- The stock-issue cooldown stamp is now structurally closed:
`[company+0x16b/+0x16f]` holds the current issue calendar-point tuple,
`[company+0x173/+0x177]` preserves the prior tuple,
and the cooldown gate converts the current tuple through `0x0051d3c0` before comparing against
the active world absolute calendar counter `[world+0x15]`. The tuple model is no longer just
“calendar-like”: current local arithmetic now bounds it as the same mixed-radix
`12 x 28 x 3 x 60` family unpacked by `0x0051d460`.
- The recent per-share performance feeder `0x004248d0` is now tighter than before:
its four tail lanes are `EPS * 10`, `Revenue Per Share`, a dividend-strength lane derived from
the weighted non-decline ratio on slot `0x20`, and current `Book Value Per Share` from slot
`0x1d`; base lane weights are `40/10/20/30`, startup companies ramp those weights with the
age table `0/0/0/100 -> 25/25/35/100 -> 50/50/65/100 -> 75/75/85/100 -> 100/100/100/100`,
the strongest lane is boosted by `1.25` while the weakest is reduced by `0.8`, the bounded
intermediate `[company+0x0d19]` uses `((difficulty + 1.0) / 2.0)` with a floor at `0.5`,
and the final cached score uses the raw difficulty table
`0.8/0.9/1.0/1.1/1.2/0.9/0.95/1.0` plus the post-bankruptcy smoothing factor.
- The broader support-adjusted share-price consumer `0x00424fd0` is tighter now too:
it starts from that recent per-share feeder, can interpolate it against the older support field
`[company+0x57]` on the young-company path using one capped progress term from
`[world+0x15]`, `[company+0x0d07]`, and founding year `[company+0x157]`, clamps the caller's
share-count pressure term to `[-0.2, 0.2]`, can refresh mutable support field `[company+0x4f]`
from that staged pressure, derives one share-count growth term from `(shares / 20000)^0.33`,
then runs the resulting support scalar through the later threshold ladder
`0.6 / 0.45 / 0.3 / 1.7 / 2.5 / 4.0 / 6.0` before multiplying by scenario issue `0x37` and
rounding into the cached share-price lane `[company+0x0d7b]`.
- The surrounding finance issue split is now much tighter:
`0x00425320` is the bounded company `Credit Rating` score used by the shell debt summary and the
bond-offer rejection path on localized id `974`, with raw issue slot `0x38` folded in at the
tail; `0x00424580` is the explicit `Prime Rate` lane fed by raw issue slot `0x39`; and
`0x00424fd0` then multiplies the equity-side share-price scalar by issue slot `0x37`.
So the strongest current read is:
`0x38 = debt-market / creditworthiness`,
`0x39 = prime-rate / market-rate pressure`,
`0x37 = broader equity-market / investor confidence in company or chairman performance`.
- The raw formula side is now mostly closed, and what remains is mostly whether RT3 exposed one exact
UI caption for issue `0x37` beyond the already-grounded investor-performance strings. The
negative results now sharpen that last edge too: the nearby `0x460a90` / `0x473620`
registration blocks are camera-view and related shell-command families, not finance issue
owners; and the editor-side `Stock Prices` label belongs to a separate float-tuning block
`[state+0x0bde..0x0bf6]`, not the issue table behind `0x37`. The shell-resource side is now
tighter too: extracting `CompanyDetail.win` from `rt3_2WIN.PK4` did not uncover any separate
plain-English finance caption or investor label for this lane, and the recovered shell owner path
already routes section-0 through the dynamic-text widget `0x947f` plus formatter
`shell_format_company_governance_and_economy_status_panel` `0x004e5cf0`. So the strongest
current UI-facing text for issue `0x37` remains the investor-attitude sentence family
`1217` and `3048/3049`, not one standalone caption row like `Credit Rating:` or `Prime Rate:`.