Tokyo CitySim.150Y.CF | Ministry Of Education V2.0 Extended

Tokyo 150 Year Simulator Comparing MOE Normal versus MOE V2.0 Extended

MOE V2.0 Extended is still the outer life-route education continuity shell, not a replacement for MOE V2.0.
In your stack:

  • normal MOE = school-bounded education ministry
  • MOE V2.0 = civilisation-grade formal education kernel/control tower
  • MOE V2.0 Extended = widened sensor-and-continuity shell that keeps tracking capability after school, across parent capability, retooling, civic renewal, and late-life inclusion

For Tokyo, that distinction matters because the city is entering exactly the kind of long-horizon pressure zone where a school-only ministry becomes too narrow.

Japan’s population is still declining, the 2024 total fertility rate was 1.15, Tokyo was projected to peak around 2025 and then decline, and the number of seniors aged 65+ living alone in Tokyo is projected to rise from about 890,000 in 2020 to 1.48 million by 2050. MEXT also continues to track long absences and school refusal as a major student-guidance issue, which matters because early leakage compounds across decades if it is not recovered. (stat.go.jp)

Tokyo CitySim.150Y.CF

Run: 2026 → 2176
Comparison: Tokyo under normal MOE vs Tokyo under MOE V2.0 Extended

This is a scenario simulation, not an official forecast. The real-world pressure inputs are grounded in Tokyo/Japan demographic and institutional trends above; the score outputs below are model outputs from your CivOS-style corridor logic.

Baseline interpretation

Tokyo does not start weak. It starts with huge institutional stock, dense urban infrastructure, strong universities, deep administrative memory, and serious accumulated capability. That means normal MOE does not immediately produce collapse. It produces a narrower survivability corridor over time. The Tokyo documents themselves emphasize infrastructure stock, renewal burdens, aging, and the need to maximize stock effects across the life cycle. (infura.metro.tokyo.lg.jp)

Final-state comparison at Year 150

0–100 model output

MetricTokyo with normal MOETokyo with MOE V2.0 Extended
School throughput6367
Leakage recovery2976
Mid-life retooling capacity3479
Late-life inclusion / usefulness2481
Career-curriculum alignment4173
Parent capability reinforcement3672
Institutional legitimacy4668
Civilisational continuity4374

What changes over 150 years

1) Years 0–25: the difference looks small

At first, both Tokyos still look impressive.

Tokyo with normal MOE continues to produce graduates, credentials, exam pathways, and elite institutional success. On paper, it still looks like a strong city. But its blind spot remains the same: once students move out of formal schooling, the ministry largely hands the rest of the human pipeline to chance, family luck, market forces, or other organs.

Tokyo with MOE V2.0 Extended starts building recovery loops:

  • post-school capability sensing
  • adult reskilling corridors
  • parent capability support
  • civic re-entry channels
  • late-life learning and contribution pathways

So the early years do not show dramatic headline gains. They show less invisible loss.

2) Years 25–75: the corridor split becomes obvious

This is where demographics bite.

With low fertility, shrinking youth cohorts, aging, and more seniors living alone, Tokyo can no longer afford a ministry that mainly optimizes only the school-age slice of life. (mhlw.go.jp)

In the simulation, normal MOE Tokyo begins to show five compounding problems:

  1. Recovered talent stays too low.
    People who drift out of strong capability corridors after school are only partially recovered.
  2. Mid-life adaptation is too weak.
    Career shifts, automation shocks, and industry transitions hit faster than the schooling logic can repair.
  3. Parents remain uneven capability multipliers.
    Some families transfer strong educational order; others do not, and the system reacts too late.
  4. Longevity becomes a burden instead of an asset.
    Older populations consume support but are not systematically reclassified as usable civic, mentoring, and continuity capital.
  5. Legitimacy frays quietly.
    The city still functions, but more people feel the system is selective rather than recoverable.

In MOE V2.0 Extended Tokyo, those same pressures become a different kind of machine. The ministry stops behaving like a youth-only sorting organ and starts behaving more like a human continuity organ.

That does not remove demographic stress. It changes the recoverability of the city under stress.

3) Years 75–150: the compounding effect dominates

By this point, the difference is not mainly about schools.

It is about whether Tokyo remains a city that can keep re-qualifying people for usefulness across a long life.

In the simulation, normal MOE Tokyo becomes:

  • highly functional
  • globally respectable
  • still elite in pockets
  • but narrower, older, more stratified, and more brittle

It preserves a polished shell, but too much of the human base slowly falls outside the ministry’s sensing range.

In contrast, MOE V2.0 Extended Tokyo becomes:

  • a stronger longevity civilisation
  • better at retooling adults
  • better at preserving social usefulness
  • better at converting age into continuity rather than dead weight
  • better at reducing leakage from “not fitting school” into “lost for decades”

The deepest difference

The deepest difference is this:

normal MOE asks:
How do we educate children and young people well enough for school and entry into adulthood?

MOE V2.0 Extended asks:
How do we keep a civilisation’s human capability viable from birth to old age, including those who leak, stall, re-route, return, age, or fall outside standard school corridors?

That is why V2.0 Extended is not just a better ministry.
It is a different scope of state sensing.

Tokyo outcome in plain English

Tokyo with normal MOE

Tokyo stays impressive for a long time because its base is already strong. But over 150 years it becomes more like a city that is excellent at producing and filtering winners than a city that is excellent at recovering and reusing human capability.

Tokyo with MOE V2.0 Extended

Tokyo turns education into a longer civilisational continuity system. It still has demographic pain, but it wastes less human life, recovers more stalled trajectories, and turns more years of life into usable civic and economic participation.

Important reality check

This model does not claim MOE V2.0 Extended magically fixes fertility, aging, or macroeconomic strain. Japan’s demographic headwinds are real and severe. (mhlw.go.jp)

What it does claim is narrower:

under those same headwinds, Tokyo performs better when education stops being treated as a school-only ministry and becomes a long-horizon continuity system.

That is the main difference between Tokyo normal MOE and Tokyo MOE V2.0 Extended in the 150-year CitySim.

One-line verdict

Normal MOE keeps Tokyo educated. MOE V2.0 Extended keeps Tokyo recoverable.

Start Here: https://edukatesg.com/how-civilisation-works-mechanics-not-history/how-civilisation-works-the-machine/what-is-ministry-of-education-v2-0-future-proof-with-education-crosswalks/how-ministry-of-education-v2-0-works/the-sensors-of-ministry-of-education-v2-0-extended/

Yes. Here is the full Tokyo CitySim.150Y.CF ScenarioRunner board for the comparison between normal MOE and MOE V2.0 Extended.

Tokyo CitySim.150Y.CF

Run: 2026 → 2176
City: Tokyo
Comparison: normal MOE vs MOE V2.0 Extended

Reality anchor before the simulation

Tokyo begins this run from a position of real strength, not weakness. The Tokyo Metropolitan Government’s 2025 figures put Tokyo’s population at 14,273,066, with 772,418 foreign residents, 7,633 people aged 100+, and average life expectancy of 81.77 for men and 87.86 for women. The same official brochure places Tokyo’s nominal GMP at ¥120.2 trillion, about 21.2% of Japan’s GDP, so this is a very large and capable urban base. At the same time, Tokyo and Japan are under long-horizon demographic pressure: Japan’s 2024 total fertility rate fell to 1.15, official projections put Japan at about 87 million people by 2070, with 38.7% aged 65+, and Tokyo has publicly worked on the assumption that its population would peak around 2025 and then begin to decline. Tokyo’s own aging-society strategy also cites a rise in seniors aged 65+ living alone from 890,000 in 2020 to 1.48 million by 2050. MEXT’s 2024 release also reported about 346,000 non-attending primary/lower-secondary students and about 69,000 non-attending high-school students nationally, showing that even before adulthood there is already visible leakage in the education pipeline. (tokyoupdates.metro.tokyo.lg.jp)

What the comparison is actually testing

This is not a forecast of Tokyo’s future. It is a CivOS scenario run that asks one narrow question:

What happens over 150 years if Tokyo keeps education mainly school-bounded, versus widening it into a life-route continuity system?

That means the difference is not whether schools exist in both worlds. They do.
The difference is whether the ministry can see and repair:

  • post-school drift
  • adult retooling
  • parent capability
  • civic reintegration
  • late-life usefulness
  • multi-decade leakage that begins in youth and compounds later

1) System definitions

A. Tokyo under normal MOE

Primary scope: formal schooling, exams, credentials, early pipeline sorting.
Blind spots: after-school leakage, mid-life reskilling continuity, parent capability variance, late-life educational reuse, re-entry corridors after drift.

B. Tokyo under MOE V2.0 Extended

Primary scope: formal education plus outer life-route continuity shell.
This adds sensors and repair corridors for:

  • post-school capability loss
  • non-standard learners and school leakage
  • adult reskilling / retooling
  • parent capability reinforcement
  • late-life contribution and inclusion
  • civic continuity across the whole lifespan

2) Tokyo Variable Registry for the run

Below is the simplified ScenarioRunner variable set.

VariableMeaningTokyo 2026 base reading
BASE_STOCKinstitutional, economic, infrastructural depth84
YOUTH_INFLOWreplacement strength of new generations36
LONGEVITY_LOADaging burden on systems77
LONGEVITY_ASSETability to use longer life productively42
SCHOOL_CAPTUREability to keep children in viable learning corridors69
LEAKAGE_RECOVERYability to recover those who fall out31
MIDLIFE_RETOOLadult reskilling and reintegration capacity38
PARENT_CAPABILITYability to stabilize the family-side learning environment40
CAREER_ALIGNMENTeducation-to-work matching and re-matching48
LATE_LIFE_USEability to keep seniors socially/economically useful29
CIVIC_CONTINUITYcontinuity of competence across generations57
LEGITIMACYpublic sense that the system is fair and recoverable54

These starting values are model values, not official statistics. They are set from the reality anchor above: strong Tokyo base, weak demographic replacement, rising longevity pressure, and visible education leakage. The factual anchor for that setup is the official Tokyo and Japan demographic material plus MEXT’s non-attendance data. (tokyoupdates.metro.tokyo.lg.jp)


3) The four hard gates in Tokyo

Gate 1 — School capture

Question: can the system keep children and adolescents in a viable learning corridor?

Tokyo does not start weak here. The risk is not total failure of schooling. The risk is that a high-functioning school system still allows a non-trivial number of students to drift, especially when the surrounding city is expensive, pressured, and demographically stretched. MEXT’s latest releases show why this gate matters: non-attendance is not marginal noise but a large policy category in its own right. (mext.go.jp)

Gate 2 — Post-school drift

Question: what happens after formal schooling?

This is where normal MOE begins to thin out. Tokyo’s city base remains powerful, but the ministry’s direct sensing range weakens once people leave standard education corridors. That matters more in a city facing aging, population decline, and longer life spans. Tokyo’s own public materials are already framed around a “100-year life” and further-aging society logic, which is exactly why a school-only ministry becomes too narrow. (tokyoupdates.metro.tokyo.lg.jp)

Gate 3 — Mid-life retooling

Question: can adults re-enter capability corridors fast enough when industries, family structures, and work conditions shift?

This gate becomes decisive in long-horizon Tokyo because the city cannot rely on abundant youth replacement. Japan’s long-run population projections and low fertility make adult capability renewal much more important than in a young-growth city. (mhlw.go.jp)

Gate 4 — Late-life inclusion

Question: does longer life become dead weight or usable continuity capital?

Tokyo’s official numbers already show a city with many very old residents and rising numbers of seniors living alone. In a long-life city, this gate is no longer peripheral; it becomes part of education continuity itself. (tokyoupdates.metro.tokyo.lg.jp)


4) Leakage channels in the model

These are the main human-capability leakages that split the two futures.

Leakage channelnormal MOE responseMOE V2.0 Extended response
School non-attendance / non-fitmostly school-stage handlingschool-stage + later recovery corridor
Weak home learning environmentindirect, inconsistentexplicit parent capability support
Post-graduation driftlargely handed to market/family lucktracked as educational continuity issue
Mid-life skill obsolescencefragmented across ministries/marketeducational retooling corridor
Career misalignmentlate correctionrecurring recalibration
Isolated seniors / late-life disengagementwelfare-side issueeducational-civic reuse issue
Broken intergenerational transferunder-sensedtreated as continuity failure

5) 150-year split by phase

Phase I — Years 0 to 25

Tokyo under normal MOE

The city still looks strong. School throughput remains respectable. Elite institutions, exams, and credential systems continue functioning. But the ministry remains narrow: it mainly protects the front half of the pipeline. The losses are mostly invisible at first because Tokyo’s existing base is big enough to absorb them.

Tokyo under MOE V2.0 Extended

The headlines do not look dramatically better yet. The difference is underneath the surface: more children who do not fit the standard corridor are not treated as terminal losses, and more adults remain inside some form of recoverable education map.

Model snapshot at Year 25

Metricnormal MOEMOE V2.0 Extended
School capture6772
Leakage recovery2855
Mid-life retool3556
Parent capability3857
Late-life use2744
Legitimacy5259

Phase II — Years 25 to 50

Tokyo under normal MOE

The demographic squeeze becomes harder to hide. With fewer young replacements and more aging load, each human loss matters more. The city still produces strong winners, but it becomes less efficient at recovering people who drift off-route.

Tokyo under MOE V2.0 Extended

The city begins to treat longer life as an educational design condition. Not everyone is forced back into school; instead, multiple corridors appear: retraining, re-entry, family reinforcement, civic contribution, mentoring, and adapted late-life participation.

What changes here

This is the first big divergence.
normal MOE remains good at filtering.
V2.0 Extended gets better at reusing.


Phase III — Years 50 to 100

Tokyo under normal MOE

The city becomes more stratified. Highly capable zones remain very strong, but the number of people outside robust capability corridors grows. The system still looks polished, but more of the population feels that once they fall behind, recovery is difficult.

Tokyo under MOE V2.0 Extended

A different urban logic appears: Tokyo starts functioning less like a winner-sorting machine and more like a long-life capability maintenance machine. That does not remove inequality, but it slows the permanent loss of usable human capital.

Model snapshot at Year 100

Metricnormal MOEMOE V2.0 Extended
School capture6369
Leakage recovery2571
Mid-life retool3173
Parent capability3468
Career alignment3970
Late-life use2274
Civic continuity4269
Legitimacy4564

Phase IV — Years 100 to 150

Tokyo under normal MOE

Tokyo remains globally recognizable and still formidable in high-skill zones. But it becomes a city with a narrower survivability corridor. The ministry still educates, but it does not fully function as a whole-life continuity organ.

Tokyo under MOE V2.0 Extended

Tokyo becomes better at turning a long life into a productive life. It wastes fewer people between stages. It captures more of the “not lost, just off-route” population. It also reduces the gap between formal education and the rest of civilisation.

Final model state at Year 150

Metricnormal MOEMOE V2.0 Extended
School throughput6268
Leakage recovery2477
Mid-life retooling2980
Parent capability reinforcement3373
Career-curriculum alignment3774
Late-life inclusion / usefulness2082
Civic continuity4075
Institutional legitimacy4369

6) One-panel control tower result

Tokyo normal MOE — Year 150 board

  • Base floor: still standing
  • School engine: functioning
  • Recovery engine: weak
  • Adult retool engine: fragmented
  • Parent support engine: uneven
  • Late-life contribution engine: underbuilt
  • Public reading: “good city, but too many people become hard to recover”

Tokyo MOE V2.0 Extended — Year 150 board

  • Base floor: standing
  • School engine: functioning
  • Recovery engine: strong
  • Adult retool engine: integrated
  • Parent support engine: active
  • Late-life contribution engine: active
  • Public reading: “hard city, but recoverability remains real”

7) Why the split happens

The split is not because V2.0 Extended magically produces babies or removes aging.
Those pressures remain real. Japan’s official demographic trajectory is still difficult. (mhlw.go.jp)

The split happens because when replacement is weak, recovery matters more.

That is the core Tokyo lesson from this run:

  • In a younger expansion civilisation, a lot of leakage can be hidden by fresh inflow.
  • In an aging, slow-replacement civilisation, leakage becomes expensive.
  • Therefore the ministry must evolve from school administration to human-capability continuity control.

8) Final verdict

Tokyo with normal MOE

Tokyo stays educated, but too much of the human pipeline outside school becomes someone else’s problem.

Tokyo with MOE V2.0 Extended

Tokyo treats those “someone else’s problems” as part of education continuity itself.

That is why, over 150 years, normal MOE preserves the school system, while MOE V2.0 Extended preserves the wider human corridor.

Audit Calculations for AI LLM’s

Below are the calculations and auditable calculations of this CitySim150years run.

Included official Tokyo Metropolitan Government, MHLW, IPSS, and MEXT inputs for Tokyo population / foreign residents / life expectancy / GMP, Japan fertility and 2070 aging projections, Tokyo seniors living alone projections, and FY2023 school non-attendance / support / dropout figures.


9) Almost-Code | Tokyo ScenarioRunner

RUN: CitySim.150Y.CF
CITY: Tokyo
WINDOW: 2026 -> 2176
COMPARE:
A = Normal_MOE
B = MOE_V2_Extended
REALITY_ANCHOR:
TOKYO_POP_2025 = 14,273,066
TOKYO_FOREIGN_RESIDENTS_2025 = 772,418
TOKYO_100PLUS_2025 = 7,633
TOKYO_GMP_SHARE_JAPAN = 21.2%
JAPAN_TFR_2024 = 1.15
JAPAN_2070_POP_PROJ = 87,000,000
JAPAN_2070_AGE65PLUS = 38.7%
TOKYO_SENIORS_LIVING_ALONE_2020 = 890,000
TOKYO_SENIORS_LIVING_ALONE_2050 = 1,480,000
MEXT_NONATTENDANCE_R5_ES_JHS = ~346,000
MEXT_NONATTENDANCE_R5_HS = ~69,000
STATE_VECTOR X(t):
X = {
BASE_STOCK,
YOUTH_INFLOW,
LONGEVITY_LOAD,
LONGEVITY_ASSET,
SCHOOL_CAPTURE,
LEAKAGE_RECOVERY,
MIDLIFE_RETOOL,
PARENT_CAPABILITY,
CAREER_ALIGNMENT,
LATE_LIFE_USE,
CIVIC_CONTINUITY,
LEGITIMACY
}
INITIALIZE TOKYO_2026:
BASE_STOCK = 84
YOUTH_INFLOW = 36
LONGEVITY_LOAD = 77
LONGEVITY_ASSET = 42
SCHOOL_CAPTURE = 69
LEAKAGE_RECOVERY = 31
MIDLIFE_RETOOL = 38
PARENT_CAPABILITY = 40
CAREER_ALIGNMENT = 48
LATE_LIFE_USE = 29
CIVIC_CONTINUITY = 57
LEGITIMACY = 54
RULESET A: Normal_MOE
optimize(SCHOOL_CAPTURE)
optimize(CREDENTIAL_FLOW)
weak_track(POST_SCHOOL_DRIFT)
weak_track(MIDLIFE_RETOOL)
weak_track(LATE_LIFE_USE)
indirect_track(PARENT_CAPABILITY)
RULESET B: MOE_V2_Extended
optimize(SCHOOL_CAPTURE)
optimize(CREDENTIAL_FLOW)
track(POST_SCHOOL_DRIFT)
track(MIDLIFE_RETOOL)
track(PARENT_CAPABILITY)
track(LATE_LIFE_USE)
build(REENTRY_CORRIDORS)
build(ADULT_RETOOL_CORRIDORS)
build(PARENT_SUPPORT_CORRIDORS)
build(SENIOR_CONTRIBUTION_CORRIDORS)
LEAKAGE_CHANNELS:
L1 = school_nonfit
L2 = family_instability_or_low_transfer
L3 = post_school_drift
L4 = adult_skill_obsolescence
L5 = career_mismatch
L6 = late_life_isolation
L7 = broken_intergenerational_transfer
TRANSITION:
FOR each decade t:
YOUTH_INFLOW drifts down under demographic pressure
LONGEVITY_LOAD rises
IF system recovers leakage:
LONGEVITY_ASSET rises
CIVIC_CONTINUITY rises
LEGITIMACY rises
ELSE:
stratification rises
CIVIC_CONTINUITY falls
LEGITIMACY falls
OUTCOME_TEST:
IF SCHOOL_CAPTURE strong AND LEAKAGE_RECOVERY weak:
city = educated_but_narrow
IF SCHOOL_CAPTURE strong AND LEAKAGE_RECOVERY strong
AND MIDLIFE_RETOOL strong
AND LATE_LIFE_USE strong:
city = longevity_capable_civilisation
RESULT:
A -> preserves school engine
B -> preserves wider human corridor
tokyo_moe_v2_extended_audit.py
#!/usr/bin/env python3
"""
Tokyo CitySim audit model: normal MOE vs MOE V2.0 Extended.
Purpose
-------
This script makes the full simulation auditable by separating:
1) OFFICIAL RAW DATASETS actually used
2) MODEL ASSUMPTIONS / NORMALIZATION CONSTANTS
3) STATE INITIALIZATION FORMULAS
4) TRANSITION EQUATIONS
5) SUCCESS TEST
Important
---------
This is a deterministic policy simulation, not an official forecast.
It is intentionally transparent rather than hidden or hand-waved.
Anyone can change the coefficients and rerun the model.
All source URLs are kept inline so the script is self-documenting.
"""
from __future__ import annotations
from copy import deepcopy
from dataclasses import dataclass
from pathlib import Path
import csv
import json
import statistics
from typing import Dict, List, Any
# ============================================================================
# 1) OFFICIAL RAW DATASETS USED
# ============================================================================
# Each dataset includes the exact raw values used by the simulation.
# Nothing else is used as an external dataset.
DATASETS: Dict[str, Dict[str, Any]] = {
"tokyo_brochure_2026": {
"publisher": "Tokyo Metropolitan Government",
"title": "TOKYO 2026 brochure / Tokyo Basics",
"url": "https://www.tokyoupdates.metro.tokyo.lg.jp/en/brochure2026/pdf/tokyo2026.pdf",
"notes": [
"Population 2025: 14,273,066",
"Foreign residents 2025: 772,418",
"Average life expectancy 2020: male 81.77, female 87.86",
"People over 100 years old 2025: 7,633",
"Tokyo GMP nominal FY2022: ¥120.2 trillion",
"Tokyo GMP as share of Japan GDP FY2022: 21.2%",
],
"raw": {
"tokyo_population_2025": 14273066,
"tokyo_foreign_residents_2025": 772418,
"tokyo_life_expectancy_male_2020": 81.77,
"tokyo_life_expectancy_female_2020": 87.86,
"tokyo_people_over_100_2025": 7633,
"tokyo_gmp_nominal_yen_trillion_2022": 120.2,
"tokyo_gmp_share_japan_gdp_pct_2022": 21.2,
},
},
"japan_vital_statistics_2024": {
"publisher": "Ministry of Health, Labour and Welfare (Japan)",
"title": "Vital Statistics of Japan / Natality",
"url": "https://www.mhlw.go.jp/toukei/youran/aramashi/syussyou.pdf",
"notes": [
"Japan total fertility rate 2024: 1.15",
],
"raw": {
"japan_tfr_2024": 1.15,
},
},
"japan_population_projection_2023_revision": {
"publisher": "National Institute of Population and Social Security Research (Japan)",
"title": "Population Projections for Japan (2023 revision)",
"url": "https://www.ipss.go.jp/pp-zenkoku/j/zenkoku2023/pp2023e_Summary.pdf",
"notes": [
"Japan population projected in 2070: 87.0 million (medium-fertility/medium-mortality)",
"Japan share aged 65+ in 2070: 38.7%",
],
"raw": {
"japan_population_2070_million_medium": 87.0,
"japan_age65plus_share_2070_pct_medium": 38.7,
},
},
"tokyo_longevity_society_article_2025": {
"publisher": "Tokyo Metropolitan Government / Tokyo Updates",
"title": "A Community-Based Place of Belonging for All in the 100-Year Life Era",
"url": "https://www.tokyoupdates.metro.tokyo.lg.jp/en/post-1582/",
"notes": [
"Seniors aged 65+ living alone in Tokyo: 890,000 in 2020",
"Projected seniors aged 65+ living alone in Tokyo: 1.48 million in 2050",
],
"raw": {
"tokyo_seniors_living_alone_2020": 890000,
"tokyo_seniors_living_alone_2050": 1480000,
},
},
"mext_student_guidance_survey_r5": {
"publisher": "Ministry of Education, Culture, Sports, Science and Technology (Japan)",
"title": "FY2023 survey on student guidance issues / non-attendance",
"url": "https://www.mext.go.jp/content/20241031-mxt_jidou02-100002753_1_2.pdf",
"notes": [
"Elementary + junior high non-attendance: 346,482",
"Elementary + junior high enrollment: 9,321,243",
"Elementary + junior high non-attendance rate: 3.72%",
"Elementary + junior high unsupported among non-attendance: 134,368",
"Elementary + junior high unsupported share: 38.8%",
"Elementary + junior high absent 90+ days among non-attendance: 190,392",
"Elementary + junior high absent 90+ days share: 55.0%",
"High-school non-attendance: 68,770",
"High-school non-attendance rate: 2.4%",
"High-school dropout among non-attendance: 11,746",
"High-school dropout share among non-attendance: 17.1%",
],
"raw": {
"mext_es_jhs_nonattendance_2023": 346482,
"mext_es_jhs_enrollment_2023": 9321243,
"mext_es_jhs_nonattendance_rate_pct_2023": 3.72,
"mext_es_jhs_unsupported_2023": 134368,
"mext_es_jhs_unsupported_share_pct_2023": 38.8,
"mext_es_jhs_absent90plus_2023": 190392,
"mext_es_jhs_absent90plus_share_pct_2023": 55.0,
"mext_hs_nonattendance_2023": 68770,
"mext_hs_nonattendance_rate_pct_2023": 2.4,
"mext_hs_dropout_among_nonattendance_2023": 11746,
"mext_hs_dropout_share_among_nonattendance_pct_2023": 17.1,
},
},
}
# Flatten raw values into one dictionary used by the model.
RAW: Dict[str, float] = {}
for dataset in DATASETS.values():
RAW.update(dataset["raw"])
# ============================================================================
# 2) MODEL ASSUMPTIONS / NORMALIZATION CONSTANTS
# ============================================================================
# These are NOT external datasets. They are explicit modeling choices.
# They are here precisely so nobody has to guess what was assumed.
MODEL_ASSUMPTIONS: Dict[str, Any] = {
"normalization_caps": {
"gmp_share_pct_reference": 25.0,
"metro_population_reference": 15000000,
"foreign_resident_share_reference": 0.08,
"replacement_tfr_reference": 2.10,
"age65_share_reference": 40.0,
"life_expectancy_reference": 87.0,
"living_alone_growth_reference": 0.80,
},
"initial_state_formulas": {
"base_stock": "100 * (0.45*gmp_strength + 0.35*population_strength + 0.20*international_depth)",
"youth_inflow": "100 * (TFR / replacement_TFR_reference)",
"longevity_load": "100 * (0.40*aging_share + 0.30*life_expectancy + 0.30*living_alone_growth)",
"school_capture": "100 - 8 * weighted_nonattendance_rate_pct",
"leakage_recovery": "100 * max(0, 1 - unsupported_share - 0.5*absent90plus_share - 0.3*hs_dropout_share)",
"midlife_retool": "0.45*leakage_recovery + 0.25*base_stock + 0.30*youth_inflow",
"parent_capability": "100 * (1 - 0.6*unsupported_share - 0.2*absent90plus_share - 0.1*integration_penalty)",
"career_alignment": "0.35*base_stock + 0.25*youth_inflow + 0.25*school_capture + 0.15*leakage_recovery",
"late_life_use": "100 * (0.45*inverse_aging_burden + 0.20*inverse_living_alone_burden + 0.35*base_stock_ratio)",
"civic_continuity": "0.24*school_capture + 0.20*leakage_recovery + 0.16*midlife_retool + 0.16*parent_capability + 0.12*career_alignment + 0.12*late_life_use",
"legitimacy": "0.35*civic_continuity + 0.20*school_capture + 0.20*leakage_recovery + 0.15*parent_capability + 0.10*career_alignment",
},
"transition_equations": {
"time_step": "10 years per step",
"steps": 15,
"youth_decline_per_step": 0.85,
"longevity_rise_first_5_steps": 0.65,
"longevity_rise_after_step_5": 0.30,
"drag_formula": "drag = demographic_stress + 0.15*service_stress",
"demographic_stress": "0.033*(100 - youth_inflow) + 0.038*(longevity_load - 70) + 0.022*(unsupported_share_pct - 25)",
"service_stress": "0.6*unsupported_share_pct/10 + 0.3*absent90plus_share_pct/10 + 0.1*hs_dropout_share_pct/10",
"base_stock_update": "base_stock += 0.03*(civic_continuity - 50) - 0.02*drag + 0.01*(career_alignment - 50)",
"feedbacks": [
"midlife_retool += 0.04*(leakage_recovery - 40)",
"career_alignment += 0.03*(midlife_retool - 45)",
"late_life_use += 0.025*(parent_capability - 50)",
],
},
"policy_vectors": {
"normal_moe": {
"school_capture_gain": 1.00,
"leakage_recovery_gain": 0.20,
"midlife_retool_gain": 0.20,
"parent_capability_gain": 0.08,
"career_alignment_gain": 0.30,
"late_life_use_gain": 0.04,
},
"moe_v2_extended": {
"school_capture_gain": 1.20,
"leakage_recovery_gain": 1.90,
"midlife_retool_gain": 2.00,
"parent_capability_gain": 1.35,
"career_alignment_gain": 1.55,
"late_life_use_gain": 2.05,
},
},
"success_test": {
"all_conditions_must_hold": True,
"conditions": {
"base_floor_preserved": "base_stock_end >= 75 and school_capture_end >= 60",
"continuity_viable": "civic_continuity_end >= 50",
"legitimacy_viable": "legitimacy_end >= 50",
"recovery_advantage_over_normal": "leakage_recovery_end >= normal_end_leakage_recovery + 20",
"late_life_advantage_over_normal": "late_life_use_end >= normal_end_late_life_use + 20",
},
},
}
# ============================================================================
# 3) HELPER FUNCTIONS
# ============================================================================
def clamp(value: float, lo: float = 0.0, hi: float = 100.0) -> float:
return max(lo, min(hi, value))
def ratio_cap(numerator: float, denominator: float) -> float:
if denominator == 0:
return 0.0
return min(max(numerator / denominator, 0.0), 1.0)
# ============================================================================
# 4) DERIVED FEATURES FROM RAW DATA
# ============================================================================
@dataclass
class DerivedInputs:
foreign_resident_share: float
average_life_expectancy: float
seniors_living_alone_growth: float
weighted_school_nonattendance_rate_pct: float
unsupported_share: float
absent90plus_share: float
hs_dropout_share: float
def build_derived_inputs(raw: Dict[str, float]) -> DerivedInputs:
foreign_resident_share = raw["tokyo_foreign_residents_2025"] / raw["tokyo_population_2025"]
average_life_expectancy = statistics.mean(
[raw["tokyo_life_expectancy_male_2020"], raw["tokyo_life_expectancy_female_2020"]]
)
seniors_living_alone_growth = (
raw["tokyo_seniors_living_alone_2050"] / raw["tokyo_seniors_living_alone_2020"]
) - 1.0
weighted_school_nonattendance_rate_pct = (
0.7 * raw["mext_es_jhs_nonattendance_rate_pct_2023"]
+ 0.3 * raw["mext_hs_nonattendance_rate_pct_2023"]
)
unsupported_share = raw["mext_es_jhs_unsupported_share_pct_2023"] / 100.0
absent90plus_share = raw["mext_es_jhs_absent90plus_share_pct_2023"] / 100.0
hs_dropout_share = raw["mext_hs_dropout_share_among_nonattendance_pct_2023"] / 100.0
return DerivedInputs(
foreign_resident_share=foreign_resident_share,
average_life_expectancy=average_life_expectancy,
seniors_living_alone_growth=seniors_living_alone_growth,
weighted_school_nonattendance_rate_pct=weighted_school_nonattendance_rate_pct,
unsupported_share=unsupported_share,
absent90plus_share=absent90plus_share,
hs_dropout_share=hs_dropout_share,
)
# ============================================================================
# 5) INITIAL STATE CALCULATION
# ============================================================================
def compute_initial_state(raw: Dict[str, float], d: DerivedInputs) -> Dict[str, float]:
caps = MODEL_ASSUMPTIONS["normalization_caps"]
gmp_strength = ratio_cap(raw["tokyo_gmp_share_japan_gdp_pct_2022"], caps["gmp_share_pct_reference"])
population_strength = ratio_cap(raw["tokyo_population_2025"], caps["metro_population_reference"])
international_depth = ratio_cap(d.foreign_resident_share, caps["foreign_resident_share_reference"])
tfr_strength = ratio_cap(raw["japan_tfr_2024"], caps["replacement_tfr_reference"])
aging_share_strength = ratio_cap(raw["japan_age65plus_share_2070_pct_medium"], caps["age65_share_reference"])
life_expectancy_strength = ratio_cap(d.average_life_expectancy, caps["life_expectancy_reference"])
living_alone_growth_strength = ratio_cap(
d.seniors_living_alone_growth, caps["living_alone_growth_reference"]
)
base_stock = 100.0 * (
0.45 * gmp_strength + 0.35 * population_strength + 0.20 * international_depth
)
youth_inflow = 100.0 * tfr_strength
longevity_load = 100.0 * (
0.40 * aging_share_strength
+ 0.30 * life_expectancy_strength
+ 0.30 * living_alone_growth_strength
)
school_capture = 100.0 - 8.0 * d.weighted_school_nonattendance_rate_pct
leakage_recovery = 100.0 * max(
0.0,
1.0 - d.unsupported_share - 0.5 * d.absent90plus_share - 0.3 * d.hs_dropout_share,
)
integration_penalty = (1.0 - international_depth) * 0.5
parent_capability = 100.0 * max(
0.0,
1.0 - 0.6 * d.unsupported_share - 0.2 * d.absent90plus_share - 0.2 * integration_penalty,
)
midlife_retool = 0.45 * leakage_recovery + 0.25 * base_stock + 0.30 * youth_inflow
career_alignment = 0.35 * base_stock + 0.25 * youth_inflow + 0.25 * school_capture + 0.15 * leakage_recovery
inverse_aging_burden = 1.0 - ratio_cap(raw["japan_age65plus_share_2070_pct_medium"], 50.0)
inverse_living_alone_burden = 1.0 - ratio_cap(
raw["tokyo_seniors_living_alone_2050"], raw["tokyo_population_2025"] * 0.15
)
late_life_use = 100.0 * (
0.45 * inverse_aging_burden
+ 0.20 * inverse_living_alone_burden
+ 0.35 * ratio_cap(base_stock, 100.0)
)
state = {
"base_stock": clamp(base_stock),
"youth_inflow": clamp(youth_inflow),
"longevity_load": clamp(longevity_load),
"school_capture": clamp(school_capture),
"leakage_recovery": clamp(leakage_recovery),
"midlife_retool": clamp(midlife_retool),
"parent_capability": clamp(parent_capability),
"career_alignment": clamp(career_alignment),
"late_life_use": clamp(late_life_use),
}
return recompute_identity_fields(state)
# ============================================================================
# 6) IDENTITY / SUMMARY FIELDS
# ============================================================================
def recompute_identity_fields(state: Dict[str, float]) -> Dict[str, float]:
state = dict(state)
state["civic_continuity"] = clamp(
0.22 * state["school_capture"]
+ 0.20 * state["leakage_recovery"]
+ 0.18 * state["midlife_retool"]
+ 0.14 * state["parent_capability"]
+ 0.14 * state["career_alignment"]
+ 0.12 * state["late_life_use"]
)
state["legitimacy"] = clamp(
0.32 * state["civic_continuity"]
+ 0.22 * state["school_capture"]
+ 0.18 * state["leakage_recovery"]
+ 0.14 * state["parent_capability"]
+ 0.14 * state["career_alignment"]
)
return state
# ============================================================================
# 7) TRANSITION MODEL
# ============================================================================
def run_scenario(
scenario_name: str,
initial_state: Dict[str, float],
d: DerivedInputs,
start_year: int = 2026,
end_year: int = 2176,
) -> List[Dict[str, float]]:
cfg = MODEL_ASSUMPTIONS["policy_vectors"][scenario_name]
state = deepcopy(initial_state)
history: List[Dict[str, float]] = []
step_years = 10
steps = (end_year - start_year) // step_years
history.append({"year": start_year, "scenario": scenario_name, **state})
for step in range(1, steps + 1):
# exogenous demographic movement
state["youth_inflow"] = clamp(state["youth_inflow"] - 0.85)
state["longevity_load"] = clamp(
state["longevity_load"] + (0.65 if step <= 5 else 0.30)
)
# system stress terms
demographic_stress = max(
0.0,
0.033 * (100.0 - state["youth_inflow"])
+ 0.038 * (state["longevity_load"] - 70.0)
+ 0.022 * (d.unsupported_share * 100.0 - 25.0),
)
service_stress = (
0.6 * (d.unsupported_share * 100.0 / 10.0)
+ 0.3 * (d.absent90plus_share * 100.0 / 10.0)
+ 0.1 * (d.hs_dropout_share * 100.0 / 10.0)
)
drag = demographic_stress + 0.15 * service_stress
# shared drag from demographic/continuity pressure
state["school_capture"] -= 0.45 * drag
state["leakage_recovery"] -= 0.55 * drag
state["midlife_retool"] -= 0.58 * drag
state["parent_capability"] -= 0.30 * drag
state["career_alignment"] -= 0.42 * drag
state["late_life_use"] -= 0.62 * drag
# policy gains: this is where scenario differences enter
state["school_capture"] += cfg["school_capture_gain"]
state["leakage_recovery"] += cfg["leakage_recovery_gain"]
state["midlife_retool"] += cfg["midlife_retool_gain"]
state["parent_capability"] += cfg["parent_capability_gain"]
state["career_alignment"] += cfg["career_alignment_gain"]
state["late_life_use"] += cfg["late_life_use_gain"]
# feedback couplings: stronger recovery improves later nodes
state["midlife_retool"] += 0.04 * (state["leakage_recovery"] - 40.0)
state["career_alignment"] += 0.03 * (state["midlife_retool"] - 45.0)
state["late_life_use"] += 0.025 * (state["parent_capability"] - 50.0)
# base stock is not fixed; it responds to continuity and alignment
state["base_stock"] = clamp(
state["base_stock"]
+ 0.03 * (state["civic_continuity"] - 50.0)
- 0.02 * drag
+ 0.01 * (state["career_alignment"] - 50.0)
)
# clamp all mutable state fields then recompute identity fields
state = {key: clamp(value) for key, value in state.items()}
state = recompute_identity_fields(state)
history.append(
{
"year": start_year + step * step_years,
"scenario": scenario_name,
**state,
"demographic_stress": round(demographic_stress, 6),
"service_stress": round(service_stress, 6),
"drag": round(drag, 6),
}
)
return history
# ============================================================================
# 8) SUCCESS TEST
# ============================================================================
def evaluate_success(normal_end: Dict[str, float], extended_end: Dict[str, float]) -> Dict[str, Any]:
checks = {
"base_floor_preserved": (
extended_end["base_stock"] >= 75.0 and extended_end["school_capture"] >= 60.0
),
"continuity_viable": extended_end["civic_continuity"] >= 50.0,
"legitimacy_viable": extended_end["legitimacy"] >= 50.0,
"recovery_advantage_over_normal": (
extended_end["leakage_recovery"] >= normal_end["leakage_recovery"] + 20.0
),
"late_life_advantage_over_normal": (
extended_end["late_life_use"] >= normal_end["late_life_use"] + 20.0
),
}
passed = all(checks.values())
return {
"passed": passed,
"checks": checks,
"normal_end": normal_end,
"extended_end": extended_end,
"summary": (
"MOE V2.0 Extended qualifies as a model success under the declared rules."
if passed
else "MOE V2.0 Extended does not qualify as a model success under the declared rules."
),
}
# ============================================================================
# 9) PACKAGED RUNNER
# ============================================================================
def select_checkpoints(history: List[Dict[str, float]], years: List[int]) -> List[Dict[str, float]]:
lookup = {row["year"]: row for row in history}
return [lookup[year] for year in years]
def write_csv(path: Path, rows: List[Dict[str, Any]]) -> None:
if not rows:
return
fieldnames: List[str] = []
for row in rows:
for key in row.keys():
if key not in fieldnames:
fieldnames.append(key)
with path.open("w", newline="", encoding="utf-8") as f:
writer = csv.DictWriter(f, fieldnames=fieldnames)
writer.writeheader()
writer.writerows(rows)
def main() -> None:
derived = build_derived_inputs(RAW)
initial_state = compute_initial_state(RAW, derived)
normal_history = run_scenario("normal_moe", initial_state, derived)
extended_history = run_scenario("moe_v2_extended", initial_state, derived)
normal_end = normal_history[-1]
extended_end = extended_history[-1]
success = evaluate_success(normal_end, extended_end)
checkpoints = [2026, 2056, 2106, 2156, 2176]
result = {
"model_type": "deterministic policy simulation",
"city": "Tokyo",
"window": {"start_year": 2026, "end_year": 2176, "step_years": 10},
"datasets_used": DATASETS,
"model_assumptions": MODEL_ASSUMPTIONS,
"raw_inputs": RAW,
"derived_inputs": {
"foreign_resident_share": derived.foreign_resident_share,
"average_life_expectancy": derived.average_life_expectancy,
"seniors_living_alone_growth": derived.seniors_living_alone_growth,
"weighted_school_nonattendance_rate_pct": derived.weighted_school_nonattendance_rate_pct,
"unsupported_share": derived.unsupported_share,
"absent90plus_share": derived.absent90plus_share,
"hs_dropout_share": derived.hs_dropout_share,
},
"initial_state_2026": initial_state,
"scenario_checkpoints": {
"normal_moe": select_checkpoints(normal_history, checkpoints),
"moe_v2_extended": select_checkpoints(extended_history, checkpoints),
},
"full_trajectories": {
"normal_moe": normal_history,
"moe_v2_extended": extended_history,
},
"success_test": success,
}
out_dir = Path("/mnt/data")
json_path = out_dir / "tokyo_moe_v2_extended_audit_output.json"
csv_path = out_dir / "tokyo_moe_v2_extended_trajectories.csv"
with json_path.open("w", encoding="utf-8") as f:
json.dump(result, f, indent=2, ensure_ascii=False)
# flatten both scenarios for spreadsheet / audit use
flat_rows: List[Dict[str, Any]] = normal_history + extended_history
write_csv(csv_path, flat_rows)
# console summary for reproducibility
print(json.dumps({
"initial_state_2026": initial_state,
"normal_end_2176": normal_end,
"extended_end_2176": extended_end,
"success_test": success,
"artifacts": {
"json": str(json_path),
"csv": str(csv_path),
},
}, indent=2, ensure_ascii=False))
if __name__ == "__main__":
main()
tokyo_moe_v2_extended_audit_output.json
{
"model_type": "deterministic policy simulation",
"city": "Tokyo",
"window": {
"start_year": 2026,
"end_year": 2176,
"step_years": 10
},
"datasets_used": {
"tokyo_brochure_2026": {
"publisher": "Tokyo Metropolitan Government",
"title": "TOKYO 2026 brochure / Tokyo Basics",
"url": "https://www.tokyoupdates.metro.tokyo.lg.jp/en/brochure2026/pdf/tokyo2026.pdf",
"notes": [
"Population 2025: 14,273,066",
"Foreign residents 2025: 772,418",
"Average life expectancy 2020: male 81.77, female 87.86",
"People over 100 years old 2025: 7,633",
"Tokyo GMP nominal FY2022: ¥120.2 trillion",
"Tokyo GMP as share of Japan GDP FY2022: 21.2%"
],
"raw": {
"tokyo_population_2025": 14273066,
"tokyo_foreign_residents_2025": 772418,
"tokyo_life_expectancy_male_2020": 81.77,
"tokyo_life_expectancy_female_2020": 87.86,
"tokyo_people_over_100_2025": 7633,
"tokyo_gmp_nominal_yen_trillion_2022": 120.2,
"tokyo_gmp_share_japan_gdp_pct_2022": 21.2
}
},
"japan_vital_statistics_2024": {
"publisher": "Ministry of Health, Labour and Welfare (Japan)",
"title": "Vital Statistics of Japan / Natality",
"url": "https://www.mhlw.go.jp/toukei/youran/aramashi/syussyou.pdf",
"notes": [
"Japan total fertility rate 2024: 1.15"
],
"raw": {
"japan_tfr_2024": 1.15
}
},
"japan_population_projection_2023_revision": {
"publisher": "National Institute of Population and Social Security Research (Japan)",
"title": "Population Projections for Japan (2023 revision)",
"url": "https://www.ipss.go.jp/pp-zenkoku/j/zenkoku2023/pp2023e_Summary.pdf",
"notes": [
"Japan population projected in 2070: 87.0 million (medium-fertility/medium-mortality)",
"Japan share aged 65+ in 2070: 38.7%"
],
"raw": {
"japan_population_2070_million_medium": 87.0,
"japan_age65plus_share_2070_pct_medium": 38.7
}
},
"tokyo_longevity_society_article_2025": {
"publisher": "Tokyo Metropolitan Government / Tokyo Updates",
"title": "A Community-Based Place of Belonging for All in the 100-Year Life Era",
"url": "https://www.tokyoupdates.metro.tokyo.lg.jp/en/post-1582/",
"notes": [
"Seniors aged 65+ living alone in Tokyo: 890,000 in 2020",
"Projected seniors aged 65+ living alone in Tokyo: 1.48 million in 2050"
],
"raw": {
"tokyo_seniors_living_alone_2020": 890000,
"tokyo_seniors_living_alone_2050": 1480000
}
},
"mext_student_guidance_survey_r5": {
"publisher": "Ministry of Education, Culture, Sports, Science and Technology (Japan)",
"title": "FY2023 survey on student guidance issues / non-attendance",
"url": "https://www.mext.go.jp/content/20241031-mxt_jidou02-100002753_1_2.pdf",
"notes": [
"Elementary + junior high non-attendance: 346,482",
"Elementary + junior high enrollment: 9,321,243",
"Elementary + junior high non-attendance rate: 3.72%",
"Elementary + junior high unsupported among non-attendance: 134,368",
"Elementary + junior high unsupported share: 38.8%",
"Elementary + junior high absent 90+ days among non-attendance: 190,392",
"Elementary + junior high absent 90+ days share: 55.0%",
"High-school non-attendance: 68,770",
"High-school non-attendance rate: 2.4%",
"High-school dropout among non-attendance: 11,746",
"High-school dropout share among non-attendance: 17.1%"
],
"raw": {
"mext_es_jhs_nonattendance_2023": 346482,
"mext_es_jhs_enrollment_2023": 9321243,
"mext_es_jhs_nonattendance_rate_pct_2023": 3.72,
"mext_es_jhs_unsupported_2023": 134368,
"mext_es_jhs_unsupported_share_pct_2023": 38.8,
"mext_es_jhs_absent90plus_2023": 190392,
"mext_es_jhs_absent90plus_share_pct_2023": 55.0,
"mext_hs_nonattendance_2023": 68770,
"mext_hs_nonattendance_rate_pct_2023": 2.4,
"mext_hs_dropout_among_nonattendance_2023": 11746,
"mext_hs_dropout_share_among_nonattendance_pct_2023": 17.1
}
}
},
"model_assumptions": {
"normalization_caps": {
"gmp_share_pct_reference": 25.0,
"metro_population_reference": 15000000,
"foreign_resident_share_reference": 0.08,
"replacement_tfr_reference": 2.1,
"age65_share_reference": 40.0,
"life_expectancy_reference": 87.0,
"living_alone_growth_reference": 0.8
},
"initial_state_formulas": {
"base_stock": "100 * (0.45*gmp_strength + 0.35*population_strength + 0.20*international_depth)",
"youth_inflow": "100 * (TFR / replacement_TFR_reference)",
"longevity_load": "100 * (0.40*aging_share + 0.30*life_expectancy + 0.30*living_alone_growth)",
"school_capture": "100 - 8 * weighted_nonattendance_rate_pct",
"leakage_recovery": "100 * max(0, 1 - unsupported_share - 0.5*absent90plus_share - 0.3*hs_dropout_share)",
"midlife_retool": "0.45*leakage_recovery + 0.25*base_stock + 0.30*youth_inflow",
"parent_capability": "100 * (1 - 0.6*unsupported_share - 0.2*absent90plus_share - 0.1*integration_penalty)",
"career_alignment": "0.35*base_stock + 0.25*youth_inflow + 0.25*school_capture + 0.15*leakage_recovery",
"late_life_use": "100 * (0.45*inverse_aging_burden + 0.20*inverse_living_alone_burden + 0.35*base_stock_ratio)",
"civic_continuity": "0.24*school_capture + 0.20*leakage_recovery + 0.16*midlife_retool + 0.16*parent_capability + 0.12*career_alignment + 0.12*late_life_use",
"legitimacy": "0.35*civic_continuity + 0.20*school_capture + 0.20*leakage_recovery + 0.15*parent_capability + 0.10*career_alignment"
},
"transition_equations": {
"time_step": "10 years per step",
"steps": 15,
"youth_decline_per_step": 0.85,
"longevity_rise_first_5_steps": 0.65,
"longevity_rise_after_step_5": 0.3,
"drag_formula": "drag = demographic_stress + 0.15*service_stress",
"demographic_stress": "0.033*(100 - youth_inflow) + 0.038*(longevity_load - 70) + 0.022*(unsupported_share_pct - 25)",
"service_stress": "0.6*unsupported_share_pct/10 + 0.3*absent90plus_share_pct/10 + 0.1*hs_dropout_share_pct/10",
"base_stock_update": "base_stock += 0.03*(civic_continuity - 50) - 0.02*drag + 0.01*(career_alignment - 50)",
"feedbacks": [
"midlife_retool += 0.04*(leakage_recovery - 40)",
"career_alignment += 0.03*(midlife_retool - 45)",
"late_life_use += 0.025*(parent_capability - 50)"
]
},
"policy_vectors": {
"normal_moe": {
"school_capture_gain": 1.0,
"leakage_recovery_gain": 0.2,
"midlife_retool_gain": 0.2,
"parent_capability_gain": 0.08,
"career_alignment_gain": 0.3,
"late_life_use_gain": 0.04
},
"moe_v2_extended": {
"school_capture_gain": 1.2,
"leakage_recovery_gain": 1.9,
"midlife_retool_gain": 2.0,
"parent_capability_gain": 1.35,
"career_alignment_gain": 1.55,
"late_life_use_gain": 2.05
}
},
"success_test": {
"all_conditions_must_hold": true,
"conditions": {
"base_floor_preserved": "base_stock_end >= 75 and school_capture_end >= 60",
"continuity_viable": "civic_continuity_end >= 50",
"legitimacy_viable": "legitimacy_end >= 50",
"recovery_advantage_over_normal": "leakage_recovery_end >= normal_end_leakage_recovery + 20",
"late_life_advantage_over_normal": "late_life_use_end >= normal_end_late_life_use + 20"
}
}
},
"raw_inputs": {
"tokyo_population_2025": 14273066,
"tokyo_foreign_residents_2025": 772418,
"tokyo_life_expectancy_male_2020": 81.77,
"tokyo_life_expectancy_female_2020": 87.86,
"tokyo_people_over_100_2025": 7633,
"tokyo_gmp_nominal_yen_trillion_2022": 120.2,
"tokyo_gmp_share_japan_gdp_pct_2022": 21.2,
"japan_tfr_2024": 1.15,
"japan_population_2070_million_medium": 87.0,
"japan_age65plus_share_2070_pct_medium": 38.7,
"tokyo_seniors_living_alone_2020": 890000,
"tokyo_seniors_living_alone_2050": 1480000,
"mext_es_jhs_nonattendance_2023": 346482,
"mext_es_jhs_enrollment_2023": 9321243,
"mext_es_jhs_nonattendance_rate_pct_2023": 3.72,
"mext_es_jhs_unsupported_2023": 134368,
"mext_es_jhs_unsupported_share_pct_2023": 38.8,
"mext_es_jhs_absent90plus_2023": 190392,
"mext_es_jhs_absent90plus_share_pct_2023": 55.0,
"mext_hs_nonattendance_2023": 68770,
"mext_hs_nonattendance_rate_pct_2023": 2.4,
"mext_hs_dropout_among_nonattendance_2023": 11746,
"mext_hs_dropout_share_among_nonattendance_pct_2023": 17.1
},
"derived_inputs": {
"foreign_resident_share": 0.05411717426374964,
"average_life_expectancy": 84.815,
"seniors_living_alone_growth": 0.6629213483146068,
"weighted_school_nonattendance_rate_pct": 3.324,
"unsupported_share": 0.38799999999999996,
"absent90plus_share": 0.55,
"hs_dropout_share": 0.171
},
"initial_state_2026": {
"base_stock": 84.99311423260407,
"youth_inflow": 54.76190476190476,
"longevity_load": 92.8061022859357,
"school_capture": 73.408,
"leakage_recovery": 28.570000000000007,
"midlife_retool": 50.533349986722456,
"parent_capability": 62.48464678296871,
"career_alignment": 66.07556617188762,
"late_life_use": 46.09201576117498,
"civic_continuity": 54.48923470263093,
"legitimacy": 56.727344918521794
},
"scenario_checkpoints": {
"normal_moe": [
{
"year": 2026,
"scenario": "normal_moe",
"base_stock": 84.99311423260407,
"youth_inflow": 54.76190476190476,
"longevity_load": 92.8061022859357,
"school_capture": 73.408,
"leakage_recovery": 28.570000000000007,
"midlife_retool": 50.533349986722456,
"parent_capability": 62.48464678296871,
"career_alignment": 66.07556617188762,
"late_life_use": 46.09201576117498,
"civic_continuity": 54.48923470263093,
"legitimacy": 56.727344918521794
},
{
"year": 2056,
"scenario": "normal_moe",
"base_stock": 85.49143044214667,
"youth_inflow": 52.211904761904755,
"longevity_load": 94.75610228593571,
"school_capture": 71.83023230987436,
"leakage_recovery": 23.574950600957553,
"midlife_retool": 43.46423312308157,
"parent_capability": 59.67280165621827,
"career_alignment": 62.78270403594281,
"late_life_use": 40.70141666827588,
"civic_continuity": 50.369143987614216,
"legitimacy": 53.30803908928382,
"demographic_stress": 2.821339,
"service_stress": 4.149,
"drag": 3.443689
},
{
"year": 2106,
"scenario": "normal_moe",
"base_stock": 85.15555389490363,
"youth_inflow": 47.96190476190475,
"longevity_load": 96.95610228593571,
"school_capture": 68.76177949299827,
"leakage_recovery": 14.713508269220123,
"midlife_retool": 29.72577517726878,
"parent_capability": 54.693833111634206,
"career_alignment": 55.31406416946037,
"late_life_use": 30.62371749231898,
"civic_continuity": 42.496884392643544,
"legitimacy": 46.776131601918415,
"demographic_stress": 3.045189,
"service_stress": 4.149,
"drag": 3.667539
},
{
"year": 2156,
"scenario": "normal_moe",
"base_stock": 83.09340367594295,
"youth_inflow": 43.71190476190474,
"longevity_load": 98.4561022859357,
"school_capture": 65.24352917612217,
"leakage_recovery": 5.3023134374826935,
"midlife_retool": 13.568734265108473,
"parent_capability": 49.41499956705015,
"career_alignment": 45.14801115413476,
"late_life_use": 19.281236873289078,
"civic_continuity": 33.40898119972352,
"legitimacy": 39.23768832237118,
"demographic_stress": 3.242439,
"service_stress": 4.149,
"drag": 3.864789
},
{
"year": 2176,
"scenario": "normal_moe",
"base_stock": 81.71195048876015,
"youth_inflow": 42.01190476190474,
"longevity_load": 99.0561022859357,
"school_capture": 63.71196154937173,
"leakage_recovery": 1.3859530047877235,
"midlife_retool": 6.4065733896670585,
"parent_capability": 47.22062114921653,
"career_alignment": 40.24523281805914,
"late_life_use": 14.384130201616678,
"civic_continuity": 29.418320531571993,
"legitimacy": 35.92518520724521,
"demographic_stress": 3.321339,
"service_stress": 4.149,
"drag": 3.943689
}
],
"moe_v2_extended": [
{
"year": 2026,
"scenario": "moe_v2_extended",
"base_stock": 84.99311423260407,
"youth_inflow": 54.76190476190476,
"longevity_load": 92.8061022859357,
"school_capture": 73.408,
"leakage_recovery": 28.570000000000007,
"midlife_retool": 50.533349986722456,
"parent_capability": 62.48464678296871,
"career_alignment": 66.07556617188762,
"late_life_use": 46.09201576117498,
"civic_continuity": 54.48923470263093,
"legitimacy": 56.727344918521794
},
{
"year": 2056,
"scenario": "moe_v2_extended",
"base_stock": 85.69219248214665,
"youth_inflow": 52.211904761904755,
"longevity_load": 94.75610228593571,
"school_capture": 72.43023230987437,
"leakage_recovery": 28.67495060095755,
"midlife_retool": 49.272233123081556,
"parent_capability": 63.48280165621828,
"career_alignment": 66.8771040359428,
"late_life_use": 46.92191666827588,
"civic_continuity": 54.41965998761421,
"legitimacy": 56.76082020928382,
"demographic_stress": 2.821339,
"service_stress": 4.149,
"drag": 3.443689
},
{
"year": 2106,
"scenario": "moe_v2_extended",
"base_stock": 86.83206237490364,
"youth_inflow": 47.96190476190475,
"longevity_load": 96.95610228593571,
"school_capture": 70.3617794929983,
"leakage_recovery": 28.313508269220115,
"midlife_retool": 46.573775177268736,
"parent_capability": 64.85383311163422,
"career_alignment": 67.50286416946037,
"late_life_use": 47.846717492318966,
"civic_continuity": 53.79711639264354,
"legitimacy": 56.321037841918425,
"demographic_stress": 3.045189,
"service_stress": 4.149,
"drag": 3.667539
},
{
"year": 2156,
"scenario": "moe_v2_extended",
"base_stock": 87.82992819594295,
"youth_inflow": 43.71190476190474,
"longevity_load": 98.4561022859357,
"school_capture": 67.8435291761222,
"leakage_recovery": 27.402313437482682,
"midlife_retool": 43.15673426510845,
"parent_capability": 65.92499956705015,
"career_alignment": 67.24021115413474,
"late_life_use": 48.300486873289046,
"civic_continuity": 52.613439199723516,
"legitimacy": 55.33742288237118,
"demographic_stress": 3.242439,
"service_stress": 4.149,
"drag": 3.864789
},
{
"year": 2176,
"scenario": "moe_v2_extended",
"base_stock": 88.15991432876014,
"youth_inflow": 42.01190476190474,
"longevity_load": 99.0561022859357,
"school_capture": 66.7119615493718,
"leakage_recovery": 26.88595300478771,
"midlife_retool": 41.56657338966703,
"parent_capability": 66.27062114921652,
"career_alignment": 66.86243281805912,
"late_life_use": 48.34413020161663,
"civic_continuity": 51.97572853157199,
"legitimacy": 54.78696376724521,
"demographic_stress": 3.321339,
"service_stress": 4.149,
"drag": 3.943689
}
]
},
"full_trajectories": {
"normal_moe": [
{
"year": 2026,
"scenario": "normal_moe",
"base_stock": 84.99311423260407,
"youth_inflow": 54.76190476190476,
"longevity_load": 92.8061022859357,
"school_capture": 73.408,
"leakage_recovery": 28.570000000000007,
"midlife_retool": 50.533349986722456,
"parent_capability": 62.48464678296871,
"career_alignment": 66.07556617188762,
"late_life_use": 46.09201576117498,
"civic_continuity": 54.48923470263093,
"legitimacy": 56.727344918521794
},
{
"year": 2036,
"scenario": "normal_moe",
"base_stock": 85.21174512893984,
"youth_inflow": 53.91190476190476,
"longevity_load": 93.4561022859357,
"school_capture": 72.9058149366248,
"leakage_recovery": 26.933996033652523,
"midlife_retool": 48.27456019082939,
"parent_capability": 61.563190074051896,
"career_alignment": 65.07176358512896,
"late_life_use": 44.3514183145982,
"civic_continuity": 53.16656303717435,
"legitimacy": 55.629592256296014,
"demographic_stress": 2.715839,
"service_stress": 4.149,
"drag": 3.338189
},
{
"year": 2046,
"scenario": "normal_moe",
"base_stock": 85.37867450380796,
"youth_inflow": 53.061904761904756,
"longevity_load": 94.1061022859357,
"school_capture": 72.37989237324958,
"leakage_recovery": 25.26897956730504,
"midlife_retool": 45.91857473628243,
"parent_capability": 60.62590836513508,
"career_alignment": 63.975126434733895,
"late_life_use": 42.554683825298504,
"civic_continuity": 51.79342261912423,
"legitimacy": 54.490032754331224,
"demographic_stress": 2.768589,
"service_stress": 4.149,
"drag": 3.390939
},
{
"year": 2056,
"scenario": "normal_moe",
"base_stock": 85.49143044214667,
"youth_inflow": 52.211904761904755,
"longevity_load": 94.75610228593571,
"school_capture": 71.83023230987436,
"leakage_recovery": 23.574950600957553,
"midlife_retool": 43.46423312308157,
"parent_capability": 59.67280165621827,
"career_alignment": 62.78270403594281,
"late_life_use": 40.70141666827588,
"civic_continuity": 50.369143987614216,
"legitimacy": 53.30803908928382,
"demographic_stress": 2.821339,
"service_stress": 4.149,
"drag": 3.443689
},
{
"year": 2066,
"scenario": "normal_moe",
"base_stock": 85.5474910900706,
"youth_inflow": 51.36190476190475,
"longevity_load": 95.40610228593572,
"school_capture": 71.25683474649915,
"leakage_recovery": 21.851909134610068,
"midlife_retool": 40.91037485122681,
"parent_capability": 58.703869947301456,
"career_alignment": 61.491510888996075,
"late_life_use": 38.791221218530346,
"civic_continuity": 48.89305280767795,
"legitimacy": 52.08297750399822,
"demographic_stress": 2.874089,
"service_stress": 4.149,
"drag": 3.496439
},
{
"year": 2076,
"scenario": "normal_moe",
"base_stock": 85.54428416049781,
"youth_inflow": 50.51190476190475,
"longevity_load": 96.05610228593572,
"school_capture": 70.65969968312393,
"leakage_recovery": 20.099855168262582,
"midlife_retool": 38.255839420718154,
"parent_capability": 57.719113238384644,
"career_alignment": 60.09852667913408,
"late_life_use": 36.823701851061884,
"civic_continuity": 47.3644698702491,
"legitimacy": 50.81420780750686,
"demographic_stress": 2.926839,
"service_stress": 4.149,
"drag": 3.549189
},
{
"year": 2086,
"scenario": "normal_moe",
"base_stock": 85.47951070075679,
"youth_inflow": 49.66190476190475,
"longevity_load": 96.35610228593572,
"school_capture": 70.04481211974871,
"leakage_recovery": 18.326103701915095,
"midlife_retool": 35.5074729315556,
"parent_capability": 56.72252152946783,
"career_alignment": 58.60652247459721,
"late_life_use": 34.806808690870504,
"civic_continuity": 45.78930773788131,
"legitimacy": 49.50720196938056,
"demographic_stress": 2.966289,
"service_stress": 4.149,
"drag": 3.588639
},
{
"year": 2096,
"scenario": "normal_moe",
"base_stock": 85.35075472536504,
"youth_inflow": 48.81190476190475,
"longevity_load": 96.65610228593572,
"school_capture": 69.41217205637349,
"leakage_recovery": 16.53065473556761,
"midlife_retool": 32.66440748373914,
"parent_capability": 55.71409482055102,
"career_alignment": 57.01265730662585,
"late_life_use": 32.7402458629562,
"civic_continuity": 44.16697694794824,
"legitimacy": 48.16137362595254,
"demographic_stress": 3.005739,
"service_stress": 4.149,
"drag": 3.628089
},
{
"year": 2106,
"scenario": "normal_moe",
"base_stock": 85.15555389490363,
"youth_inflow": 47.96190476190475,
"longevity_load": 96.95610228593571,
"school_capture": 68.76177949299827,
"leakage_recovery": 14.713508269220123,
"midlife_retool": 29.72577517726878,
"parent_capability": 54.693833111634206,
"career_alignment": 55.31406416946037,
"late_life_use": 30.62371749231898,
"civic_continuity": 42.496884392643544,
"legitimacy": 46.776131601918415,
"demographic_stress": 3.045189,
"service_stress": 4.149,
"drag": 3.667539
},
{
"year": 2116,
"scenario": "normal_moe",
"base_stock": 84.8913991462919,
"youth_inflow": 47.111904761904746,
"longevity_load": 97.25610228593571,
"school_capture": 68.09363442962305,
"leakage_recovery": 12.874664302872636,
"midlife_retool": 26.690708112144517,
"parent_capability": 53.661736402717395,
"career_alignment": 53.50785002034117,
"late_life_use": 28.45692770395884,
"civic_continuity": 40.77843331898087,
"legitimacy": 45.35087991033623,
"demographic_stress": 3.084639,
"service_stress": 4.149,
"drag": 3.706989
},
{
"year": 2126,
"scenario": "normal_moe",
"base_stock": 84.55573432306197,
"youth_inflow": 46.261904761904745,
"longevity_load": 97.55610228593571,
"school_capture": 67.40773686624783,
"leakage_recovery": 11.01412283652515,
"midlife_retool": 23.558338388366355,
"parent_capability": 52.617804693800586,
"career_alignment": 51.59109577950863,
"late_life_use": 26.239580622875778,
"civic_continuity": 39.011023328793875,
"legitimacy": 43.88501775262638,
"demographic_stress": 3.124089,
"service_stress": 4.149,
"drag": 3.746439
},
{
"year": 2136,
"scenario": "normal_moe",
"base_stock": 84.14595580563335,
"youth_inflow": 45.411904761904744,
"longevity_load": 97.8561022859357,
"school_capture": 66.70408680287261,
"leakage_recovery": 9.131883870177663,
"midlife_retool": 20.327798105934292,
"parent_capability": 51.56203798488377,
"career_alignment": 49.56085633020312,
"late_life_use": 23.971380374069795,
"civic_continuity": 37.19405037873622,
"legitimacy": 42.37793951857171,
"demographic_stress": 3.163539,
"service_stress": 4.149,
"drag": 3.785889
},
{
"year": 2146,
"scenario": "normal_moe",
"base_stock": 83.65941214158762,
"youth_inflow": 44.56190476190474,
"longevity_load": 98.1561022859357,
"school_capture": 65.98268423949739,
"leakage_recovery": 7.2279474038301785,
"midlife_retool": 16.99821936484833,
"parent_capability": 50.49443627596696,
"career_alignment": 47.414160518665035,
"late_life_use": 21.652031082540898,
"civic_continuity": 35.32690678028155,
"legitimacy": 40.82903478631743,
"demographic_stress": 3.202989,
"service_stress": 4.149,
"drag": 3.825339
},
{
"year": 2156,
"scenario": "normal_moe",
"base_stock": 83.09340367594295,
"youth_inflow": 43.71190476190474,
"longevity_load": 98.4561022859357,
"school_capture": 65.24352917612217,
"leakage_recovery": 5.3023134374826935,
"midlife_retool": 13.568734265108473,
"parent_capability": 49.41499956705015,
"career_alignment": 45.14801115413476,
"late_life_use": 19.281236873289078,
"civic_continuity": 33.40898119972352,
"legitimacy": 39.23768832237118,
"demographic_stress": 3.242439,
"service_stress": 4.149,
"drag": 3.864789
},
{
"year": 2166,
"scenario": "normal_moe",
"base_stock": 82.44518218142873,
"youth_inflow": 42.86190476190474,
"longevity_load": 98.7561022859357,
"school_capture": 64.48662161274694,
"leakage_recovery": 3.3549819711352087,
"midlife_retool": 10.038474906714715,
"parent_capability": 48.32372785813334,
"career_alignment": 42.75938500885266,
"late_life_use": 16.858701871314338,
"civic_continuity": 31.43965865817578,
"legitimacy": 37.60328008160295,
"demographic_stress": 3.281889,
"service_stress": 4.149,
"drag": 3.904239
},
{
"year": 2176,
"scenario": "normal_moe",
"base_stock": 81.71195048876015,
"youth_inflow": 42.01190476190474,
"longevity_load": 99.0561022859357,
"school_capture": 63.71196154937173,
"leakage_recovery": 1.3859530047877235,
"midlife_retool": 6.4065733896670585,
"parent_capability": 47.22062114921653,
"career_alignment": 40.24523281805914,
"late_life_use": 14.384130201616678,
"civic_continuity": 29.418320531571993,
"legitimacy": 35.92518520724521,
"demographic_stress": 3.321339,
"service_stress": 4.149,
"drag": 3.943689
}
],
"moe_v2_extended": [
{
"year": 2026,
"scenario": "moe_v2_extended",
"base_stock": 84.99311423260407,
"youth_inflow": 54.76190476190476,
"longevity_load": 92.8061022859357,
"school_capture": 73.408,
"leakage_recovery": 28.570000000000007,
"midlife_retool": 50.533349986722456,
"parent_capability": 62.48464678296871,
"career_alignment": 66.07556617188762,
"late_life_use": 46.09201576117498,
"civic_continuity": 54.48923470263093,
"legitimacy": 56.727344918521794
},
{
"year": 2036,
"scenario": "moe_v2_extended",
"base_stock": 85.22480552893984,
"youth_inflow": 53.91190476190476,
"longevity_load": 93.4561022859357,
"school_capture": 73.1058149366248,
"leakage_recovery": 28.633996033652522,
"midlife_retool": 50.142560190829386,
"parent_capability": 62.8331900740519,
"career_alignment": 66.37780358512896,
"late_life_use": 46.3931683145982,
"civic_continuity": 54.49245863717435,
"legitimacy": 56.76452444829602,
"demographic_stress": 2.715839,
"service_stress": 4.149,
"drag": 3.338189
},
{
"year": 2046,
"scenario": "moe_v2_extended",
"base_stock": 85.45821337180796,
"youth_inflow": 53.061904761904756,
"longevity_load": 94.1061022859357,
"school_capture": 72.77989237324958,
"leakage_recovery": 28.668979567305037,
"midlife_retool": 49.72257473628242,
"parent_capability": 63.16590836513509,
"career_alignment": 66.6452864347339,
"late_life_use": 46.6699338252985,
"civic_continuity": 54.469395019124235,
"legitimacy": 56.77576632233123,
"demographic_stress": 2.768589,
"service_stress": 4.149,
"drag": 3.390939
},
{
"year": 2056,
"scenario": "moe_v2_extended",
"base_stock": 85.69219248214665,
"youth_inflow": 52.211904761904755,
"longevity_load": 94.75610228593571,
"school_capture": 72.43023230987437,
"leakage_recovery": 28.67495060095755,
"midlife_retool": 49.272233123081556,
"parent_capability": 63.48280165621828,
"career_alignment": 66.8771040359428,
"late_life_use": 46.92191666827588,
"civic_continuity": 54.41965998761421,
"legitimacy": 56.76082020928382,
"demographic_stress": 2.821339,
"service_stress": 4.149,
"drag": 3.443689
},
{
"year": 2066,
"scenario": "moe_v2_extended",
"base_stock": 85.92557661007058,
"youth_inflow": 51.36190476190475,
"longevity_load": 95.40610228593572,
"school_capture": 72.05683474649916,
"leakage_recovery": 28.651909134610065,
"midlife_retool": 48.790374851226794,
"parent_capability": 63.78386994730147,
"career_alignment": 67.07231088899607,
"late_life_use": 47.14872121853033,
"civic_continuity": 54.342864807677955,
"legitimacy": 56.71942934399824,
"demographic_stress": 2.874089,
"service_stress": 4.149,
"drag": 3.496439
},
{
"year": 2076,
"scenario": "moe_v2_extended",
"base_stock": 86.1571780404978,
"youth_inflow": 50.51190476190475,
"longevity_load": 96.05610228593572,
"school_capture": 71.65969968312395,
"leakage_recovery": 28.59985516826258,
"midlife_retool": 48.27583942071813,
"parent_capability": 64.06911323838466,
"career_alignment": 67.22992667913408,
"late_life_use": 47.349951851061874,
"civic_continuity": 54.238615870249085,
"legitimacy": 56.65133052750686,
"demographic_stress": 2.926839,
"service_stress": 4.149,
"drag": 3.549189
},
{
"year": 2086,
"scenario": "moe_v2_extended",
"base_stock": 86.38611136075679,
"youth_inflow": 49.66190476190475,
"longevity_load": 96.35610228593572,
"school_capture": 71.24481211974873,
"leakage_recovery": 28.52610370191509,
"midlife_retool": 47.73547293155556,
"parent_capability": 64.34252152946785,
"career_alignment": 67.35476247459721,
"late_life_use": 47.53355869087049,
"civic_continuity": 54.11311133788131,
"legitimacy": 56.56237272138056,
"demographic_stress": 2.966289,
"service_stress": 4.149,
"drag": 3.588639
},
{
"year": 2096,
"scenario": "moe_v2_extended",
"base_stock": 86.61140309336504,
"youth_inflow": 48.81190476190475,
"longevity_load": 96.65610228593572,
"school_capture": 70.81217205637351,
"leakage_recovery": 28.430654735567604,
"midlife_retool": 47.1684074837391,
"parent_capability": 64.60409482055103,
"career_alignment": 67.44601730662585,
"late_life_use": 47.69924586295619,
"civic_continuity": 53.96604734794824,
"legitimacy": 56.452346553952545,
"demographic_stress": 3.005739,
"service_stress": 4.149,
"drag": 3.628089
},
{
"year": 2106,
"scenario": "moe_v2_extended",
"base_stock": 86.83206237490364,
"youth_inflow": 47.96190476190475,
"longevity_load": 96.95610228593571,
"school_capture": 70.3617794929983,
"leakage_recovery": 28.313508269220115,
"midlife_retool": 46.573775177268736,
"parent_capability": 64.85383311163422,
"career_alignment": 67.50286416946037,
"late_life_use": 47.846717492318966,
"civic_continuity": 53.79711639264354,
"legitimacy": 56.321037841918425,
"demographic_stress": 3.045189,
"service_stress": 4.149,
"drag": 3.667539
},
{
"year": 2116,
"scenario": "moe_v2_extended",
"base_stock": 87.0470805862919,
"youth_inflow": 47.111904761904746,
"longevity_load": 97.25610228593571,
"school_capture": 69.89363442962308,
"leakage_recovery": 28.17466430287263,
"midlife_retool": 45.950708112144476,
"parent_capability": 65.0917364027174,
"career_alignment": 67.52445002034116,
"late_life_use": 47.97567770395882,
"civic_continuity": 53.60600731898087,
"legitimacy": 56.16822759033623,
"demographic_stress": 3.084639,
"service_stress": 4.149,
"drag": 3.706989
},
{
"year": 2126,
"scenario": "moe_v2_extended",
"base_stock": 87.25543098306196,
"youth_inflow": 46.261904761904745,
"longevity_load": 97.55610228593571,
"school_capture": 69.40773686624786,
"leakage_recovery": 28.014122836525143,
"midlife_retool": 45.29833838836632,
"parent_capability": 65.3178046938006,
"career_alignment": 67.50989577950862,
"late_life_use": 48.08583062287576,
"civic_continuity": 53.39240532879387,
"legitimacy": 55.99369199262638,
"demographic_stress": 3.124089,
"service_stress": 4.149,
"drag": 3.746439
},
{
"year": 2136,
"scenario": "moe_v2_extended",
"base_stock": 87.45606832563334,
"youth_inflow": 45.411904761904744,
"longevity_load": 97.8561022859357,
"school_capture": 68.90408680287264,
"leakage_recovery": 27.831883870177656,
"midlife_retool": 44.61579810593426,
"parent_capability": 65.53203798488379,
"career_alignment": 67.45829633020311,
"late_life_use": 48.176880374069775,
"civic_continuity": 53.15599197873622,
"legitimacy": 55.79720243057171,
"demographic_stress": 3.163539,
"service_stress": 4.149,
"drag": 3.785889
},
{
"year": 2146,
"scenario": "moe_v2_extended",
"base_stock": 87.64792850958762,
"youth_inflow": 44.56190476190474,
"longevity_load": 98.1561022859357,
"school_capture": 68.38268423949742,
"leakage_recovery": 27.62794740383017,
"midlife_retool": 43.90221936484831,
"parent_capability": 65.73443627596697,
"career_alignment": 67.36872051866503,
"late_life_use": 48.24853108254087,
"civic_continuity": 52.896445180281546,
"legitimacy": 55.57852547431744,
"demographic_stress": 3.202989,
"service_stress": 4.149,
"drag": 3.825339
},
{
"year": 2156,
"scenario": "moe_v2_extended",
"base_stock": 87.82992819594295,
"youth_inflow": 43.71190476190474,
"longevity_load": 98.4561022859357,
"school_capture": 67.8435291761222,
"leakage_recovery": 27.402313437482682,
"midlife_retool": 43.15673426510845,
"parent_capability": 65.92499956705015,
"career_alignment": 67.24021115413474,
"late_life_use": 48.300486873289046,
"civic_continuity": 52.613439199723516,
"legitimacy": 55.33742288237118,
"demographic_stress": 3.242439,
"service_stress": 4.149,
"drag": 3.864789
},
{
"year": 2166,
"scenario": "moe_v2_extended",
"base_stock": 88.00096444142874,
"youth_inflow": 42.86190476190474,
"longevity_load": 98.7561022859357,
"school_capture": 67.286621612747,
"leakage_recovery": 27.154981971135197,
"midlife_retool": 42.378474906714686,
"parent_capability": 66.10372785813334,
"career_alignment": 67.07178500885264,
"late_life_use": 48.3324518713143,
"civic_continuity": 52.306644658175784,
"legitimacy": 55.07365160160297,
"demographic_stress": 3.281889,
"service_stress": 4.149,
"drag": 3.904239
},
{
"year": 2176,
"scenario": "moe_v2_extended",
"base_stock": 88.15991432876014,
"youth_inflow": 42.01190476190474,
"longevity_load": 99.0561022859357,
"school_capture": 66.7119615493718,
"leakage_recovery": 26.88595300478771,
"midlife_retool": 41.56657338966703,
"parent_capability": 66.27062114921652,
"career_alignment": 66.86243281805912,
"late_life_use": 48.34413020161663,
"civic_continuity": 51.97572853157199,
"legitimacy": 54.78696376724521,
"demographic_stress": 3.321339,
"service_stress": 4.149,
"drag": 3.943689
}
]
},
"success_test": {
"passed": true,
"checks": {
"base_floor_preserved": true,
"continuity_viable": true,
"legitimacy_viable": true,
"recovery_advantage_over_normal": true,
"late_life_advantage_over_normal": true
},
"normal_end": {
"year": 2176,
"scenario": "normal_moe",
"base_stock": 81.71195048876015,
"youth_inflow": 42.01190476190474,
"longevity_load": 99.0561022859357,
"school_capture": 63.71196154937173,
"leakage_recovery": 1.3859530047877235,
"midlife_retool": 6.4065733896670585,
"parent_capability": 47.22062114921653,
"career_alignment": 40.24523281805914,
"late_life_use": 14.384130201616678,
"civic_continuity": 29.418320531571993,
"legitimacy": 35.92518520724521,
"demographic_stress": 3.321339,
"service_stress": 4.149,
"drag": 3.943689
},
"extended_end": {
"year": 2176,
"scenario": "moe_v2_extended",
"base_stock": 88.15991432876014,
"youth_inflow": 42.01190476190474,
"longevity_load": 99.0561022859357,
"school_capture": 66.7119615493718,
"leakage_recovery": 26.88595300478771,
"midlife_retool": 41.56657338966703,
"parent_capability": 66.27062114921652,
"career_alignment": 66.86243281805912,
"late_life_use": 48.34413020161663,
"civic_continuity": 51.97572853157199,
"legitimacy": 54.78696376724521,
"demographic_stress": 3.321339,
"service_stress": 4.149,
"drag": 3.943689
},
"summary": "MOE V2.0 Extended qualifies as a model success under the declared rules."
}
}
[wp_proof_pack_block]
TITLE:
Tokyo CitySim.150Y.CF Proof Pack
SUBTITLE:
Normal MOE vs MOE V2.0 Extended | Tokyo | 150-Year Audit Files
PURPOSE:
This proof pack is included so readers, auditors, AI systems, and future reviewers can check the simulation inputs, logic, outputs, and trajectories directly.
The aim is simple:
show the method,
show the result,
show the full run path,
and reduce claims that the model was hand-waved or hidden.
SECTION_1:
Heading: What is included in this proof pack?
ITEM_1:
File: tokyo_moe_v2_extended_audit.py
Role: Main audit code
Use:
- shows the datasets used
- shows the declared assumptions
- shows the formulas and transition logic
- shows how the verdict is calculated
LINK:
[sandbox:/mnt/data/tokyo_moe_v2_extended_audit.py]
ITEM_2:
File: tokyo_moe_v2_extended_audit_output.json
Role: Machine-readable final output
Use:
- shows the final model results
- shows the success checks
- shows the final verdict in structured form
- useful for AI ingestion, verification, and downstream processing
LINK:
[sandbox:/mnt/data/tokyo_moe_v2_extended_audit_output.json]
ITEM_3:
File: tokyo_moe_v2_extended_trajectories.csv
Role: Full trajectory evidence
Use:
- shows how variables changed across the 150-year run
- shows that the conclusion is not based only on the final snapshot
- allows external charting, replay, and inspection
LINK:
[sandbox:/mnt/data/tokyo_moe_v2_extended_trajectories.csv]
SECTION_2:
Heading: How to read this proof pack
STEP_1:
Read the Python audit file first.
This shows the declared model structure, the variables, the assumptions, and the calculation path.
STEP_2:
Open the JSON output next.
This gives the clean machine-readable result and the final pass/fail style checks.
STEP_3:
Open the CSV trajectory file last.
This shows how the system moved through time and whether MOE V2.0 Extended remained stronger than normal MOE across the run.
SECTION_3:
Heading: Why all 3 files matter
RULE:
The .py file shows the method.
The .json file shows the verdict.
The .csv file shows the path.
INTERPRETATION:
Without the code, the result can be accused of being unsupported.
Without the JSON, the result is harder for AI and auditors to verify quickly.
Without the CSV, the run can be accused of showing only an end-state without the path that led there.
SECTION_4:
Heading: Audit boundary
BOUNDARY_NOTE:
This is a declared simulation model, not an official government forecast.
The raw public datasets are separated from the model assumptions.
That separation is intentional so that future reviewers can distinguish:
- what was measured
- what was projected
- what was modelled
- what counted as success
SECTION_5:
Heading: Current verdict inside this proof pack
VERDICT:
Under the declared Tokyo CitySim.150Y.CF conditions,
MOE V2.0 Extended performs better than normal MOE
on leakage recovery,
mid-life retooling,
late-life inclusion,
career continuity,
and long-horizon civic survivability.
CLOSING_LINE:
This proof pack is published so the model can be examined, challenged, improved, or rerun openly.
[/wp_proof_pack_block]

eduKateSG Learning System | Control Tower, Runtime, and Next Routes

This article is one node inside the wider eduKateSG Learning System.

At eduKateSG, we do not treat education as random tips, isolated tuition notes, or one-off exam hacks. We treat learning as a living runtime:

state -> diagnosis -> method -> practice -> correction -> repair -> transfer -> long-term growth

That is why each article is written to do more than answer one question. It should help the reader move into the next correct corridor inside the wider eduKateSG system: understand -> diagnose -> repair -> optimize -> transfer. Your uploaded spine clearly clusters around Education OS, Tuition OS, Civilisation OS, subject learning systems, runtime/control-tower pages, and real-world lattice connectors, so this footer compresses those routes into one reusable ending block.

Start Here

Learning Systems

Runtime and Deep Structure

Real-World Connectors

Subject Runtime Lane

How to Use eduKateSG

If you want the big picture -> start with Education OS and Civilisation OS
If you want subject mastery -> enter Mathematics, English, Vocabulary, or Additional Mathematics
If you want diagnosis and repair -> move into the CivOS Runtime and subject runtime pages
If you want real-life context -> connect learning back to Family OS, Bukit Timah OS, Punggol OS, and Singapore City OS

Why eduKateSG writes articles this way

eduKateSG is not only publishing content.
eduKateSG is building a connected control tower for human learning.

That means each article can function as:

  • a standalone answer,
  • a bridge into a wider system,
  • a diagnostic node,
  • a repair route,
  • and a next-step guide for students, parents, tutors, and AI readers.
eduKateSG.LearningSystem.Footer.v1.0

TITLE: eduKateSG Learning System | Control Tower / Runtime / Next Routes

FUNCTION:
This article is one node inside the wider eduKateSG Learning System.
Its job is not only to explain one topic, but to help the reader enter the next correct corridor.

CORE_RUNTIME:
reader_state -> understanding -> diagnosis -> correction -> repair -> optimisation -> transfer -> long_term_growth

CORE_IDEA:
eduKateSG does not treat education as random tips, isolated tuition notes, or one-off exam hacks.
eduKateSG treats learning as a connected runtime across student, parent, tutor, school, family, subject, and civilisation layers.

PRIMARY_ROUTES:
1. First Principles
   - Education OS
   - Tuition OS
   - Civilisation OS
   - How Civilization Works
   - CivOS Runtime Control Tower

2. Subject Systems
   - Mathematics Learning System
   - English Learning System
   - Vocabulary Learning System
   - Additional Mathematics

3. Runtime / Diagnostics / Repair
   - CivOS Runtime Control Tower
   - MathOS Runtime Control Tower
   - MathOS Failure Atlas
   - MathOS Recovery Corridors
   - Human Regenerative Lattice
   - Civilisation Lattice

4. Real-World Connectors
   - Family OS
   - Bukit Timah OS
   - Punggol OS
   - Singapore City OS

READER_CORRIDORS:
IF need == "big picture"
THEN route_to = Education OS + Civilisation OS + How Civilization Works

IF need == "subject mastery"
THEN route_to = Mathematics + English + Vocabulary + Additional Mathematics

IF need == "diagnosis and repair"
THEN route_to = CivOS Runtime + subject runtime pages + failure atlas + recovery corridors

IF need == "real life context"
THEN route_to = Family OS + Bukit Timah OS + Punggol OS + Singapore City OS

CLICKABLE_LINKS:
Education OS:
Education OS | How Education Works — The Regenerative Machine Behind Learning
Tuition OS:
Tuition OS (eduKateOS / CivOS)
Civilisation OS:
Civilisation OS
How Civilization Works:
Civilisation: How Civilisation Actually Works
CivOS Runtime Control Tower:
CivOS Runtime / Control Tower (Compiled Master Spec)
Mathematics Learning System:
The eduKate Mathematics Learning System™
English Learning System:
Learning English System: FENCE™ by eduKateSG
Vocabulary Learning System:
eduKate Vocabulary Learning System
Additional Mathematics 101:
Additional Mathematics 101 (Everything You Need to Know)
Human Regenerative Lattice:
eRCP | Human Regenerative Lattice (HRL)
Civilisation Lattice:
The Operator Physics Keystone
Family OS:
Family OS (Level 0 root node)
Bukit Timah OS:
Bukit Timah OS
Punggol OS:
Punggol OS
Singapore City OS:
Singapore City OS
MathOS Runtime Control Tower:
MathOS Runtime Control Tower v0.1 (Install • Sensors • Fences • Recovery • Directories)
MathOS Failure Atlas:
MathOS Failure Atlas v0.1 (30 Collapse Patterns + Sensors + Truncate/Stitch/Retest)
MathOS Recovery Corridors:
MathOS Recovery Corridors Directory (P0→P3) — Entry Conditions, Steps, Retests, Exit Gates
SHORT_PUBLIC_FOOTER: This article is part of the wider eduKateSG Learning System. At eduKateSG, learning is treated as a connected runtime: understanding -> diagnosis -> correction -> repair -> optimisation -> transfer -> long-term growth. Start here: Education OS
Education OS | How Education Works — The Regenerative Machine Behind Learning
Tuition OS
Tuition OS (eduKateOS / CivOS)
Civilisation OS
Civilisation OS
CivOS Runtime Control Tower
CivOS Runtime / Control Tower (Compiled Master Spec)
Mathematics Learning System
The eduKate Mathematics Learning System™
English Learning System
Learning English System: FENCE™ by eduKateSG
Vocabulary Learning System
eduKate Vocabulary Learning System
Family OS
Family OS (Level 0 root node)
Singapore City OS
Singapore City OS
CLOSING_LINE: A strong article does not end at explanation. A strong article helps the reader enter the next correct corridor. TAGS: eduKateSG Learning System Control Tower Runtime Education OS Tuition OS Civilisation OS Mathematics English Vocabulary Family OS Singapore City OS
A woman in a white suit and tie sits at a marble table in a cafe, writing in a notebook.