This is a city-scale Z0–Z6 scaffold you can use and then expand node-by-node (each ID is stable; only version-forward).
0) Canonical boundary locks
- Boundary lock: Use Greater London as the Z5 “London” envelope: 33 local authorities = 32 boroughs + the City. (London City Hall)
- Strategic tier lock: Greater London Authority provides strategic direction across London; governance is led by the Mayor of London and scrutinised by the London Assembly. (House of Commons Library)
- Local tier lock: Borough councils + City of London Corporation deliver most local services. (London City Hall)
1) ID grammar lock
Use this one immutable key format everywhere:
ID := {PLACE}::{LANE}::{ZOOM}::{ROLE}::{TYPE}::{NAME}PLACE: GBR-LON (Greater London envelope)LANE : GOV TRAN HEALTH EDU FIN ENER WATER FOOD COMMS SAFE HOUSE WASTE CULTZOOM : Z0 household | Z1 street/block | Z2 neighbourhood | Z3 borough | Z4 subregion/corridor | Z5 city | Z6 globalROLE : V (visionary) | O (oracle) | P (operator) | M (mixed)TYPE : ORG SYS CORR NODE SENS RULE BIND FAIL REPRNAME : stable short token (no renames; only new IDs)
2) Phase lock for London
P3 = reliable under variation (buffers intact; recovery fast)P2 = reliable under normal load (thin buffers; brittle under shocks)P1 = frequent partial failure (queues/overload; cascading risk)P0 = systemic unreliability (core organs failing; recovery requires routing + sacrifice)
3) London lane index
GBR-LON::INDEX::Z5::M::SYS::LANES = [GOV, TRAN, HEALTH, EDU, FIN, ENER, WATER, FOOD, COMMS, SAFE, HOUSE, WASTE, CULT]
4) Borough registry lock
Rule: borough names never change; IDs never change; only add metadata.
33 local authorities (32 boroughs + City): (London City Hall)
- City of London
- Barking and Dagenham
- Barnet
- Bexley
- Brent
- Bromley
- Camden
- Croydon
- Ealing
- Enfield
- Greenwich
- Hackney
- Hammersmith and Fulham
- Haringey
- Harrow
- Havering
- Hillingdon
- Hounslow
- Islington
- Kensington and Chelsea
- Kingston upon Thames
- Lambeth
- Lewisham
- Merton
- Newham
- Redbridge
- Richmond upon Thames
- Southwark
- Sutton
- Tower Hamlets
- Waltham Forest
- Wandsworth
- Westminster
Borough ID pattern:
GBR-LON::GOV::Z3::P::ORG::BOROUGH.{TOKEN}GBR-LON::GOV::Z3::P::ORG::CITYOFLONDON
5) Citywide corridor registry lock
GBR-LON::TRAN::Z4::M::CORR::THAMES_CORRIDORGBR-LON::TRAN::Z4::M::CORR::CENTRAL_RINGGBR-LON::TRAN::Z4::M::CORR::WEST_AIRPORT_CORRIDORGBR-LON::TRAN::Z4::M::CORR::EAST_DOCKS_GATEWAYGBR-LON::TRAN::Z4::M::CORR::NORTH_ARCSGBR-LON::TRAN::Z4::M::CORR::SOUTH_ARCS
6) Lane blocks
Each lane is an organ family: it has (a) core organs, (b) sensors, (c) stop-loss rules, (d) failure traces, (e) repair router.
GOV lane
GBR-LON::GOV::Z5::M::ORG::GLAGBR-LON::GOV::Z5::P::ORG::MAYOR_OFFICEGBR-LON::GOV::Z5::O::ORG::LONDON_ASSEMBLYGBR-LON::GOV::Z5::M::ORG::LONDON_COUNCILSGBR-LON::GOV::Z3::P::ORG::BOROUGH_COURT_ROUTING (one per borough)GBR-LON::GOV::Z5::M::ORG::CITYOFLONDON_CORP
Governance invariants (machine rules): (House of Commons Library)
GBR-LON::GOV::Z5::M::RULE::TWO_TIER = strategic = GLA (Mayor exec; Assembly scrutiny) local = borough councils + City of London CorporationGBR-LON::GOV::Z5::O::RULE::SCRUTINY_LOOP = Assembly_questions + committees + formal_recommendations -> Mayor_response
Sensors (minimum pack):
GBR-LON::GOV::Z5::O::SENS::DECISION_LATENCYGBR-LON::GOV::Z5::O::SENS::BUDGET_GAPGBR-LON::GOV::Z5::O::SENS::DELIVERY_VARIANCEGBR-LON::GOV::Z5::O::SENS::BOROUGH_DIVERGENCE_INDEXGBR-LON::GOV::Z5::O::SENS::PUBLIC_TRUST_DRIFT
Failure mode trace (explicit):
GBR-LON::GOV::Z5::O::FAIL::TRACE_01 = Z3 policy divergence ↑ -> Z4 corridor inconsistency -> Z5 delivery variance ↑ -> P2->P1 in TRAN/HOUSE (queues + unrest) -> emergency powers / fiscal shock
Repair router:
GBR-LON::GOV::Z5::P::REPR::ROUTER = 1) declare corridor priority (Z4) 2) bind funding to sensors (Z5->Z3) 3) temporary standardisation packets (RULES) + audit loop (SENS) 4) shrink scope until P2 restored, then expand
TRAN lane
Core operator: **Transport for London (citywide).
Operational scope is commonly framed around Tube/buses/rail interfaces; citywide charging tools like the *Congestion Charge* are part of the demand-side control surface. (ITF OECD)
GBR-LON::TRAN::Z5::P::ORG::TFLGBR-LON::TRAN::Z5::M::SYS::MULTIMODAL_NETWORKGBR-LON::TRAN::Z4::M::CORR::THAMES_CORRIDORGBR-LON::TRAN::Z4::M::CORR::CENTRAL_RINGGBR-LON::TRAN::Z5::P::RULE::DEMAND_PRICING (road charging)
Air/rail gates (treat as external shocks + buffers):
- Heathrow Airport
- Gatwick Airport
- London City Airport
- Stansted Airport
- Luton Airport
GBR-LON::TRAN::Z6::M::NODE::AIR_GATE.HEATHROWGBR-LON::TRAN::Z6::M::NODE::AIR_GATE.GATWICKGBR-LON::TRAN::Z6::M::NODE::AIR_GATE.LCYGBR-LON::TRAN::Z6::M::NODE::AIR_GATE.STANSTEDGBR-LON::TRAN::Z6::M::NODE::AIR_GATE.LUTON
Sensors (minimum pack):
GBR-LON::TRAN::Z5::O::SENS::PEAK_LOAD_UTILGBR-LON::TRAN::Z5::O::SENS::MEAN_DELAYGBR-LON::TRAN::Z5::O::SENS::MISS_RATE (missed trips/cancellations)GBR-LON::TRAN::Z4::O::SENS::CORRIDOR_CONGESTIONGBR-LON::TRAN::Z5::O::SENS::SAFETY_INCIDENT_RATEGBR-LON::TRAN::Z5::O::SENS::PRICING_ELASTICITY (response to charging)
Stop-loss rules:
GBR-LON::TRAN::Z5::P::RULE::P1_TRIPWIRE = if PEAK_LOAD_UTIL > threshold for N days then activate: demand_pricing + service_rebalance + comms_priorityGBR-LON::TRAN::Z5::P::RULE::P0_TRIPWIRE = if cascading delays across 3+ corridors then sacrifice: low-priority branches, protect: hospital corridors + core interchanges
Failure mode trace:
GBR-LON::TRAN::Z5::O::FAIL::TRACE_01 = minor disruption -> corridor overload -> interchange saturation -> network delay cascade -> workforce lateness -> HEALTH/EDU reliability drop -> P2->P1 citywide on time-bound services
Repair router:
GBR-LON::TRAN::Z5::P::REPR::ROUTER = 1) isolate corridor 2) protect interchanges (queue control) 3) invoke demand tools (charging / restrictions) 4) publish predictable recovery schedule (reduce volatility)
HEALTH lane
GBR-LON::HEALTH::Z5::M::ORG::NHS_LONDON_ENVELOPEGBR-LON::HEALTH::Z5::P::ORG::AMBULANCE_SERVICEGBR-LON::HEALTH::Z5::P::SYS::HOSPITAL_NETWORKGBR-LON::HEALTH::Z4::M::CORR::MAJOR_TRAUMA_CORRIDORSGBR-LON::HEALTH::Z3::P::SYS::PRIMARY_CARE_PER_BOROUGH
Anchor tertiary nodes (examples for Z5 resilience planning):
- Guy’s and St Thomas’ NHS Foundation Trust
- Great Ormond Street Hospital
- Barts Health NHS Trust
- King’s College Hospital NHS Foundation Trust
- University College London Hospitals NHS Foundation Trust
Sensors:
GBR-LON::HEALTH::Z5::O::SENS::A&E_WAITGBR-LON::HEALTH::Z5::O::SENS::AMBULANCE_RESPONSEGBR-LON::HEALTH::Z5::O::SENS::BED_OCCUPANCYGBR-LON::HEALTH::Z5::O::SENS::STAFF_ABSENCEGBR-LON::HEALTH::Z5::O::SENS::SURGE_CAPACITY
Failure mode trace:
GBR-LON::HEALTH::Z5::O::FAIL::TRACE_01 = seasonal surge -> A&E wait ↑ -> bed lock -> ambulance stacking -> corridor blockage -> mortality risk ↑ -> P2->P1 -> emergency triage rules
Repair router:
GBR-LON::HEALTH::Z5::P::REPR::ROUTER = 1) surge wards + discharge acceleration 2) divert non-urgent load to primary care 3) protect trauma corridors via TRAN priority 4) publish triage thresholds (reduce chaos)
EDU lane
GBR-LON::EDU::Z5::M::SYS::SCHOOL_NETWORKGBR-LON::EDU::Z5::M::SYS::FE_COLLEGE_NETWORKGBR-LON::EDU::Z5::M::SYS::UNIVERSITY_CLUSTERGBR-LON::EDU::Z3::P::SYS::BOROUGH_SCHOOLS (per borough)GBR-LON::EDU::Z0::P::NODE::HOUSEHOLD_LEARNING_LOOP
University anchors (examples):
- University College London
- Imperial College London
- King’s College London
- London School of Economics and Political Science
- Queen Mary University of London
Sensors (Education-OS compatible):
GBR-LON::EDU::Z3::O::SENS::ATTENDANCEGBR-LON::EDU::Z3::O::SENS::LITERACY_NUMERACY_FLOORGBR-LON::EDU::Z3::O::SENS::TEACHER_VACANCYGBR-LON::EDU::Z5::O::SENS::SKILL_PIPELINE_GAPS (citywide)GBR-LON::EDU::Z0::O::SENS::HOME_STABILITY (learning volatility proxy)
Failure mode trace:
GBR-LON::EDU::Z5::O::FAIL::TRACE_01 = teacher shortage -> timetable instability -> attainment drift -> workforce pipeline weakens -> FIN/HEALTH/TRAN operator scarcity -> slow P2->P1 citywide (attrition mode)
Repair router:
GBR-LON::EDU::Z5::P::REPR::ROUTER = 1) protect floor skills (literacy/numeracy) 2) stabilise staffing in high-variance boroughs 3) bridge-to-work programmes (reduce pipeline latency) 4) instrument TTC and close gaps continuously
FIN lane
GBR-LON::FIN::Z5::M::SYS::CITY_FINANCE_ENGINEGBR-LON::FIN::Z5::O::ORG::REGULATORY_STACKGBR-LON::FIN::Z4::M::CORR::CITY_COREGBR-LON::FIN::Z4::M::CORR::CANARY_WHARF_CLUSTERGBR-LON::FIN::Z6::M::BIND::GLOBAL_CAPITAL_FLOWS
Anchor institutions (examples):
- Bank of England
- London Stock Exchange
- Financial Conduct Authority
Sensors:
GBR-LON::FIN::Z5::O::SENS::LIQUIDITY_STRESSGBR-LON::FIN::Z5::O::SENS::PAYMENTS_LATENCYGBR-LON::FIN::Z5::O::SENS::CYBER_INCIDENT_RATEGBR-LON::FIN::Z5::O::SENS::DEFAULT_CLUSTERINGGBR-LON::FIN::Z5::O::SENS::TALENT_PIPELINE (operator scarcity)
Failure mode trace:
GBR-LON::FIN::Z5::O::FAIL::TRACE_01 = cyber/payment outage -> settlement delays -> confidence shock -> liquidity freeze -> business failures -> GOV revenue drop -> P2->P1 feedback
Repair router:
GBR-LON::FIN::Z5::P::REPR::ROUTER = 1) payment continuity + manual fallback 2) ring-fence systemically important rails 3) coordinate with GOV emergency liquidity + comms discipline
ENER lane
GBR-LON::ENER::Z5::M::SYS::POWER_GAS_ENVELOPEGBR-LON::ENER::Z4::M::CORR::GRID_INFEEDSGBR-LON::ENER::Z3::P::SYS::DISTRIBUTION_PER_BOROUGHGBR-LON::ENER::Z0::P::NODE::HOUSEHOLD_BACKUP_CAPACITY
Sensors:
GBR-LON::ENER::Z5::O::SENS::OUTAGE_RATEGBR-LON::ENER::Z5::O::SENS::PEAK_MARGINGBR-LON::ENER::Z5::O::SENS::SUBSTATION_RISKGBR-LON::ENER::Z0::O::SENS::VULNERABLE_HOUSEHOLDS_EXPOSURE
Failure mode trace:
GBR-LON::ENER::Z5::O::FAIL::TRACE_01 = substation failure -> local blackout -> comms degradation -> transport disruption -> health risk escalation -> P2->P1 multi-lane cascade
WATER lane
GBR-LON::WATER::Z5::M::SYS::POTABLE_WATER_ENVELOPEGBR-LON::WATER::Z5::P::ORG::THAMES_WATER_OPERATORGBR-LON::WATER::Z4::M::CORR::TREATMENT_TO_CITYGBR-LON::WATER::Z3::P::SYS::DISTRIBUTION_PER_BOROUGH
Operator anchor: Thames Water
Sensors:
GBR-LON::WATER::Z5::O::SENS::PRESSURE_STABILITYGBR-LON::WATER::Z5::O::SENS::LEAK_RATEGBR-LON::WATER::Z5::O::SENS::QUALITY_EXCEPTIONSGBR-LON::WATER::Z5::O::SENS::RESERVOIR_MARGIN
FOOD lane
GBR-LON::FOOD::Z5::M::SYS::FOOD_SUPPLY_ENVELOPEGBR-LON::FOOD::Z6::M::BIND::IMPORT_PORTS_CORRIDORSGBR-LON::FOOD::Z4::M::CORR::WHOLESALE_TO_RETAILGBR-LON::FOOD::Z0::P::NODE::HOUSEHOLD_AFFORDABILITY
Sensors:
GBR-LON::FOOD::Z5::O::SENS::PRICE_SPIKEGBR-LON::FOOD::Z5::O::SENS::STOCKOUT_RATEGBR-LON::FOOD::Z5::O::SENS::LOGISTICS_DELAYGBR-LON::FOOD::Z0::O::SENS::FOOD_INSECURITY_PROXY
COMMS lane
GBR-LON::COMMS::Z5::M::SYS::MOBILE_BROADBAND_ENVELOPEGBR-LON::COMMS::Z5::O::SYS::CYBER_SECURITY_ENVELOPEGBR-LON::COMMS::Z4::M::CORR::CORE_BACKBONEGBR-LON::COMMS::Z0::P::NODE::DEVICE_ACCESS
Sensors:
GBR-LON::COMMS::Z5::O::SENS::OUTAGE_RATEGBR-LON::COMMS::Z5::O::SENS::LATENCY_SPIKESGBR-LON::COMMS::Z5::O::SENS::ATTACK_VOLUMEGBR-LON::COMMS::Z5::O::SENS::DATA_INTEGRITY_EVENTS
SAFE lane
GBR-LON::SAFE::Z5::P::ORG::POLICINGGBR-LON::SAFE::Z5::P::ORG::FIRE_RESCUEGBR-LON::SAFE::Z5::P::SYS::EMERGENCY_COORDINATIONGBR-LON::SAFE::Z4::M::CORR::MAJOR_EVENT_ZONES
Anchors:
- Metropolitan Police Service
- London Fire Brigade
Sensors:
GBR-LON::SAFE::Z5::O::SENS::RESPONSE_TIMEGBR-LON::SAFE::Z5::O::SENS::INCIDENT_LOADGBR-LON::SAFE::Z5::O::SENS::PUBLIC_ORDER_PRESSUREGBR-LON::SAFE::Z5::O::SENS::TERROR_THREAT_LEVEL (as proxy input)
HOUSE lane
GBR-LON::HOUSE::Z5::M::SYS::HOUSING_ENVELOPEGBR-LON::HOUSE::Z3::P::SYS::BOROUGH_HOUSING_PIPELINESGBR-LON::HOUSE::Z0::P::NODE::HOUSEHOLD_STABILITYGBR-LON::HOUSE::Z4::M::CORR::COMMUTE_HOUSING_LINK
Sensors:
GBR-LON::HOUSE::Z5::O::SENS::RENT_BURDENGBR-LON::HOUSE::Z5::O::SENS::EVICTION_PRESSUREGBR-LON::HOUSE::Z5::O::SENS::HOMELESSNESS_FLOWGBR-LON::HOUSE::Z5::O::SENS::OVER_CROWDING
Failure mode trace:
GBR-LON::HOUSE::Z5::O::FAIL::TRACE_01 = affordability drop -> household instability -> school/health volatility ↑ -> workforce churn -> TRAN peak chaos -> citywide P2->P1 drift
WASTE lane
GBR-LON::WASTE::Z5::M::SYS::WASTE_ENVELOPEGBR-LON::WASTE::Z3::P::SYS::BOROUGH_COLLECTIONGBR-LON::WASTE::Z4::M::CORR::TRANSFER_STATIONSGBR-LON::WASTE::Z5::O::SENS::PUBLIC_HEALTH_EXTERNALITY
CULT lane
GBR-LON::CULT::Z5::M::SYS::CULTURE_TOURISM_ENVELOPEGBR-LON::CULT::Z4::M::CORR::WEST_END_CLUSTERGBR-LON::CULT::Z4::M::CORR::MUSEUM_BELTGBR-LON::CULT::Z0::P::NODE::COMMUNITY_COHESION
7) Cross-lane binds
GBR-LON::BIND::Z5::M::BIND::TRAN->HEALTH = protect hospital corridors + ambulance responseGBR-LON::BIND::Z5::M::BIND::HOUSE->EDU = household stability drives attendance + attainment volatilityGBR-LON::BIND::Z5::M::BIND::COMMS->FIN = payment rails + cyber integrity => financial continuityGBR-LON::BIND::Z5::M::BIND::ENER->COMMS = power continuity is prerequisite for comms reliabilityGBR-LON::BIND::Z5::M::BIND::GOV->ALL = strategic rules + funding binds tie sensors to delivery
8) Minimum London instrument panel
(If you only deploy one dashboard first, deploy this.)
GBR-LON::PANEL::Z5::O::SENS::CITY_MIN = GOV: [DECISION_LATENCY, BUDGET_GAP] TRAN:[PEAK_LOAD_UTIL, MEAN_DELAY, CORRIDOR_CONGESTION] HEALTH:[A&E_WAIT, AMBULANCE_RESPONSE, BED_OCCUPANCY] EDU: [ATTENDANCE, TEACHER_VACANCY, SKILL_PIPELINE_GAPS] FIN: [PAYMENTS_LATENCY, CYBER_INCIDENT_RATE, LIQUIDITY_STRESS] ENER:[OUTAGE_RATE, PEAK_MARGIN] WATER:[PRESSURE_STABILITY, QUALITY_EXCEPTIONS] HOUSE:[RENT_BURDEN, HOMELESSNESS_FLOW]
9) London “first repair levers” map
GBR-LON::REPAIR::Z5::P::SYS::FIRST_LEVERS = 1) TRAN corridor protection + demand tools 2) HEALTH surge routing (bed + discharge + primary care diversion) 3) GOV bind funding to sensors (reduce borough divergence) 4) COMMS cyber hardening for FIN continuity 5) HOUSE stability protection to reduce multi-lane volatility
10) Source locks you can cite on the page
- London has 33 local authorities (32 boroughs + City of London Corporation). (London City Hall)
- The London Assembly holds the Mayor to account (scrutiny function). (London City Hall)
- The Mayor’s core functions and Assembly structure are summarised in the UK Parliament research brief. (House of Commons Library)
- Official detail on the Congestion Charge (operating hours + pricing) is on TfL. (Transport for London)
Z2 neighbourhood registry + Z1 key interchanges (Almost-Code, WordPress paste-ready)
1) Patch: add a GEO substrate lane (so Z2 can be “official”)
You already have lanes like GOV/TRAN/etc. For London, Z2 needs an official geography substrate you can bind every lane to (wards/MSOAs/postcodes).
GBR-LON::INDEX::Z5::M::SYS::LANES += [GEO]
Source locks (official geographies):
- Ward names/codes are published via Office for National Statistics Open Geography portal datasets. (Open Geography Portal)
- MSOA geographies are an ONS statistical geography (Census 2021) and can be used citywide for stable Z2 analytics. (Office for National Statistics)
- London-specific MSOA summaries exist as the Greater London Authority datastore “MSOA Atlas”. (London Datastore)
- Postcode→OA→LSOA→MSOA→Local Authority lookups exist on ONS geoportal (best-fit). (Open Geography Portal)
2) Z2 definition lock (London)
London needs two Z2 coordinate systems (both are “true”, used for different jobs):
GBR-LON::GEO::Z2::O::RULE::Z2_DUAL_SYSTEM = Z2.GOV = WARD (May 2022 codes) # best for borough service delivery & local routing Z2.STAT = MSOA (Dec 2021 codes) # best for stable stats, health, deprivation, demand
3) Z2 ID scheme (no renames; codes are the stable key)
3.1 Wards (Z2.GOV)
# Each ward is keyed by ONS ward code (WD22CD or equivalent)GBR-LON::GEO::Z2::P::NODE::WARD.{BOROUGHTOKEN}.{WARD_CODE}# Alias record stores human name + optional common neighbourhood namesGBR-LON::GEO::Z2::O::NODE::WARD_ALIAS.{WARD_CODE} = {name, borough, ward_code, common_aliases[]}
3.2 MSOAs (Z2.STAT)
# Each MSOA is keyed by MSOA code (MSOA21CD or equivalent)GBR-LON::GEO::Z2::O::NODE::MSOA.{MSOA_CODE}GBR-LON::GEO::Z2::O::NODE::MSOA_ALIAS.{MSOA_CODE} = {name, borough, msoa_code}
3.3 Postcode bind (optional but very powerful)
This makes London “addressable” for routing/repair.
GBR-LON::GEO::Z2::O::BIND::POSTCODE_TO_STACK = POSTCODE -> OA -> LSOA -> MSOA -> LAD(BOROUGH)
(Use ONS lookup file as source-of-truth.) (Open Geography Portal)
4) Borough page template (repeat 33×)
Make one WordPress page per borough using this exact block (same IDs, only values change).
GBR-LON::GOV::Z3::P::ORG::BOROUGH.{BOROUGHTOKEN}GBR-LON::GEO::Z2::O::SYS::WARD_REGISTER.{BOROUGHTOKEN} = {source: ONS_WARD_CODES_MAY_2022, import_rule: "filter wards where LAD == borough"}GBR-LON::GEO::Z2::O::SYS::MSOA_REGISTER.{BOROUGHTOKEN} = {source: ONS_MSOA_DEC_2021, import_rule: "filter msoas where LAD == borough"}GBR-LON::GEO::Z2::O::SYS::NEIGHBOURHOOD_ALIAS_OVERLAY.{BOROUGHTOKEN} = {purpose: "human navigation", rule: "aliases never replace codes"}
5) Z1 key interchanges (rail & Tube) — the city’s “flow valves”
5.1 Official list: London Terminal stations (18)
Use the National Rail “London Terminal stations” set as the canonical Z1 terminal registry. (nationalrail.co.uk)
GBR-LON::TRAN::Z1::P::SYS::LONDON_TERMINALS = [18 stations]GBR-LON::TRAN::Z1::P::NODE::TERM.{TERM_TOKEN}GBR-LON::TRAN::Z1::O::NODE::TERM_ALIAS.{TERM_TOKEN} = {name, station_group_flags[]}
Terminal registry (tokens → names):
- TERM.BLACKFRIARS → London Blackfriars station (nationalrail.co.uk)
- TERM.CANNON_ST → London Cannon Street station (nationalrail.co.uk)
- TERM.CHARING_X → London Charing Cross station (nationalrail.co.uk)
- TERM.CITY_THAMESLINK → City Thameslink station (nationalrail.co.uk)
- TERM.EUSTON → London Euston station (nationalrail.co.uk)
- TERM.FENCHURCH → London Fenchurch Street station (nationalrail.co.uk)
- TERM.KINGS_X → London King’s Cross station (nationalrail.co.uk)
- TERM.LIVERPOOL_ST → London Liverpool Street station (nationalrail.co.uk)
- TERM.LONDON_BRIDGE → London Bridge station (nationalrail.co.uk)
- TERM.MARYLEBONE → London Marylebone station (nationalrail.co.uk)
- TERM.MOORGATE → Moorgate station (nationalrail.co.uk)
- TERM.OLD_STREET → Old Street station (nationalrail.co.uk)
- TERM.PADDINGTON → London Paddington station (nationalrail.co.uk)
- TERM.ST_PANCRAS → St Pancras International station (nationalrail.co.uk)
- TERM.VAUXHALL → Vauxhall station (nationalrail.co.uk)
- TERM.VICTORIA → London Victoria station (nationalrail.co.uk)
- TERM.WATERLOO → London Waterloo station (nationalrail.co.uk)
- TERM.WATERLOO_E → Waterloo East station (nationalrail.co.uk)
5.2 Interchange reality: OSI + “same journey” binds
TfL formalises “Out-of-Station Interchanges (OSI)” (paid as one journey within time limits). This is a binding primitive for London. (Transport for London)
GBR-LON::TRAN::Z1::O::BIND::OSI = {station_A, station_B, max_minutes, payg_only_flag, notes}GBR-LON::TRAN::Z1::O::RULE::OSI_COUNTS_AS_ONE_JOURNEY = if OSI conditions satisfied -> do not charge as separate trip
5.3 Interchange sensor pack (minimum)
Use these because London failure propagates through stations before it shows up in hospitals/schools.
Data sources you can bind to:
- Transport for London provides “Annual Counts (Entry/Exit)” and other open datasets. (Transport for London)
- Office of Rail and Road publishes annual station usage estimates (entries/exits/interchanges). (ORR Data Portal)
GBR-LON::TRAN::Z1::O::SENS::ENTRY_EXIT_ANNUALGBR-LON::TRAN::Z1::O::SENS::INTERCHANGE_RATEGBR-LON::TRAN::Z1::O::SENS::PLATFORM_CROWDINGGBR-LON::TRAN::Z1::O::SENS::DELAY_PROPAGATION_INDEXGBR-LON::TRAN::Z1::O::SENS::LIFT_ESCALATOR_AVAILGBR-LON::TRAN::Z1::O::SENS::INCIDENT_RATEGBR-LON::TRAN::Z1::O::SENS::OSI_TRANSFER_COUNT
6) Interchange failure trace (copy/paste canonical)
Use this same schematic on every station page.
GBR-LON::TRAN::Z1::O::FAIL::TRACE_TEMPLATE = trigger: (minor delay | incident | crowd spike) -> local queue growth -> interchange saturation -> corridor spillover -> network cascade (delay propagation) -> workforce lateness + missed appointments -> HEALTH/EDU reliability drop (P2->P1 drift)
7) Borough ⇄ Interchange binding (what makes London “work”)
Every borough page should bind its Z2 units to the nearest high-impact valves.
GBR-LON::TRAN::Z3::O::BIND::BOROUGH_TO_VALVES.{BOROUGHTOKEN} = {primary_terminals[], primary_interchanges[], corridors[]}GBR-LON::TRAN::Z2::O::BIND::WARD_TO_VALVE.{WARD_CODE} = {nearest_interchanges[], travel_time_bands[]}
London City OS — Borough Pack v0.1
Repeat this template 33× (32 boroughs + the City authority), then bind each borough’s Z2 units to its top “valves” (stations/interchanges) and lane organs. The “33 authorities” boundary is canonical. (London City Hall)
Canonical data rails you bind to (one-time setup)
- Greater London Authority = strategic governance layer (Mayor + Assembly model). (House of Commons Library)
- London Councils = borough collective representation (useful for GOV binds). (London City Hall)
- Office for National Statistics = names/codes for wards/MSOAs + postcode→OA/LSOA/MSOA/LAD lookup. (Office for National Statistics)
- Transport for London = OSI list + station entry/exit open data (valve sensors). (Transport for London)
- Office of Rail and Road = station usage (entries/exits + interchanges) for National Rail stations. (ORR Data Portal)
- National Rail = “London Terminals” grouping concept for terminal registry. (nationalrail.co.uk)
WordPress paste-ready Borough Pack (copy/paste)
0) Borough header block (required)
GBR-LON::GOV::Z3::P::ORG::BOROUGH.{BOROUGHTOKEN} = {name: "{BOROUGHNAME}", type: "local_authority", boundary: "Greater London"}GBR-LON::GEO::Z3::O::NODE::LAD.{LAD_CODE} = {name: "{BOROUGHNAME}", lad_code: "{LAD_CODE}", parent: "GBR-LON"}
1) Z2 import registers (required)
Use wards for service routing and MSOAs for stable stats. Names/codes + lookups are canonical from ONS. (Office for National Statistics)
GBR-LON::GEO::Z2::O::SYS::WARD_REGISTER.{BOROUGHTOKEN} = {source: "ONS ward names+codes", filter: "LAD=={LAD_CODE}", key: "WARD_CODE"}GBR-LON::GEO::Z2::O::SYS::MSOA_REGISTER.{BOROUGHTOKEN} = {source: "ONS MSOA names+codes", filter: "LAD=={LAD_CODE}", key: "MSOA_CODE"}GBR-LON::GEO::Z2::O::SYS::ALIAS_OVERLAY.{BOROUGHTOKEN} = {rule: "aliases never replace codes", purpose: "human navigation + SEO"}GBR-LON::GEO::Z2::O::BIND::POSTCODE_TO_STACK = {source: "ONS postcode lookup", map: "POSTCODE->OA->LSOA->MSOA->LAD"}
Optional (London-only enrichment): use the GLA MSOA Atlas as a “pre-filled” Z2 stats layer. (London Datastore)
GBR-LON::GEO::Z2::O::BIND::MSOA_ATLAS_ENRICH = {source: "GLA MSOA Atlas", key: "MSOA_CODE", fields: ["population","basic_demographics", "..."]}
2) Borough valves (Z1) — top 10 flow control points (required)
This is how you make each borough “computable”: pick the 10 most important stations/interchanges that act as valves for flow, queues, and shock propagation.
Data rails: TfL Annual Counts (Entry/Exit) + TfL OSI list + ORR station usage. (Transport for London)
2.1 Valve selection algorithm (standard)
GBR-LON::TRAN::Z3::O::RULE::VALVE_SELECTION.{BOROUGHTOKEN} = 1) collect all stations within borough boundary (Z2 ward union) 2) rank by max(TFL_ENTRY_EXIT, ORR_ENTRY_EXIT) + interchange_weight 3) add any OSI pairs touching top stations (treat as one composite valve) 4) ensure corridor coverage (at least 1 per major corridor touching borough) 5) output: top 10 as VALVES[]
2.2 Valve registry block (fill this per borough)
GBR-LON::TRAN::Z3::O::SYS::VALVE_REGISTER.{BOROUGHTOKEN} = {valves: [ {id:"GBR-LON::TRAN::Z1::P::NODE::VALVE.{VALVE1}", name:"{STATION_OR_INTERCHANGE_1}"}, {id:"GBR-LON::TRAN::Z1::P::NODE::VALVE.{VALVE2}", name:"{STATION_OR_INTERCHANGE_2}"}, ... {id:"GBR-LON::TRAN::Z1::P::NODE::VALVE.{VALVE10}", name:"{STATION_OR_INTERCHANGE_10}"} ]}
2.3 OSI binding primitive (use TfL list)
TfL’s OSI list is the canonical “counts as one journey” bind. (Transport for London)
GBR-LON::TRAN::Z1::O::BIND::OSI.{BOROUGHTOKEN}.{OSI_TOKEN} = {A:"{STATION_A}", B:"{STATION_B}", max_minutes:{N}, counts_as_one_journey:true}
2.4 Valve sensor pack (minimum)
GBR-LON::TRAN::Z1::O::SENS::ENTRY_EXIT_ANNUAL.{BOROUGHTOKEN}GBR-LON::TRAN::Z1::O::SENS::INTERCHANGE_RATE.{BOROUGHTOKEN}GBR-LON::TRAN::Z1::O::SENS::DELAY_PROPAGATION_INDEX.{BOROUGHTOKEN}GBR-LON::TRAN::Z1::O::SENS::LIFT_ESCALATOR_AVAIL.{BOROUGHTOKEN}GBR-LON::TRAN::Z1::O::SENS::OSI_TRANSFER_COUNT.{BOROUGHTOKEN}
3) Borough lane organs (required, but keep it “thin”)
You’re not listing everything—only the top organs that determine Phase in that borough.
GBR-LON::{LANE}::Z3::P::SYS::ORGANS.{BOROUGHTOKEN} = {organs: [ "{TOP_ORGAN_1}", "{TOP_ORGAN_2}", "{TOP_ORGAN_3}", "{TOP_ORGAN_4}", "{TOP_ORGAN_5}" ]}
Recommended organ count per lane (defaults):
TRAN=10 valves (already done)HEALTH=3 (major hospitals / urgent care anchors)EDU=3 (largest school/FE anchors + pipeline programs)HOUSE=3 (largest estates/temporary housing pipeline nodes)SAFE=2 (police + fire coverage anchors)WATER/ENER/COMMS=1-2 (local critical nodes if known; otherwise bind to citywide)FIN=1-2 (major employment clusters / payment rails dependency points)WASTE/FOOD/CULT=1-2 each (only if borough is a citywide anchor)
4) Borough cross-lane binds (required)
These are the “why borough boundaries matter” edges.
GBR-LON::BIND::Z3::M::BIND::HOUSE->EDU.{BOROUGHTOKEN} = {meaning:"household stability drives attendance/attainment volatility"}GBR-LON::BIND::Z3::M::BIND::TRAN->HEALTH.{BOROUGHTOKEN} = {meaning:"valves control ambulance + appointment reliability"}GBR-LON::BIND::Z3::M::BIND::COMMS->FIN.{BOROUGHTOKEN} = {meaning:"payment + cyber integrity => local business continuity"}GBR-LON::BIND::Z3::M::BIND::GOV->ALL.{BOROUGHTOKEN} = {meaning:"borough delivery variance propagates into citywide reliability"}
5) Borough instrument panel (minimum sensors)
GBR-LON::PANEL::Z3::O::SENS::MIN.{BOROUGHTOKEN} = GOV : [DELIVERY_VARIANCE, COMPLAINT_PRESSURE] TRAN : [PEAK_LOAD_UTIL, MEAN_DELAY, VALVE_QUEUE_INDEX] HEALTH:[A&E_WAIT_PROXY, AMBULANCE_RESPONSE_PROXY] EDU : [ATTENDANCE, TEACHER_VACANCY_PROXY] HOUSE: [RENT_BURDEN_PROXY, HOMELESSNESS_FLOW_PROXY] SAFE : [RESPONSE_TIME, INCIDENT_LOAD] COMMS: [OUTAGE_RATE, LATENCY_SPIKES]
6) Stop-loss rules (Phase tripwires)
GBR-LON::RULE::Z3::P::P1_TRIPWIRE.{BOROUGHTOKEN} = if (VALVE_QUEUE_INDEX high for N days) OR (A&E_WAIT_PROXY high for N days) then activate: - protect top 3 valves (queue control) - publish predictable service schedule (reduce volatility) - divert non-urgent load (health/primary care routing) - tighten housing crisis response (prevent household churn)GBR-LON::RULE::Z3::P::P0_TRIPWIRE.{BOROUGHTOKEN} = if (multi-lane overload: TRAN+HEALTH+SAFE simultaneously) then sacrifice: - low-priority events/uses - protect: hospital corridors + emergency response + comms continuity
7) Failure mode traces (copy/paste canonical; fill values)
Trace A — valve cascade (classic London propagation)
GBR-LON::FAIL::Z3::O::TRACE::VALVE_CASCADE.{BOROUGHTOKEN} = trigger -> local queue growth -> valve saturation -> corridor spillover -> network delay propagation -> missed appointments + workforce lateness -> HEALTH/EDU reliability drop (P2->P1 drift)
Trace B — housing instability cascade (slow attrition)
GBR-LON::FAIL::Z3::O::TRACE::HOUSING_DRIFT.{BOROUGHTOKEN} = affordability shock -> household churn -> attendance volatility -> attainment drift -> operator scarcity (local services) -> GOV delivery variance -> sustained P2->P1
Trace C — comms/power interruption cascade (fast multi-lane)
GBR-LON::FAIL::Z3::O::TRACE::COMMS_POWER.{BOROUGHTOKEN} = outage -> payment/service disruption -> emergency call friction -> transport signalling/info degradation -> response time rises -> public order pressure -> P2->P0 risk if prolonged
8) Borough repair router (the “do this first” sequence)
GBR-LON::REPR::Z3::P::ROUTER.{BOROUGHTOKEN} = 1) isolate: which lane is primary trigger? (TRAN vs HOUSE vs COMMS) 2) protect: top 3 valves + emergency routes (reduce propagation) 3) stabilise: publish predictable recovery schedule (volatility kill) 4) reroute: divert non-urgent load (health/education demand shaping) 5) harden: bind funding/actions to sensors (close the loop) 6) expand: only after sensors return below thresholds for N days
London City OS — Valve Page v0.1
One page per major station / interchange / terminal. This is the reusable template that makes every borough page “compute” via its top valves (flow-control points).
Data rails (canonical):
- Out-of-Station Interchange (OSI) is a formal TfL mechanism where nearby stations count as one journey within time limits. (Transport for London)
- TfL publishes Annual Counts (Entry/Exit) as station demand/throughput measures. (Transport for London)
- The ORR publishes annual entries/exits + interchanges by station across Great Britain. (ORR Data Portal)
- “London Terminals” is a National Rail ticketing station-group concept you can bind to your terminal registry. (nationalrail.co.uk)
Entities (one-time): Transport for London, Office of Rail and Road, National Rail, Office for National Statistics, Greater London Authority
0) What a “Valve” is (lock)
GBR-LON::TRAN::Z1::M::NODE::VALVE.{VALVE_TOKEN} := a flow-control point where queues form, propagate, and convert into citywide unreliability. (stations, major interchanges, terminal groups, OSI composites)
1) Valve Page — header block (required)
Paste this at the top of every Valve page and fill the fields.
GBR-LON::TRAN::Z1::M::NODE::VALVE.{VALVE_TOKEN} = {name: "{PUBLIC_NAME}", type: "station|interchange|terminal_group|osi_composite", modes: ["tube","rail","dlr","overground","elizabeth","tram","bus"], fare_zone: "{Z}", boroughs: ["{BOROUGH_A}", "{BOROUGH_B?}"], geo: {lat:"{LAT}", lon:"{LON}"}, station_codes: {nlc:"{NLC?}", crs:"{CRS?}", tfl_station_id:"{TFL_ID?}"}, alias: ["{COMMON_NAME_1}", "{COMMON_NAME_2}"], corridors: ["{CORRIDOR_1}", "{CORRIDOR_2}"] }
Optional (recommended) geography binds: (use ward/MSOA where you can; postcodes later)
GBR-LON::GEO::Z1::O::BIND::VALVE_TO_GEO.{VALVE_TOKEN} = {wards:["{WARD_CODE...}"], msoas:["{MSOA_CODE...}"], lad:["{LAD_CODE...}"]}
2) Demand + throughput sensors (required)
These are the minimum sensors that let you rank valves, detect drift, and trigger stop-loss.
2.1 TfL “Annual Counts (Entry/Exit)” bind
TfL’s Annual Counts are a primary London station demand instrument. (Transport for London)
GBR-LON::TRAN::Z1::O::SENS::TFL_ENTRY_EXIT_ANNUAL.{VALVE_TOKEN} = {source:"tfl annual counts", metric:"annualised typical weekday", last_updated:"{YYYY}"}GBR-LON::TRAN::Z1::O::SENS::TFL_TREND.{VALVE_TOKEN} = {metric:"YoY change", window:"3y", purpose:"drift + shock detection"}
2.2 ORR “Estimates of station usage” bind (rail usage + interchanges)
ORR provides annual entries/exits and interchanges per station (GB-wide, consistent). (ORR Data Portal)
GBR-LON::TRAN::Z1::O::SENS::ORR_ENTRY_EXIT.{VALVE_TOKEN} = {source:"orr estimates of station usage", period:"{YYYY-YYYY}", metric:"entries+exits"}GBR-LON::TRAN::Z1::O::SENS::ORR_INTERCHANGES.{VALVE_TOKEN} = {source:"orr estimates of station usage", period:"{YYYY-YYYY}", metric:"interchanges"}
2.3 Valve “Queue Index” (your synthetic sensor)
GBR-LON::TRAN::Z1::O::SENS::VALVE_QUEUE_INDEX.{VALVE_TOKEN} = {definition:"crowding proxy + delay propagation proxy", formula:"w1*load_ratio + w2*interchange_rate + w3*incident_rate", output:"0..100"}
3) OSI composite logic (London-specific; required if OSI exists)
TfL OSI rules: nearby station interchanges count as one journey within a time limit. (Transport for London)
3.1 OSI bind records
GBR-LON::TRAN::Z1::O::BIND::OSI.{VALVE_TOKEN}.{OSI_TOKEN} = {A:"{STATION_A}", B:"{STATION_B}", max_minutes:{N}, counts_as_one_journey:true, payment_scope:"{PAYG|MAGNETIC|BOTH}"}
3.2 “Composite valve” (treat OSI pair as one control point)
GBR-LON::TRAN::Z1::M::RULE::OSI_COMPOSITE_VALVE.{VALVE_TOKEN} = if OSI(A,B) exists then define VALVE as {A+B} for: - queue control - failure propagation - demand measurement (sum or max, depending on use)
4) Borough + corridor binds (required)
This is what makes Valve pages plug into your 33 Borough pages.
GBR-LON::TRAN::Z1::O::BIND::VALVE_TO_BOROUGHS.{VALVE_TOKEN} = {primary:["{BOROUGH_1}"], secondary:["{BOROUGH_2}", "{BOROUGH_3}"]}GBR-LON::TRAN::Z1::O::BIND::VALVE_TO_CORRIDORS.{VALVE_TOKEN} = {corridors:["THAMES_CORRIDOR","CENTRAL_RING","EAST_DOCKS_GATEWAY", "..."]}
5) Stop-loss rules (Phase tripwires)
Use the same thresholds across all Valve pages so London is uniform.
GBR-LON::TRAN::Z1::P::RULE::P1_TRIPWIRE.{VALVE_TOKEN} = if VALVE_QUEUE_INDEX > {T1} for {N} days then activate: - platform queue control - timetable rebalancing toward this valve - OSI guidance + crowd re-route commsGBR-LON::TRAN::Z1::P::RULE::P0_TRIPWIRE.{VALVE_TOKEN} = if (VALVE_QUEUE_INDEX > {T2}) AND (delay propagation crosses 2+ corridors) then sacrifice: - de-prioritise low-critical branches - protect: hospital corridors + core interchanges + emergency access
6) Failure mode traces (copy/paste canonical)
Trace A — crowd cascade (default London failure)
GBR-LON::TRAN::Z1::O::FAIL::TRACE_CROWD.{VALVE_TOKEN} = trigger:(minor delay|closure|event spike) -> local queue growth -> interchange saturation -> corridor spillover -> network delay propagation -> missed appointments + workforce lateness -> HEALTH/EDU reliability drops (city P2->P1 drift)
Trace B — OSI confusion cascade (London-specific)
GBR-LON::TRAN::Z1::O::FAIL::TRACE_OSI.{VALVE_TOKEN} = OSI route ambiguity -> wrong exits/entries -> time-limit misses -> re-taps + crowd loops -> queue amplification -> perceived unfair charging + trust hit
Trace C — accessibility outage cascade (lift/escalator)
GBR-LON::TRAN::Z1::O::FAIL::TRACE_ACCESS.{VALVE_TOKEN} = lift outage -> reduced usable capacity -> boarding friction increases -> queue index rises -> vulnerable users reroute (time + stress cost)
7) Repair router (the “do this first” sequence)
GBR-LON::TRAN::Z1::P::REPR::ROUTER.{VALVE_TOKEN} = 1) isolate: which trigger? (incident vs overload vs OSI confusion) 2) protect: interchange surfaces (queues, one-way flows, staffing) 3) damp: publish stable recovery timetable (volatility kill) 4) reroute: corridor guidance + OSI clarity 5) harden: fix chronic constraint (access points, staffing, signalling, turnbacks) 6) verify: VALVE_QUEUE_INDEX returns below {T1} for {N} days before expanding service
8) Optional “Terminal-group” page (for London Terminals)
If the Valve is a terminal-group concept (ticketing), bind it explicitly to “London Terminals.” (nationalrail.co.uk)
GBR-LON::TRAN::Z1::M::SYS::TERMINAL_GROUP.LONDON_TERMINALS = {meaning:"ticketing group; valid terminals depend on reasonable route", members:["{TERM_1}", "..."]}
Below is London City OS (Almost-Code) — Section 01: Mobility Valves (Top-50), built from Transport for London Annual Station Counts (AC2023 Annualised Entry/Exit). (Transport for London)
(Scope note: this TfL dataset covers LU/LO/DLR/TfL Rail-style station gates; it does not represent full mainline National Rail footfall at terminals. For later merge, use Office of Rail and Road station-usage tables as the NR overlay source.) ([ORR Data Portal][2])
# ============================================================# LONDON CITY OS — ALMOST-CODE (CANON) — v0.1# SECTION 01 — MOBILITY VALVES (TOP-50, DATA-DERIVED)# ============================================================CANON_VERSION: "v0.1"PLACE: place_id: "GBR.LON" place_name: "London" zoom: "Z5" lane_pack: ["MOB"] # Mobility / Transport lane (valves + corridors + shock routing)DEFS: VALVE: meaning: "A high-throughput gate where flows concentrate, switch lines, and spill to other corridors." function: ["gate", "switch", "spillover", "shock-router"] annualised_entry_exit: meaning: "Annualised En/Ex estimate derived from typical day entry/exit counts (dataset column: Annualised En/Ex)." unit: "passengers_per_year_est"DATA_SOURCES: - source_id: "TfL_AC2023" description: "TfL Annual Station Counts — AC2023 Annualised Entry/Exit (Counts by Station; version noted inside file)." coverage: ["LU", "LO", "DLR", "TfL Rail-style gated counts"] url: "https://crowding.data.tfl.gov.uk/Annual%20Station%20Counts/2023/AC2023_AnnualisedEntryExit.xlsx" - source_id: "ORR_NATIONAL_RAIL_OVERLAY" description: "ORR station usage (National Rail entries/exits + interchanges) for later merge into terminal complexes." url: "https://dataportal.orr.gov.uk/statistics/usage/estimates-of-station-usage"SELECTION_RULE: goal: "Choose the top-50 London valves for MOB lane using TfL gated station counts." metric: "annualised_entry_exit" method: - "Load TfL_AC2023" - "Sort descending by Annualised En/Ex" - "Take top 50 rows" output: "VALVE_REGISTRY_TOP50"VALVE_RECORD_DEFAULTS: lane: "MOB" zoom: "Z2" type: "VALVE" metric_source: "TfL_AC2023"VALVE_REGISTRY_TOP50: - rank: 1 id: "GBR.LON.MOB.Z2.VALVE.KINGS_CROSS_STPANCRAS" name: "King's Cross St. Pancras" mode_primary: "LU" refs: {tfl_mnlc: 625, tfl_masc: KXXu} annualised_entry_exit: 72124262 - rank: 2 id: "GBR.LON.MOB.Z2.VALVE.WATERLOO" name: "Waterloo LU" mode_primary: "LU" refs: {tfl_mnlc: 747, tfl_masc: WLOu} annualised_entry_exit: 70329553 - rank: 3 id: "GBR.LON.MOB.Z2.VALVE.VICTORIA" name: "Victoria LU" mode_primary: "LU" refs: {tfl_mnlc: 741, tfl_masc: VICu} annualised_entry_exit: 59572570 - rank: 4 id: "GBR.LON.MOB.Z2.VALVE.TCR" name: "Tottenham Court Road" mode_primary: "LU" refs: {tfl_mnlc: 728, tfl_masc: TCRu} annualised_entry_exit: 58726155 - rank: 5 id: "GBR.LON.MOB.Z2.VALVE.LIVERPOOL_STREET" name: "Liverpool Street LU" mode_primary: "LU" refs: {tfl_mnlc: 634, tfl_masc: LSTu} annualised_entry_exit: 57226398 - rank: 6 id: "GBR.LON.MOB.Z2.VALVE.LONDON_BRIDGE" name: "London Bridge LU" mode_primary: "LU" refs: {tfl_mnlc: 635, tfl_masc: LONu} annualised_entry_exit: 54765991 - rank: 7 id: "GBR.LON.MOB.Z2.VALVE.STRATFORD" name: "Stratford" mode_primary: "LU" refs: {tfl_mnlc: 719, tfl_masc: SFDu} annualised_entry_exit: 54376225 - rank: 8 id: "GBR.LON.MOB.Z2.VALVE.OX_CIRCUS" name: "Oxford Circus" mode_primary: "LU" refs: {tfl_mnlc: 669, tfl_masc: OXCu} annualised_entry_exit: 51106043 - rank: 9 id: "GBR.LON.MOB.Z2.VALVE.PADDINGTON" name: "Paddington TfL" mode_primary: "LU" refs: {tfl_mnlc: 670, tfl_masc: PADu} annualised_entry_exit: 48546460 - rank: 10 id: "GBR.LON.MOB.Z2.VALVE.FARRINGDON" name: "Farringdon" mode_primary: "LU" refs: {tfl_mnlc: 577, tfl_masc: FARu} annualised_entry_exit: 40070382 - rank: 11 id: "GBR.LON.MOB.Z2.VALVE.BOND_STREET" name: "Bond Street" mode_primary: "LU" refs: {tfl_mnlc: 511, tfl_masc: BDZu} annualised_entry_exit: 37424555 - rank: 12 id: "GBR.LON.MOB.Z2.VALVE.BANK_MONUMENT" name: "Bank and Monument" mode_primary: "LU" refs: {tfl_mnlc: 513, tfl_masc: BNKu} annualised_entry_exit: 37200346 - rank: 13 id: "GBR.LON.MOB.Z2.VALVE.CANARY_WHARF" name: "Canary Wharf LU" mode_primary: "LU" refs: {tfl_mnlc: 545, tfl_masc: CAWu} annualised_entry_exit: 30865778 - rank: 14 id: "GBR.LON.MOB.Z2.VALVE.EUSTON" name: "Euston LU" mode_primary: "LU" refs: {tfl_mnlc: 572, tfl_masc: EUSu} annualised_entry_exit: 29965071 - rank: 15 id: "GBR.LON.MOB.Z2.VALVE.GREEN_PARK" name: "Green Park" mode_primary: "LU" refs: {tfl_mnlc: 592, tfl_masc: GRPu} annualised_entry_exit: 28247401 - rank: 16 id: "GBR.LON.MOB.Z2.VALVE.LEIC_SQ" name: "Leicester Square" mode_primary: "LU" refs: {tfl_mnlc: 631, tfl_masc: LSCu} annualised_entry_exit: 27379635 - rank: 17 id: "GBR.LON.MOB.Z2.VALVE.PIC_CIRCUS" name: "Piccadilly Circus" mode_primary: "LU" refs: {tfl_mnlc: 676, tfl_masc: PCWu} annualised_entry_exit: 26739879 - rank: 18 id: "GBR.LON.MOB.Z2.VALVE.S_KENS" name: "South Kensington" mode_primary: "LU" refs: {tfl_mnlc: 700, tfl_masc: SKNu} annualised_entry_exit: 26088906 - rank: 19 id: "GBR.LON.MOB.Z2.VALVE.MOORGATE" name: "Moorgate" mode_primary: "LU" refs: {tfl_mnlc: 656, tfl_masc: MGTu} annualised_entry_exit: 23330204 - rank: 20 id: "GBR.LON.MOB.Z2.VALVE.N_GREENWICH" name: "North Greenwich" mode_primary: "LU" refs: {tfl_mnlc: 663, tfl_masc: NGWu} annualised_entry_exit: 23172392 - rank: 21 id: "GBR.LON.MOB.Z2.VALVE.BAKER_STREET" name: "Baker Street" mode_primary: "LU" refs: {tfl_mnlc: 511, tfl_masc: BSTu} annualised_entry_exit: 21207073 - rank: 22 id: "GBR.LON.MOB.Z2.VALVE.VAUXHALL" name: "Vauxhall LU" mode_primary: "LU" refs: {tfl_mnlc: 740, tfl_masc: VXLu} annualised_entry_exit: 20770515 - rank: 23 id: "GBR.LON.MOB.Z2.VALVE.FINSBURY_PARK" name: "Finsbury Park" mode_primary: "LU" refs: {tfl_mnlc: 580, tfl_masc: FPKu} annualised_entry_exit: 20479785 - rank: 24 id: "GBR.LON.MOB.Z2.VALVE.HAMMERSMITH_DIS" name: "Hammersmith (DIS)" mode_primary: "LU" refs: {tfl_mnlc: 598, tfl_masc: HSDu} annualised_entry_exit: 20290665 - rank: 25 id: "GBR.LON.MOB.Z2.VALVE.HOLBORN" name: "Holborn" mode_primary: "LU" refs: {tfl_mnlc: 604, tfl_masc: HBNu} annualised_entry_exit: 20240977 - rank: 26 id: "GBR.LON.MOB.Z2.VALVE.KENNINGTON" name: "Kennington" mode_primary: "LU" refs: {tfl_mnlc: 620, tfl_masc: KENu} annualised_entry_exit: 19930605 - rank: 27 id: "GBR.LON.MOB.Z2.VALVE.CANADA_WATER" name: "Canada Water" mode_primary: "LU" refs: {tfl_mnlc: 547, tfl_masc: CAWu2} annualised_entry_exit: 19889625 - rank: 28 id: "GBR.LON.MOB.Z2.VALVE.WEMBLEY_PARK" name: "Wembley Park" mode_primary: "LU" refs: {tfl_mnlc: 746, tfl_masc: WPKu} annualised_entry_exit: 19683644 - rank: 29 id: "GBR.LON.MOB.Z2.VALVE.TOWER_HILL" name: "Tower Hill" mode_primary: "LU" refs: {tfl_mnlc: 729, tfl_masc: THLu} annualised_entry_exit: 19388765 - rank: 30 id: "GBR.LON.MOB.Z2.VALVE.CAMDEN_TOWN" name: "Camden Town" mode_primary: "LU" refs: {tfl_mnlc: 541, tfl_masc: CMTu} annualised_entry_exit: 19043820 - rank: 31 id: "GBR.LON.MOB.Z2.VALVE.EARLS_COURT" name: "Earl's Court" mode_primary: "LU" refs: {tfl_mnlc: 568, tfl_masc: ECTu} annualised_entry_exit: 18930022 - rank: 32 id: "GBR.LON.MOB.Z2.VALVE.HIGHBURY_ISLINGTON" name: "Highbury & Islington" mode_primary: "LU" refs: {tfl_mnlc: 605, tfl_masc: HAIu} annualised_entry_exit: 18899144 - rank: 33 id: "GBR.LON.MOB.Z2.VALVE.KENTISH_TOWN" name: "Kentish Town" mode_primary: "LU" refs: {tfl_mnlc: 619, tfl_masc: KTNt} annualised_entry_exit: 18645730 - rank: 34 id: "GBR.LON.MOB.Z2.VALVE.WARREN_STREET" name: "Warren Street" mode_primary: "LU" refs: {tfl_mnlc: 745, tfl_masc: WRTu} annualised_entry_exit: 18472161 - rank: 35 id: "GBR.LON.MOB.Z2.VALVE.NOTTING_HILL_GATE" name: "Notting Hill Gate" mode_primary: "LU" refs: {tfl_mnlc: 667, tfl_masc: NHGu} annualised_entry_exit: 18298495 - rank: 36 id: "GBR.LON.MOB.Z2.VALVE.HAMMERSMITH_HC" name: "Hammersmith (H&C)" mode_primary: "LU" refs: {tfl_mnlc: 599, tfl_masc: HSHu} annualised_entry_exit: 18178628 - rank: 37 id: "GBR.LON.MOB.Z2.VALVE.LONDON_BRIDGE_NR" name: "London Bridge NR" mode_primary: "LO" refs: {tfl_mnlc: 6886, tfl_masc: LBRr} annualised_entry_exit: 18091052 - rank: 38 id: "GBR.LON.MOB.Z2.VALVE.BRIXXTON" name: "Brixton" mode_primary: "LU" refs: {tfl_mnlc: 529, tfl_masc: BRXu} annualised_entry_exit: 17698375 - rank: 39 id: "GBR.LON.MOB.Z2.VALVE.HAMMERSMITH_CW" name: "Canary Wharf" mode_primary: "DLR" refs: {tfl_mnlc: 840, tfl_masc: CAWd} annualised_entry_exit: 17394412 - rank: 40 id: "GBR.LON.MOB.Z2.VALVE.KINGS_CROSS_NR" name: "King's Cross NR" mode_primary: "LO" refs: {tfl_mnlc: 6800, tfl_masc: KXXr} annualised_entry_exit: 16970011 - rank: 41 id: "GBR.LON.MOB.Z2.VALVE.PADDINGTON_NR" name: "Paddington NR" mode_primary: "LO" refs: {tfl_mnlc: 7052, tfl_masc: PADr} annualised_entry_exit: 16539244 - rank: 42 id: "GBR.LON.MOB.Z2.VALVE.WHITECHAPEL" name: "Whitechapel" mode_primary: "LO" refs: {tfl_mnlc: 5754, tfl_masc: WHCr} annualised_entry_exit: 16178014 - rank: 43 id: "GBR.LON.MOB.Z2.VALVE.WEST_HAM" name: "West Ham" mode_primary: "LU" refs: {tfl_mnlc: 744, tfl_masc: WHMu} annualised_entry_exit: 16077143 - rank: 44 id: "GBR.LON.MOB.Z2.VALVE.SHOREITCH_HIGH_STREET" name: "Shoreditch High Street" mode_primary: "LO" refs: {tfl_mnlc: 7242, tfl_masc: SDHr} annualised_entry_exit: 15902911 - rank: 45 id: "GBR.LON.MOB.Z2.VALVE.CAMDEN_ROAD" name: "Camden Road" mode_primary: "LO" refs: {tfl_mnlc: 5856, tfl_masc: CMRr} annualised_entry_exit: 14875320 - rank: 46 id: "GBR.LON.MOB.Z2.VALVE.EUSTON_SQUARE" name: "Euston Square" mode_primary: "LU" refs: {tfl_mnlc: 573, tfl_masc: ESQu} annualised_entry_exit: 14395011 - rank: 47 id: "GBR.LON.MOB.Z2.VALVE.CHARING_CROSS" name: "Charing Cross LU" mode_primary: "LU" refs: {tfl_mnlc: 552, tfl_masc: CHXu} annualised_entry_exit: 14178102 - rank: 48 id: "GBR.LON.MOB.Z2.VALVE.SLOANE_SQ" name: "Sloane Square" mode_primary: "LU" refs: {tfl_mnlc: 702, tfl_masc: SSQu} annualised_entry_exit: 13156281 - rank: 49 id: "GBR.LON.MOB.Z2.VALVE.CLAPHAM_JUNCTION" name: "Clapham Junction" mode_primary: "LO" refs: {tfl_mnlc: 5595, tfl_masc: CLJr} annualised_entry_exit: 12888580 - rank: 50 id: "GBR.LON.MOB.Z2.VALVE.COVENT_GDN" name: "Covent Garden" mode_primary: "LU" refs: {tfl_mnlc: 553, tfl_masc: COVu} annualised_entry_exit: 12573815# ------------------------------------------------------------# OPTIONAL OVERLAY — NATIONAL RAIL SUPER-TERMINAL COMPLEX NODES# (Use ORR station usage tables to populate NR footfall + interchange)# ------------------------------------------------------------NR_SUPER_TERMINALS_OVERLAY: - id: "GBR.LON.MOB.Z2.VALVE_SUPER.WATERLOO_TERMINAL" name: "London Waterloo (National Rail terminal complex)" merge_with: ["GBR.LON.MOB.Z2.VALVE.WATERLOO"] metric_source: "ORR_NATIONAL_RAIL_OVERLAY" - id: "GBR.LON.MOB.Z2.VALVE_SUPER.VICTORIA_TERMINAL" name: "London Victoria (National Rail terminal complex)" merge_with: ["GBR.LON.MOB.Z2.VALVE.VICTORIA"] metric_source: "ORR_NATIONAL_RAIL_OVERLAY" - id: "GBR.LON.MOB.Z2.VALVE_SUPER.LONDON_BRIDGE_TERMINAL" name: "London Bridge (mainline + Underground complex)" merge_with: ["GBR.LON.MOB.Z2.VALVE.LONDON_BRIDGE", "GBR.LON.MOB.Z2.VALVE.LONDON_BRIDGE_NR"] metric_source: "ORR_NATIONAL_RAIL_OVERLAY" - id: "GBR.LON.MOB.Z2.VALVE_SUPER.LIVERPOOL_STREET_TERMINAL" name: "Liverpool Street (mainline + Underground complex)" merge_with: ["GBR.LON.MOB.Z2.VALVE.LIVERPOOL_STREET"] metric_source: "ORR_NATIONAL_RAIL_OVERLAY" - id: "GBR.LON.MOB.Z2.VALVE_SUPER.PADDINGTON_TERMINAL" name: "Paddington (mainline + Underground + Elizabeth complex)" merge_with: ["GBR.LON.MOB.Z2.VALVE.PADDINGTON", "GBR.LON.MOB.Z2.VALVE.PADDINGTON_NR"] metric_source: "ORR_NATIONAL_RAIL_OVERLAY" - id: "GBR.LON.MOB.Z2.VALVE_SUPER.KINGS_CROSS_STPANCRAS_TERMINAL" name: "King's Cross + St Pancras (mainline + Underground + international complex)" merge_with: ["GBR.LON.MOB.Z2.VALVE.KINGS_CROSS_STPANCRAS", "GBR.LON.MOB.Z2.VALVE.KINGS_CROSS_NR"] metric_source: "ORR_NATIONAL_RAIL_OVERLAY" - id: "GBR.LON.MOB.Z2.VALVE_SUPER.EUSTON_TERMINAL" name: "Euston (National Rail terminal complex)" merge_with: ["GBR.LON.MOB.Z2.VALVE.EUSTON", "GBR.LON.MOB.Z2.VALVE.EUSTON_SQUARE"] metric_source: "ORR_NATIONAL_RAIL_OVERLAY" - id: "GBR.LON.MOB.Z2.VALVE_SUPER.CHARING_CROSS_TERMINAL" name: "Charing Cross (National Rail terminal complex)" merge_with: ["GBR.LON.MOB.Z2.VALVE.CHARING_CROSS"] metric_source: "ORR_NATIONAL_RAIL_OVERLAY" - id: "GBR.LON.MOB.Z2.VALVE_SUPER.CANNON_STREET_TERMINAL" name: "Cannon Street (National Rail terminal complex)" metric_source: "ORR_NATIONAL_RAIL_OVERLAY" - id: "GBR.LON.MOB.Z2.VALVE_SUPER.FENCHURCH_STREET_TERMINAL" name: "Fenchurch Street (National Rail terminal complex)" metric_source: "ORR_NATIONAL_RAIL_OVERLAY" - id: "GBR.LON.MOB.Z2.VALVE_SUPER.BLACKFRIARS_TERMINAL" name: "Blackfriars (National Rail terminal complex)" metric_source: "ORR_NATIONAL_RAIL_OVERLAY" - id: "GBR.LON.MOB.Z2.VALVE_SUPER.MARYLEBONE_TERMINAL" name: "Marylebone (National Rail terminal complex)" metric_source: "ORR_NATIONAL_RAIL_OVERLAY"# ------------------------------------------------------------# FAILURE MODE TRACE (required Canonical schematic)# ------------------------------------------------------------FAILURE_MODE_TRACE: - "Z2 valve congestion spike (gate saturation) → corridor dwell inflation" - "Corridor dwell inflation → missed connections + queue spillover into streets (Z3)" - "Z3 spillover → emergency response load + economic delay load (Z5)" - "Repair: re-route flows (alternate corridors) + add gate capacity + stagger demand (timed entry) → restore below-threshold state"
[2]: https://dataportal.orr.gov.uk/statistics/usage/estimates-of-station-usage “
Estimates of station usage | ORR Data Portal
London Almost-Code — Section 02: Mobility Corridors Registry (Z4)
This section defines Corridors (Z4): high-throughput movement trunks that bind London’s valves (stations/terminals/bridges/tunnels) into reliable routing under load. The corridor set below is grounded on official network maps from Transport for London: Tube (11 lines), London Overground line set (named lines), and the Elizabeth line route map. (content.tfl.gov.uk)
For the river constraint surface (the “hard cut” that forces crossings and concentrates load), we reference River Thames bridge/crossing sources, including Port of London Authority materials and the standard crossings inventory. (pla.co.uk)
# =========================================================# CIVOS / LONDON / TRANSPORT# SECTION 02 (Z4): MOBILITY CORRIDORS REGISTRY# Canon: Almost-Code (WordPress paste-ready)# =========================================================CANON_VERSION: v0.1PLACE: ID: GBR-LON NAME: London LAYER: TRANSPORT Z_LEVEL: Z4 PACK: MOBILITY_CORRIDORSDEFINITION_LOCK: CORRIDOR_Z4: > A high-throughput trunk path (rail/road/river/air) that binds multiple Z3 valves into guaranteed movement capacity. Corridors are what London "flies on" when the city is loaded. VALVE_Z4: > A high-leverage junction (major station/terminal/crossing/interop node) that controls routing, capacity, and failure propagation across corridors. INTERCHANGE_EDGE: > A bind between corridors that allows rerouting (with cost), not just proximity.
02A) Corridor schema (what every corridor record must contain)
SCHEMA: GBR-LON::TRAN::Z4::M::CORR::<corridor_id>: MODE: [RAIL_METRO|RAIL_REGIONAL|RAIL_LIGHT|TRAM|BUS_TRUNK|ROAD_TRUNK|RIVER|CABLE|AIR] OPERATOR: [TfL|NationalRail|Mixed] TOPOLOGY: [RADIAL|ORBITAL|LOOP|BRANCH|GRID_SPINE] ANCHOR_VALVES: - GBR-LON::TRAN::Z4::M::VALVE::<valve_id> # interchanges / terminals / crossings PRIMARY_LOAD: - COMMUTE - TOURISM - FREIGHT_LIGHT - EVENT_SURGE - NIGHT_ECONOMY REDUNDANCY: ALT_CORRIDORS: - GBR-LON::TRAN::Z4::M::CORR::<corridor_id> REROUTE_COST_CLASS: [LOW|MED|HIGH] # how hard it is to hop off and still arrive FRAGILITY: SINGLE_POINT_FAILURES: - GBR-LON::TRAN::Z4::M::VALVE::<valve_id> COMMON_MODE_RISKS: - POWER - SIGNALLING - FLOOD - STRIKE - CROWD_CRUSH SENSORS_REQUIRED: - S.headway_variance - S.delay_minutes - S.crowding_index - S.platform_dwell - S.interchange_queue
02B) Corridor registry (rail + river + cable)
Tube line set is taken from the TfL Tube map “Key to lines”. (content.tfl.gov.uk)
Overground line names are taken from the TfL London Overground network map. (content.tfl.gov.uk)
Elizabeth line trunk + branches are taken from the TfL Elizabeth line route/map. (content.tfl.gov.uk)
CORRIDOR_REGISTRY: # ----------------------- # A) Underground (Tube) # ----------------------- GBR-LON::TRAN::Z4::M::CORR.TUBE.BAKERLOO: MODE: RAIL_METRO OPERATOR: TfL TOPOLOGY: RADIAL PRIMARY_LOAD: [COMMUTE, TOURISM, EVENT_SURGE] ANCHOR_VALVES: [GBR-LON::TRAN::Z4::M::VALVE::<SET_LATER>] REDUNDANCY: { ALT_CORRIDORS: [GBR-LON::TRAN::Z4::M::CORR.TUBE.CENTRAL, GBR-LON::TRAN::Z4::M::CORR.TUBE.NORTHERN], REROUTE_COST_CLASS: MED } FRAGILITY: { SINGLE_POINT_FAILURES: [GBR-LON::TRAN::Z4::M::VALVE::<SET_LATER>], COMMON_MODE_RISKS: [SIGNALLING, POWER, CROWD_CRUSH] } SENSORS_REQUIRED: [S.headway_variance, S.delay_minutes, S.crowding_index, S.interchange_queue] GBR-LON::TRAN::Z4::M::CORR.TUBE.CENTRAL: MODE: RAIL_METRO OPERATOR: TfL TOPOLOGY: GRID_SPINE PRIMARY_LOAD: [COMMUTE, TOURISM, EVENT_SURGE, NIGHT_ECONOMY] ANCHOR_VALVES: [GBR-LON::TRAN::Z4::M::VALVE::<SET_LATER>] REDUNDANCY: { ALT_CORRIDORS: [GBR-LON::TRAN::Z4::M::CORR.ELZ.TRUNK, GBR-LON::TRAN::Z4::M::CORR.TUBE.JUBILEE], REROUTE_COST_CLASS: LOW } FRAGILITY: { SINGLE_POINT_FAILURES: [GBR-LON::TRAN::Z4::M::VALVE::<SET_LATER>], COMMON_MODE_RISKS: [SIGNALLING, POWER, CROWD_CRUSH] } SENSORS_REQUIRED: [S.headway_variance, S.delay_minutes, S.crowding_index, S.platform_dwell, S.interchange_queue] GBR-LON::TRAN::Z4::M::CORR.TUBE.CIRCLE: MODE: RAIL_METRO OPERATOR: TfL TOPOLOGY: LOOP PRIMARY_LOAD: [COMMUTE, TOURISM] ANCHOR_VALVES: [GBR-LON::TRAN::Z4::M::VALVE::<SET_LATER>] REDUNDANCY: { ALT_CORRIDORS: [GBR-LON::TRAN::Z4::M::CORR.TUBE.DISTRICT, GBR-LON::TRAN::Z4::M::CORR.TUBE.HAMMERSMITH_CITY], REROUTE_COST_CLASS: LOW } FRAGILITY: { SINGLE_POINT_FAILURES: [GBR-LON::TRAN::Z4::M::VALVE::<SET_LATER>], COMMON_MODE_RISKS: [SIGNALLING, CROWD_CRUSH] } SENSORS_REQUIRED: [S.headway_variance, S.delay_minutes, S.crowding_index] GBR-LON::TRAN::Z4::M::CORR.TUBE.DISTRICT: MODE: RAIL_METRO OPERATOR: TfL TOPOLOGY: BRANCH PRIMARY_LOAD: [COMMUTE, TOURISM, EVENT_SURGE] ANCHOR_VALVES: [GBR-LON::TRAN::Z4::M::VALVE::<SET_LATER>] REDUNDANCY: { ALT_CORRIDORS: [GBR-LON::TRAN::Z4::M::CORR.TUBE.CIRCLE, GBR-LON::TRAN::Z4::M::CORR.TUBE.PICCADILLY], REROUTE_COST_CLASS: MED } FRAGILITY: { SINGLE_POINT_FAILURES: [GBR-LON::TRAN::Z4::M::VALVE::<SET_LATER>], COMMON_MODE_RISKS: [SIGNALLING, POWER] } SENSORS_REQUIRED: [S.headway_variance, S.delay_minutes, S.crowding_index, S.interchange_queue] GBR-LON::TRAN::Z4::M::CORR.TUBE.HAMMERSMITH_CITY: MODE: RAIL_METRO OPERATOR: TfL TOPOLOGY: GRID_SPINE PRIMARY_LOAD: [COMMUTE, TOURISM] ANCHOR_VALVES: [GBR-LON::TRAN::Z4::M::VALVE::<SET_LATER>] REDUNDANCY: { ALT_CORRIDORS: [GBR-LON::TRAN::Z4::M::CORR.TUBE.CIRCLE, GBR-LON::TRAN::Z4::M::CORR.TUBE.METROPOLITAN], REROUTE_COST_CLASS: LOW } FRAGILITY: { SINGLE_POINT_FAILURES: [GBR-LON::TRAN::Z4::M::VALVE::<SET_LATER>], COMMON_MODE_RISKS: [SIGNALLING, POWER] } SENSORS_REQUIRED: [S.headway_variance, S.delay_minutes, S.crowding_index] GBR-LON::TRAN::Z4::M::CORR.TUBE.JUBILEE: MODE: RAIL_METRO OPERATOR: TfL TOPOLOGY: GRID_SPINE PRIMARY_LOAD: [COMMUTE, TOURISM, EVENT_SURGE, NIGHT_ECONOMY] ANCHOR_VALVES: [GBR-LON::TRAN::Z4::M::VALVE::<SET_LATER>] REDUNDANCY: { ALT_CORRIDORS: [GBR-LON::TRAN::Z4::M::CORR.ELZ.TRUNK, GBR-LON::TRAN::Z4::M::CORR.TUBE.CENTRAL], REROUTE_COST_CLASS: LOW } FRAGILITY: { SINGLE_POINT_FAILURES: [GBR-LON::TRAN::Z4::M::VALVE::<SET_LATER>], COMMON_MODE_RISKS: [SIGNALLING, POWER, CROWD_CRUSH] } SENSORS_REQUIRED: [S.headway_variance, S.delay_minutes, S.crowding_index, S.platform_dwell, S.interchange_queue] GBR-LON::TRAN::Z4::M::CORR.TUBE.METROPOLITAN: MODE: RAIL_METRO OPERATOR: TfL TOPOLOGY: BRANCH PRIMARY_LOAD: [COMMUTE] ANCHOR_VALVES: [GBR-LON::TRAN::Z4::M::VALVE::<SET_LATER>] REDUNDANCY: { ALT_CORRIDORS: [GBR-LON::TRAN::Z4::M::CORR.TUBE.HAMMERSMITH_CITY], REROUTE_COST_CLASS: MED } FRAGILITY: { SINGLE_POINT_FAILURES: [GBR-LON::TRAN::Z4::M::VALVE::<SET_LATER>], COMMON_MODE_RISKS: [SIGNALLING, POWER] } SENSORS_REQUIRED: [S.headway_variance, S.delay_minutes, S.crowding_index] GBR-LON::TRAN::Z4::M::CORR.TUBE.NORTHERN: MODE: RAIL_METRO OPERATOR: TfL TOPOLOGY: BRANCH PRIMARY_LOAD: [COMMUTE, NIGHT_ECONOMY, EVENT_SURGE] ANCHOR_VALVES: [GBR-LON::TRAN::Z4::M::VALVE::<SET_LATER>] REDUNDANCY: { ALT_CORRIDORS: [GBR-LON::TRAN::Z4::M::CORR.TUBE.VICTORIA, GBR-LON::TRAN::Z4::M::CORR.TUBE.CENTRAL], REROUTE_COST_CLASS: MED } FRAGILITY: { SINGLE_POINT_FAILURES: [GBR-LON::TRAN::Z4::M::VALVE::<SET_LATER>], COMMON_MODE_RISKS: [SIGNALLING, POWER, CROWD_CRUSH] } SENSORS_REQUIRED: [S.headway_variance, S.delay_minutes, S.crowding_index, S.interchange_queue] GBR-LON::TRAN::Z4::M::CORR.TUBE.PICCADILLY: MODE: RAIL_METRO OPERATOR: TfL TOPOLOGY: RADIAL PRIMARY_LOAD: [COMMUTE, TOURISM, AIRPORT_ACCESS] ANCHOR_VALVES: [GBR-LON::TRAN::Z4::M::VALVE::<SET_LATER>] REDUNDANCY: { ALT_CORRIDORS: [GBR-LON::TRAN::Z4::M::CORR.ELZ.WEST_BRANCH_HEATHROW, GBR-LON::TRAN::Z4::M::CORR.TUBE.DISTRICT], REROUTE_COST_CLASS: HIGH } FRAGILITY: { SINGLE_POINT_FAILURES: [GBR-LON::TRAN::Z4::M::VALVE::<SET_LATER>], COMMON_MODE_RISKS: [SIGNALLING, POWER] } SENSORS_REQUIRED: [S.headway_variance, S.delay_minutes, S.crowding_index] GBR-LON::TRAN::Z4::M::CORR.TUBE.VICTORIA: MODE: RAIL_METRO OPERATOR: TfL TOPOLOGY: RADIAL PRIMARY_LOAD: [COMMUTE, EVENT_SURGE, NIGHT_ECONOMY] ANCHOR_VALVES: [GBR-LON::TRAN::Z4::M::VALVE::<SET_LATER>] REDUNDANCY: { ALT_CORRIDORS: [GBR-LON::TRAN::Z4::M::CORR.TUBE.NORTHERN], REROUTE_COST_CLASS: MED } FRAGILITY: { SINGLE_POINT_FAILURES: [GBR-LON::TRAN::Z4::M::VALVE::<SET_LATER>], COMMON_MODE_RISKS: [SIGNALLING, POWER, CROWD_CRUSH] } SENSORS_REQUIRED: [S.headway_variance, S.delay_minutes, S.crowding_index, S.platform_dwell] GBR-LON::TRAN::Z4::M::CORR.TUBE.WATERLOO_CITY: MODE: RAIL_METRO OPERATOR: TfL TOPOLOGY: RADIAL PRIMARY_LOAD: [COMMUTE] ANCHOR_VALVES: [GBR-LON::TRAN::Z4::M::VALVE::<SET_LATER>] REDUNDANCY: { ALT_CORRIDORS: [GBR-LON::TRAN::Z4::M::CORR.RAIL_NATIONAL.THAMESLINK_CORE, GBR-LON::TRAN::Z4::M::CORR.TUBE.NORTHERN], REROUTE_COST_CLASS: HIGH } FRAGILITY: { SINGLE_POINT_FAILURES: [GBR-LON::TRAN::Z4::M::VALVE::<SET_LATER>], COMMON_MODE_RISKS: [SIGNALLING, POWER] } SENSORS_REQUIRED: [S.headway_variance, S.delay_minutes, S.crowding_index] # ----------------------- # B) Elizabeth line (Cross-London trunk + branches) # ----------------------- GBR-LON::TRAN::Z4::M::CORR.ELZ.TRUNK: MODE: RAIL_REGIONAL OPERATOR: TfL TOPOLOGY: GRID_SPINE PRIMARY_LOAD: [COMMUTE, AIRPORT_ACCESS, EVENT_SURGE] ANCHOR_VALVES: [GBR-LON::TRAN::Z4::M::VALVE::<SET_LATER>] REDUNDANCY: { ALT_CORRIDORS: [GBR-LON::TRAN::Z4::M::CORR.TUBE.CENTRAL, GBR-LON::TRAN::Z4::M::CORR.TUBE.JUBILEE], REROUTE_COST_CLASS: LOW } FRAGILITY: { SINGLE_POINT_FAILURES: [GBR-LON::TRAN::Z4::M::VALVE::<SET_LATER>], COMMON_MODE_RISKS: [SIGNALLING, POWER] } SENSORS_REQUIRED: [S.headway_variance, S.delay_minutes, S.crowding_index, S.platform_dwell, S.interchange_queue] GBR-LON::TRAN::Z4::M::CORR.ELZ.WEST_BRANCH_READING: MODE: RAIL_REGIONAL OPERATOR: TfL TOPOLOGY: BRANCH PRIMARY_LOAD: [COMMUTE] ANCHOR_VALVES: [GBR-LON::TRAN::Z4::M::VALVE::<SET_LATER>] REDUNDANCY: { ALT_CORRIDORS: [GBR-LON::TRAN::Z4::M::CORR.RAIL_NATIONAL.GWR_MAINLINE], REROUTE_COST_CLASS: MED } FRAGILITY: { SINGLE_POINT_FAILURES: [GBR-LON::TRAN::Z4::M::VALVE::<SET_LATER>], COMMON_MODE_RISKS: [SIGNALLING, POWER] } SENSORS_REQUIRED: [S.headway_variance, S.delay_minutes] GBR-LON::TRAN::Z4::M::CORR.ELZ.WEST_BRANCH_HEATHROW: MODE: RAIL_REGIONAL OPERATOR: TfL TOPOLOGY: BRANCH PRIMARY_LOAD: [AIRPORT_ACCESS, TOURISM] ANCHOR_VALVES: [GBR-LON::TRAN::Z4::M::VALVE::<SET_LATER>] REDUNDANCY: { ALT_CORRIDORS: [GBR-LON::TRAN::Z4::M::CORR.TUBE.PICCADILLY], REROUTE_COST_CLASS: HIGH } FRAGILITY: { SINGLE_POINT_FAILURES: [GBR-LON::TRAN::Z4::M::VALVE::<SET_LATER>], COMMON_MODE_RISKS: [SIGNALLING, POWER] } SENSORS_REQUIRED: [S.delay_minutes, S.crowding_index] GBR-LON::TRAN::Z4::M::CORR.ELZ.EAST_BRANCH_SHENFIELD: MODE: RAIL_REGIONAL OPERATOR: TfL TOPOLOGY: BRANCH PRIMARY_LOAD: [COMMUTE] ANCHOR_VALVES: [GBR-LON::TRAN::Z4::M::VALVE::<SET_LATER>] REDUNDANCY: { ALT_CORRIDORS: [GBR-LON::TRAN::Z4::M::CORR.RAIL_NATIONAL.GREATER_ANGLIA], REROUTE_COST_CLASS: MED } FRAGILITY: { SINGLE_POINT_FAILURES: [GBR-LON::TRAN::Z4::M::VALVE::<SET_LATER>], COMMON_MODE_RISKS: [SIGNALLING, POWER] } SENSORS_REQUIRED: [S.headway_variance, S.delay_minutes] GBR-LON::TRAN::Z4::M::CORR.ELZ.EAST_BRANCH_ABBEY_WOOD: MODE: RAIL_REGIONAL OPERATOR: TfL TOPOLOGY: BRANCH PRIMARY_LOAD: [COMMUTE] ANCHOR_VALVES: [GBR-LON::TRAN::Z4::M::VALVE::<SET_LATER>] REDUNDANCY: { ALT_CORRIDORS: [GBR-LON::TRAN::Z4::M::CORR.RAIL_NATIONAL.SOUTHEASTERN], REROUTE_COST_CLASS: MED } FRAGILITY: { SINGLE_POINT_FAILURES: [GBR-LON::TRAN::Z4::M::VALVE::<SET_LATER>], COMMON_MODE_RISKS: [SIGNALLING, POWER] } SENSORS_REQUIRED: [S.headway_variance, S.delay_minutes] # ----------------------- # C) London Overground (named lines) # ----------------------- GBR-LON::TRAN::Z4::M::CORR.OG.LIONESS: MODE: RAIL_REGIONAL OPERATOR: TfL TOPOLOGY: ORBITAL PRIMARY_LOAD: [COMMUTE] ANCHOR_VALVES: [GBR-LON::TRAN::Z4::M::VALVE::<SET_LATER>] REDUNDANCY: { ALT_CORRIDORS: [GBR-LON::TRAN::Z4::M::CORR.OG.MILDMAY, GBR-LON::TRAN::Z4::M::CORR.TUBE.CIRCLE], REROUTE_COST_CLASS: MED } FRAGILITY: { SINGLE_POINT_FAILURES: [GBR-LON::TRAN::Z4::M::VALVE::<SET_LATER>], COMMON_MODE_RISKS: [SIGNALLING, STRIKE] } SENSORS_REQUIRED: [S.headway_variance, S.delay_minutes, S.crowding_index] GBR-LON::TRAN::Z4::M::CORR.OG.MILDMAY: MODE: RAIL_REGIONAL OPERATOR: TfL TOPOLOGY: ORBITAL PRIMARY_LOAD: [COMMUTE] ANCHOR_VALVES: [GBR-LON::TRAN::Z4::M::VALVE::<SET_LATER>] REDUNDANCY: { ALT_CORRIDORS: [GBR-LON::TRAN::Z4::M::CORR.OG.WINDRUSH, GBR-LON::TRAN::Z4::M::CORR.TUBE.NORTHERN], REROUTE_COST_CLASS: MED } FRAGILITY: { SINGLE_POINT_FAILURES: [GBR-LON::TRAN::Z4::M::VALVE::<SET_LATER>], COMMON_MODE_RISKS: [SIGNALLING, STRIKE] } SENSORS_REQUIRED: [S.headway_variance, S.delay_minutes, S.crowding_index] GBR-LON::TRAN::Z4::M::CORR.OG.WINDRUSH: MODE: RAIL_REGIONAL OPERATOR: TfL TOPOLOGY: ORBITAL PRIMARY_LOAD: [COMMUTE, EVENT_SURGE, NIGHT_ECONOMY] ANCHOR_VALVES: [GBR-LON::TRAN::Z4::M::VALVE::<SET_LATER>] REDUNDANCY: { ALT_CORRIDORS: [GBR-LON::TRAN::Z4::M::CORR.OG.SUFFRAGETTE, GBR-LON::TRAN::Z4::M::CORR.TUBE.JUBILEE], REROUTE_COST_CLASS: MED } FRAGILITY: { SINGLE_POINT_FAILURES: [GBR-LON::TRAN::Z4::M::VALVE::<SET_LATER>], COMMON_MODE_RISKS: [SIGNALLING, STRIKE, CROWD_CRUSH] } SENSORS_REQUIRED: [S.headway_variance, S.delay_minutes, S.crowding_index, S.interchange_queue] GBR-LON::TRAN::Z4::M::CORR.OG.WEAVER: MODE: RAIL_REGIONAL OPERATOR: TfL TOPOLOGY: ORBITAL PRIMARY_LOAD: [COMMUTE] ANCHOR_VALVES: [GBR-LON::TRAN::Z4::M::VALVE::<SET_LATER>] REDUNDANCY: { ALT_CORRIDORS: [GBR-LON::TRAN::Z4::M::CORR.ELZ.EAST_BRANCH_SHENFIELD, GBR-LON::TRAN::Z4::M::CORR.TUBE.CENTRAL], REROUTE_COST_CLASS: MED } FRAGILITY: { SINGLE_POINT_FAILURES: [GBR-LON::TRAN::Z4::M::VALVE::<SET_LATER>], COMMON_MODE_RISKS: [SIGNALLING, STRIKE] } SENSORS_REQUIRED: [S.headway_variance, S.delay_minutes, S.crowding_index] GBR-LON::TRAN::Z4::M::CORR.OG.SUFFRAGETTE: MODE: RAIL_REGIONAL OPERATOR: TfL TOPOLOGY: ORBITAL PRIMARY_LOAD: [COMMUTE] ANCHOR_VALVES: [GBR-LON::TRAN::Z4::M::VALVE::<SET_LATER>] REDUNDANCY: { ALT_CORRIDORS: [GBR-LON::TRAN::Z4::M::CORR.OG.WINDRUSH, GBR-LON::TRAN::Z4::M::CORR.DLR.CORE], REROUTE_COST_CLASS: MED } FRAGILITY: { SINGLE_POINT_FAILURES: [GBR-LON::TRAN::Z4::M::VALVE::<SET_LATER>], COMMON_MODE_RISKS: [SIGNALLING, STRIKE] } SENSORS_REQUIRED: [S.headway_variance, S.delay_minutes, S.crowding_index] GBR-LON::TRAN::Z4::M::CORR.OG.LIBERTY: MODE: RAIL_REGIONAL OPERATOR: TfL TOPOLOGY: BRANCH PRIMARY_LOAD: [COMMUTE] ANCHOR_VALVES: [GBR-LON::TRAN::Z4::M::VALVE::<SET_LATER>] REDUNDANCY: { ALT_CORRIDORS: [GBR-LON::TRAN::Z4::M::CORR.ELZ.EAST_BRANCH_SHENFIELD], REROUTE_COST_CLASS: HIGH } FRAGILITY: { SINGLE_POINT_FAILURES: [GBR-LON::TRAN::Z4::M::VALVE::<SET_LATER>], COMMON_MODE_RISKS: [SIGNALLING, STRIKE] } SENSORS_REQUIRED: [S.headway_variance, S.delay_minutes] # ----------------------- # D) DLR / Trams / Cable / River # ----------------------- GBR-LON::TRAN::Z4::M::CORR.DLR.CORE: MODE: RAIL_LIGHT OPERATOR: TfL TOPOLOGY: BRANCH PRIMARY_LOAD: [COMMUTE, EVENT_SURGE] ANCHOR_VALVES: [GBR-LON::TRAN::Z4::M::VALVE::<SET_LATER>] REDUNDANCY: { ALT_CORRIDORS: [GBR-LON::TRAN::Z4::M::CORR.TUBE.JUBILEE, GBR-LON::TRAN::Z4::M::CORR.ELZ.TRUNK], REROUTE_COST_CLASS: MED } FRAGILITY: { SINGLE_POINT_FAILURES: [GBR-LON::TRAN::Z4::M::VALVE::<SET_LATER>], COMMON_MODE_RISKS: [SIGNALLING, POWER] } SENSORS_REQUIRED: [S.headway_variance, S.delay_minutes, S.crowding_index] GBR-LON::TRAN::Z4::M::CORR.TRAM.CROYDON_NET: MODE: TRAM OPERATOR: TfL TOPOLOGY: LOOP PRIMARY_LOAD: [COMMUTE] ANCHOR_VALVES: [GBR-LON::TRAN::Z4::M::VALVE::<SET_LATER>] REDUNDANCY: { ALT_CORRIDORS: [GBR-LON::TRAN::Z4::M::CORR.RAIL_NATIONAL.SOUTHERN], REROUTE_COST_CLASS: HIGH } FRAGILITY: { SINGLE_POINT_FAILURES: [GBR-LON::TRAN::Z4::M::VALVE::<SET_LATER>], COMMON_MODE_RISKS: [POWER, STRIKE] } SENSORS_REQUIRED: [S.delay_minutes, S.headway_variance] GBR-LON::TRAN::Z4::M::CORR.CABLE.IFS_CLOUD: MODE: CABLE OPERATOR: TfL TOPOLOGY: RADIAL PRIMARY_LOAD: [TOURISM, EVENT_SURGE] ANCHOR_VALVES: [GBR-LON::TRAN::Z4::M::VALVE::<SET_LATER>] REDUNDANCY: { ALT_CORRIDORS: [GBR-LON::TRAN::Z4::M::CORR.DLR.CORE], REROUTE_COST_CLASS: MED } FRAGILITY: { SINGLE_POINT_FAILURES: [GBR-LON::TRAN::Z4::M::VALVE::<SET_LATER>], COMMON_MODE_RISKS: [WIND, POWER] } SENSORS_REQUIRED: [S.delay_minutes, S.capacity_utilization] GBR-LON::TRAN::Z4::M::CORR.RIVER.THAMES_SERVICES: MODE: RIVER OPERATOR: Mixed TOPOLOGY: GRID_SPINE PRIMARY_LOAD: [TOURISM, COMMUTE, EVENT_SURGE] ANCHOR_VALVES: [GBR-LON::TRAN::Z4::M::VALVE::<SET_LATER_Piers>] REDUNDANCY: { ALT_CORRIDORS: [GBR-LON::TRAN::Z4::M::CORR.TUBE.CIRCLE, GBR-LON::TRAN::Z4::M::CORR.TUBE.DISTRICT], REROUTE_COST_CLASS: MED } FRAGILITY: { SINGLE_POINT_FAILURES: [GBR-LON::TRAN::Z4::M::VALVE::<SET_LATER_Piers>], COMMON_MODE_RISKS: [WEATHER, TIDE, QUEUE] } SENSORS_REQUIRED: [S.delay_minutes, S.queue_length, S.capacity_utilization]
02C) Interchange hubs (corridor-to-corridor bind layer)
This is the minimum set of Hub Valves you must lock before you can do any “London repair router” or “shock routing” accurately.
HUB_VALVES_MINSET: # Each hub is a "corridor switch". If a hub fails, reroute-cost jumps and the city fragments. GBR-LON::TRAN::Z4::M::VALVE.HUB.CENTRAL_WEST: ROLE: [INTERCHANGE_CLUSTER] BINDS_CORRIDORS: - GBR-LON::TRAN::Z4::M::CORR.TUBE.CENTRAL - GBR-LON::TRAN::Z4::M::CORR.TUBE.JUBILEE - GBR-LON::TRAN::Z4::M::CORR.ELZ.TRUNK - GBR-LON::TRAN::Z4::M::CORR.TUBE.BAKERLOO NOTE: "West End core interchange cluster. Controls tourist + commute mixing." GBR-LON::TRAN::Z4::M::VALVE.HUB.CITY_CORE: ROLE: [INTERCHANGE_CLUSTER] BINDS_CORRIDORS: - GBR-LON::TRAN::Z4::M::CORR.ELZ.TRUNK - GBR-LON::TRAN::Z4::M::CORR.TUBE.CIRCLE - GBR-LON::TRAN::Z4::M::CORR.TUBE.HAMMERSMITH_CITY - GBR-LON::TRAN::Z4::M::CORR.TUBE.METROPOLITAN - GBR-LON::TRAN::Z4::M::CORR.TUBE.NORTHERN NOTE: "City core. Controls finance-hour load concentration + reroutes." GBR-LON::TRAN::Z4::M::VALVE.HUB.EAST_SUPERNODE: ROLE: [INTERCHANGE_CLUSTER] BINDS_CORRIDORS: - GBR-LON::TRAN::Z4::M::CORR.TUBE.CENTRAL - GBR-LON::TRAN::Z4::M::CORR.TUBE.JUBILEE - GBR-LON::TRAN::Z4::M::CORR.ELZ.TRUNK - GBR-LON::TRAN::Z4::M::CORR.DLR.CORE - GBR-LON::TRAN::Z4::M::CORR.OG.WEAVER NOTE: "East multi-corridor switch. When it fails, east/west coupling collapses." GBR-LON::TRAN::Z4::M::VALVE.HUB.NORTH_SUPERNODE: ROLE: [INTERCHANGE_CLUSTER] BINDS_CORRIDORS: - GBR-LON::TRAN::Z4::M::CORR.TUBE.VICTORIA - GBR-LON::TRAN::Z4::M::CORR.TUBE.NORTHERN - GBR-LON::TRAN::Z4::M::CORR.TUBE.PICCADILLY - GBR-LON::TRAN::Z4::M::CORR.OG.MILDMAY - GBR-LON::TRAN::Z4::M::CORR.OG.WINDRUSH NOTE: "North interchange mass. Controls national rail interface + commuter inflows."INTERCHANGE_EDGE_RULES: # A valid interchange edge must declare cost, capacity penalty, and failure coupling. GBR-LON::TRAN::Z4::M::EDGE.INTERCHANGE::<A>__<B>: COST_MINUTES_P50: <SET_LATER> CAPACITY_PENALTY: [LOW|MED|HIGH] FAIL_COUPLING: [LOW|MED|HIGH]
02D) River-cut constraint & Cross-Thames crossings (the “hard routing gate”)
The Thames is not just scenery. It is a structural routing constraint: it forces bridge/tunnel dependency and concentrates load into fewer cross-river edges, which amplifies brittle-failure when any crossing cluster is disrupted. (Crossing inventories + bridge references: (Wikipedia))
THAMES_CONSTRAINT_PACK: GBR-LON::TRAN::Z4::M::CONSTRAINT.THAMES_RIVER_CUT: TYPE: HARD_TOPOLOGY_CONSTRAINT EFFECT: - "North/South routing requires CROSSING edges." - "Failure of a crossing cluster multiplies interchange queueing upstream." - "Emergency response times jump when crossing capacity collapses." # We model crossings as VALVES (they gate flow), and each crossing binds to at least 2 road/bus trunk corridors. CROSSING_SCHEMA: GBR-LON::TRAN::Z4::M::VALVE.CROSSING::<crossing_id>: MODE: [ROAD|RAIL|FOOT|MIXED] CLUSTER: [CENTRAL|WEST|EAST|OUTER] BINDS_CORRIDORS: - GBR-LON::TRAN::Z4::M::CORR.ROAD::<SET_LATER> - GBR-LON::TRAN::Z4::M::CORR.BUS_TRUNK::<SET_LATER> SENSOR_REQUIRED: - S.queue_length - S.travel_time_delta - S.incident_rate # Placeholder clusters (populate in the dedicated Crossings page) CROSSING_CLUSTERS: CENTRAL: [GBR-LON::TRAN::Z4::M::VALVE.CROSSING::<SET_LATER>] WEST: [GBR-LON::TRAN::Z4::M::VALVE.CROSSING::<SET_LATER>] EAST: [GBR-LON::TRAN::Z4::M::VALVE.CROSSING::<SET_LATER>] OUTER: [GBR-LON::TRAN::Z4::M::VALVE.CROSSING::<SET_LATER>]
02E) Corridor sensors (P0→P3 instrument panel)
CORRIDOR_SENSOR_PACK: S.headway_variance: UNIT: minutes_std P3: "<= 1.5" P2: "1.5–3.0" P1: "3.0–6.0" P0: ">= 6.0" S.delay_minutes: UNIT: minutes_total P3: "<= 5" P2: "5–15" P1: "15–40" P0: ">= 40" S.crowding_index: UNIT: ratio P3: "<= 0.85" P2: "0.85–1.00" P1: "1.00–1.20" P0: ">= 1.20" S.platform_dwell: UNIT: seconds P3: "<= 45" P2: "45–75" P1: "75–120" P0: ">= 120" S.interchange_queue: UNIT: people_est P3: "<= 150" P2: "150–400" P1: "400–900" P0: ">= 900"CONTROL_ACTIONS: # What the city does when sensors degrade. ACTION.TRUNCATE: WHEN: "Any corridor hits P0 for >= 2 consecutive windows" DO: - "Apply demand shedding (temporary closures / metering)" - "Push reroute guidance to ALT_CORRIDORS" - "Protect HUB valves first (avoid hub crush)" ACTION.STITCH: WHEN: "Corridor returns to P2 or better" DO: - "Restore service with staged headway tightening" - "Keep hub metering until interchange_queue back to P3"
02F) Failure mode trace (required in every Canonical pack)
FAILURE_MODE_TRACE: TRACE_1__EAST_WEST_SPINE: CHAIN: - "ELZ_TRUNK delay ->" - "EAST_SUPERNODE interchange_queue ->" - "JUBILEE + CENTRAL crowding ->" - "Hub crush risk ->" - "City core travel-time delta ->" - "Economic role lateness -> P1 drift across multiple lanes" REPAIR: - "Truncate: meter hub + shed demand" - "Stitch: re-open with headway tightening + staged platform control" TRACE_2__THAMES_CROSSING_CLUSTER: CHAIN: - "Crossing incident ->" - "Queue length jump ->" - "Bus trunk delays ->" - "Hospital/response times jump ->" - "Local borough P0 pockets" REPAIR: - "Activate alternate crossing routing" - "Protect emergency corridors (priority signal + lanes)"
You typed “nexy” — online that can mean “nerdy and sexy,” but in this thread it clearly functions like “next”, so I’m continuing with Section 03 (Borough Valve Packs). (Cyber Definitions)
Also: the Top-50 numbers I showed earlier should be treated as illustrative placeholders unless you’ve actually imported TfL’s AC2023 sheet + ORR station usage and populated them—because without running the dataset, hard numbers shouldn’t be “locked” into canon. (The sources to populate from are TfL map/data pages + ORR station usage.) (Transport for London)
London City OS — Almost-Code v0.1
Section 03 — Borough Valve Packs (Z3)
This section creates 33 administrative pockets (32 boroughs + the City of London), and defines how each pocket auto-builds its Mobility Valve Pack from the Valve + Corridor layers you already started. London borough structure: 32 boroughs + City of London. (Wikipedia)
# ============================================================# LONDON CITY OS — ALMOST-CODE (CANON) — v0.1# SECTION 03 — BOROUGH VALVE PACKS (Z3)# ============================================================CANON_VERSION: "v0.1"PLACE: place_id: "GBR-LON" place_name: "London" region: "Greater London" lanes: ["TRAN"] # transport lane (mobility reliability) z_level: "Z3"DATA_SOURCES: - id: "BOROUGH_LIST" note: "32 London boroughs + City of London" ref: "wiki list of london boroughs (for enumeration only)" - id: "TFL_MAPS" note: "tube + overground maps used to validate corridor membership" refs: - "standard tube map pdf" - "london overground map pdf"DEFINITION_LOCK: BOROUGH_Z3: > A local government pocket inside Greater London that contains multiple neighbourhoods (Z2), multiple local valves (stations/crossings), and a share of city load. BOROUGH_VALVE_PACK: > The minimal set of mobility control points (valves) inside a borough required to keep the borough Phase-reliable under load (P0–P3). BOROUGH_CORRIDOR_BIND: > The binding edges that connect borough valves to Z4 corridors (tube trunks, overground orbitals, Elizabeth trunk, river crossings, etc.)
03A) Borough pack schema (what every borough page must contain)
SCHEMA: GBR-LON::GEO::Z3::M::BOROUGH::<BOROUGH_TOKEN>: name: "<PUBLIC_NAME>" type: "borough|city" inner_outer: "INNER|OUTER|CITY" # CITY used for City of London (sui generis) valves: AUTO_TOP: # computed from valve registry + borough tags N: 8 by: "VALVE_SCORE" list: [] SEED_CRITICAL: # manually seeded “must include” valves (terminals/hubs) list: [] corridor_binds: PRIMARY: [] # Z4 corridor IDs SECONDARY: [] REROUTE_ESCAPES: [] # “escape corridors” used in truncation thames_constraint: has_thames_edge: true|false crossing_valves: [] # bridge/tunnel valves, if any sensors: S.borough_queue_index: {range: "0..100"} S.borough_delay_delta: {unit: "minutes"} S.valve_P0_count: {unit: "count"} S.corridor_P0_count: {unit: "count"} phase_rules: P1_TRIPWIRE: "<rule>" P0_TRIPWIRE: "<rule>" repair_router: - "step_1" - "step_2" failure_mode_trace: - "trace_line_1" - "trace_line_2"
03B) Auto-build rules (so you don’t hand-write 33 borough pages)
This is the “compiler” rule: if each Valve record has a boroughs:[...] field (from your Valve template), borough packs populate themselves.
AUTO_BUILD_RULES: # 1) Assign valves to boroughs using the Valve header field: boroughs:[...] R1_VALVE_TO_BOROUGH: for_each: "VALVE" do: - "for each borough in VALVE.boroughs: add VALVE to BOROUGH.valves.CANDIDATE_SET" # 2) Score valves inside a borough to choose AUTO_TOP R2_VALVE_SCORE: VALVE_SCORE = "w1*TFL_ENTRY_EXIT + w2*ORR_INTERCHANGES + w3*HUBNESS + w4*THAMES_CROSSING + w5*TERMINALITY" note: "You can set weights later; this keeps canon stable." # 3) Pick Top-N valves per borough (default N=8) R3_PICK_AUTO_TOP: for_each: "BOROUGH" do: - "sort BOROUGH.CANDIDATE_SET by VALVE_SCORE desc" - "take first N into BOROUGH.valves.AUTO_TOP.list" # 4) Build corridor binds by union of corridor memberships of AUTO_TOP valves R4_BUILD_CORRIDOR_BINDS: for_each: "BOROUGH" do: - "PRIMARY := corridors that appear in >=2 AUTO_TOP valves OR flagged as city trunk" - "SECONDARY := corridors that appear in exactly 1 AUTO_TOP valve" - "REROUTE_ESCAPES := ALT_CORRIDORS of PRIMARY corridors (from Section 02)" # 5) Thames constraint inject R5_THAMES_INJECT: if: "BOROUGH intersects River Thames boundary" then: - "has_thames_edge := true" - "crossing_valves := all CROSSING valves tagged to this borough"
Tube + Overground corridor validation references (maps). (TFL Content)
03C) Phase tripwires (borough-level)
PHASE_TRIPWIRES: P1_TRIPWIRE_TEMPLATE: if: - "S.valve_P0_count >= 1 for >= 2 windows" - "OR S.borough_queue_index > T1 for >= 3 windows" then: - "activate platform metering at AUTO_TOP valves" - "push reroute to REROUTE_ESCAPES" - "stabilise: reduce headway variance on PRIMARY corridors" P0_TRIPWIRE_TEMPLATE: if: - "S.valve_P0_count >= 2 AND S.corridor_P0_count >= 1" - "OR borough_delay_delta > T2" then: - "sacrifice low-critical branches" - "protect emergency corridors first" - "seal spillover at hubs (avoid crush) and hold until queue index drops"
03D) Failure mode trace (canonical)
FAILURE_MODE_TRACE_TEMPLATE: TRACE_BOROUGH_VALVE_CASCADE: chain: - "AUTO_TOP valve shock (closure/delay/event surge)" - "queue growth at gate" - "spill into corridor PRIMARY" - "hub coupling amplifies delay" - "cross-borough propagation -> borough P2→P1 drift" repair: - "truncate: meter hubs + reroute to escape corridors" - "stitch: staged restoration + keep metering until queues back to P3 band"
03E) Borough registry (the 32 + City)
(Enumeration only; London is 32 boroughs plus the City of London.) (Wikipedia)
BOROUGH_REGISTRY: # CITY (sui generis, treated as borough-like in many workflows) - id: "GBR-LON::GEO::Z3::M::BOROUGH::CITY_OF_LONDON" name: "City of London" type: "city" inner_outer: "CITY" # INNER (common classification; keep as a field you can revise later) - {id:"GBR-LON::GEO::Z3::M::BOROUGH::CAMDEN", name:"Camden", type:"borough", inner_outer:"INNER"} - {id:"GBR-LON::GEO::Z3::M::BOROUGH::GREENWICH", name:"Greenwich", type:"borough", inner_outer:"INNER"} - {id:"GBR-LON::GEO::Z3::M::BOROUGH::HACKNEY", name:"Hackney", type:"borough", inner_outer:"INNER"} - {id:"GBR-LON::GEO::Z3::M::BOROUGH::HAMMERSMITH_FULHAM", name:"Hammersmith and Fulham", type:"borough", inner_outer:"INNER"} - {id:"GBR-LON::GEO::Z3::M::BOROUGH::ISLINGTON", name:"Islington", type:"borough", inner_outer:"INNER"} - {id:"GBR-LON::GEO::Z3::M::BOROUGH::KENSINGTON_CHELSEA", name:"Kensington and Chelsea", type:"borough", inner_outer:"INNER"} - {id:"GBR-LON::GEO::Z3::M::BOROUGH::LAMBETH", name:"Lambeth", type:"borough", inner_outer:"INNER"} - {id:"GBR-LON::GEO::Z3::M::BOROUGH::LEWISHAM", name:"Lewisham", type:"borough", inner_outer:"INNER"} - {id:"GBR-LON::GEO::Z3::M::BOROUGH::SOUTHWARK", name:"Southwark", type:"borough", inner_outer:"INNER"} - {id:"GBR-LON::GEO::Z3::M::BOROUGH::TOWER_HAMLETS", name:"Tower Hamlets", type:"borough", inner_outer:"INNER"} - {id:"GBR-LON::GEO::Z3::M::BOROUGH::WANDSWORTH", name:"Wandsworth", type:"borough", inner_outer:"INNER"} - {id:"GBR-LON::GEO::Z3::M::BOROUGH::WESTMINSTER", name:"Westminster", type:"borough", inner_outer:"INNER"} # OUTER - {id:"GBR-LON::GEO::Z3::M::BOROUGH::BARKING_DAGENHAM", name:"Barking and Dagenham", type:"borough", inner_outer:"OUTER"} - {id:"GBR-LON::GEO::Z3::M::BOROUGH::BARNET", name:"Barnet", type:"borough", inner_outer:"OUTER"} - {id:"GBR-LON::GEO::Z3::M::BOROUGH::BEXLEY", name:"Bexley", type:"borough", inner_outer:"OUTER"} - {id:"GBR-LON::GEO::Z3::M::BOROUGH::BRENT", name:"Brent", type:"borough", inner_outer:"OUTER"} - {id:"GBR-LON::GEO::Z3::M::BOROUGH::BROMLEY", name:"Bromley", type:"borough", inner_outer:"OUTER"} - {id:"GBR-LON::GEO::Z3::M::BOROUGH::CROYDON", name:"Croydon", type:"borough", inner_outer:"OUTER"} - {id:"GBR-LON::GEO::Z3::M::BOROUGH::EALING", name:"Ealing", type:"borough", inner_outer:"OUTER"} - {id:"GBR-LON::GEO::Z3::M::BOROUGH::ENFIELD", name:"Enfield", type:"borough", inner_outer:"OUTER"} - {id:"GBR-LON::GEO::Z3::M::BOROUGH::HARINGEY", name:"Haringey", type:"borough", inner_outer:"OUTER"} - {id:"GBR-LON::GEO::Z3::M::BOROUGH::HARROW", name:"Harrow", type:"borough", inner_outer:"OUTER"} - {id:"GBR-LON::GEO::Z3::M::BOROUGH::HAVERING", name:"Havering", type:"borough", inner_outer:"OUTER"} - {id:"GBR-LON::GEO::Z3::M::BOROUGH::HILLINGDON", name:"Hillingdon", type:"borough", inner_outer:"OUTER"} - {id:"GBR-LON::GEO::Z3::M::BOROUGH::HOUNSLOW", name:"Hounslow", type:"borough", inner_outer:"OUTER"} - {id:"GBR-LON::GEO::Z3::M::BOROUGH::KINGSTON_UPON_THAMES", name:"Kingston upon Thames", type:"borough", inner_outer:"OUTER"} - {id:"GBR-LON::GEO::Z3::M::BOROUGH::MERTON", name:"Merton", type:"borough", inner_outer:"OUTER"} - {id:"GBR-LON::GEO::Z3::M::BOROUGH::NEWHAM", name:"Newham", type:"borough", inner_outer:"OUTER"} - {id:"GBR-LON::GEO::Z3::M::BOROUGH::REDBRIDGE", name:"Redbridge", type:"borough", inner_outer:"OUTER"} - {id:"GBR-LON::GEO::Z3::M::BOROUGH::RICHMOND_UPON_THAMES", name:"Richmond upon Thames", type:"borough", inner_outer:"OUTER"} - {id:"GBR-LON::GEO::Z3::M::BOROUGH::SUTTON", name:"Sutton", type:"borough", inner_outer:"OUTER"} - {id:"GBR-LON::GEO::Z3::M::BOROUGH::WALTHAM_FOREST", name:"Waltham Forest", type:"borough", inner_outer:"OUTER"}
03F) Example borough pages (3 fully-formed templates you can clone)
Example 1 — CAMDEN (template filled with structure; valves left for auto-build)
GBR-LON::GEO::Z3::M::BOROUGH::CAMDEN: name: "Camden" type: "borough" inner_outer: "INNER" valves: AUTO_TOP: {N: 8, by: "VALVE_SCORE", list: []} SEED_CRITICAL: list: - "GBR-LON::TRAN::Z2::VALVE::KINGS_CROSS_STPANCRAS" # seed only; score decides rank - "GBR-LON::TRAN::Z2::VALVE::EUSTON" corridor_binds: PRIMARY: ["GBR-LON::TRAN::Z4::M::CORR.TUBE.NORTHERN", "GBR-LON::TRAN::Z4::M::CORR.ELZ.TRUNK"] SECONDARY: [] REROUTE_ESCAPES: [] thames_constraint: {has_thames_edge: false, crossing_valves: []} sensors: S.borough_queue_index: {range: "0..100"} S.borough_delay_delta: {unit: "minutes"} S.valve_P0_count: {unit: "count"} S.corridor_P0_count: {unit: "count"} phase_rules: P1_TRIPWIRE: "use PHASE_TRIPWIRES.P1_TRIPWIRE_TEMPLATE" P0_TRIPWIRE: "use PHASE_TRIPWIRES.P0_TRIPWIRE_TEMPLATE" repair_router: - "stabilise King's Cross/Euston queue surfaces first" - "protect corridor switches; reroute to escape corridors" - "stitch via staged headway tightening" failure_mode_trace: - "hub shock -> queue -> corridor spill -> city coupling"
Example 2 — TOWER_HAMLETS (Thames-edge borough)
GBR-LON::GEO::Z3::M::BOROUGH::TOWER_HAMLETS: name: "Tower Hamlets" type: "borough" inner_outer: "INNER" valves: AUTO_TOP: {N: 8, by: "VALVE_SCORE", list: []} SEED_CRITICAL: list: - "GBR-LON::TRAN::Z2::VALVE::CANARY_WHARF" - "GBR-LON::TRAN::Z2::VALVE::LIVERPOOL_STREET" corridor_binds: PRIMARY: ["GBR-LON::TRAN::Z4::M::CORR.ELZ.TRUNK", "GBR-LON::TRAN::Z4::M::CORR.TUBE.JUBILEE", "GBR-LON::TRAN::Z4::M::CORR.DLR.CORE"] SECONDARY: [] REROUTE_ESCAPES: [] thames_constraint: has_thames_edge: true crossing_valves: [] # populate from Crossings page later sensors: {S.borough_queue_index:{range:"0..100"}, S.borough_delay_delta:{unit:"minutes"}, S.valve_P0_count:{unit:"count"}, S.corridor_P0_count:{unit:"count"}} phase_rules: {P1_TRIPWIRE:"use template", P0_TRIPWIRE:"use template"} repair_router: - "protect cross-river edges first (avoid north/south fragmentation)" - "keep Canary Wharf + City-core coupling stable (finance-hour spike)" failure_mode_trace: - "crossing disruption -> DLR/Jubilee overload -> queue amplification"
Example 3 — HILLINGDON (airport-access critical)
GBR-LON::GEO::Z3::M::BOROUGH::HILLINGDON: name: "Hillingdon" type: "borough" inner_outer: "OUTER" valves: AUTO_TOP: {N: 8, by: "VALVE_SCORE", list: []} SEED_CRITICAL: list: - "GBR-LON::TRAN::Z2::VALVE::HEATHROW_ACCESS_CLUSTER" # define as composite valve later corridor_binds: PRIMARY: ["GBR-LON::TRAN::Z4::M::CORR.ELZ.WEST_BRANCH_HEATHROW", "GBR-LON::TRAN::Z4::M::CORR.TUBE.PICCADILLY"] SECONDARY: [] REROUTE_ESCAPES: [] thames_constraint: {has_thames_edge: false, crossing_valves: []} sensors: {S.borough_queue_index:{range:"0..100"}, S.borough_delay_delta:{unit:"minutes"}, S.valve_P0_count:{unit:"count"}, S.corridor_P0_count:{unit:"count"}} phase_rules: {P1_TRIPWIRE:"use template", P0_TRIPWIRE:"use template"} repair_router: - "prioritise airport access reliability during shocks" - "keep alternate corridor ready (Piccadilly <-> Elizabeth branch)" failure_mode_trace: - "airport incident -> corridor overload -> citywide delay propagation"
Continuing London City OS Almost-Code v0.1 with Section 04: Cross-Thames Crossings Pack — this turns the River Thames into a computable hard routing gate (bridges/tunnels/foot-tunnels/ferry/cable) and binds it to Z4 road/bus corridors. Key TfL-managed crossings include Silvertown Tunnel (opened 7 Apr 2025) and charging for both Silvertown + Blackwall Tunnel, plus the Woolwich Ferry and the IFS Cloud Cable Car. (Transport for London)
(Important: the Greenwich/Woolwich foot tunnels are not owned/operated by Transport for London; they’re maintained by boroughs, with public status pages published by Royal Borough of Greenwich. (Transport for London)
Bridge enumeration reference: Port of London Authority. (pla.co.uk)
River-bus pier system reference (operator): Uber Boat by Thames Clippers (24 piers). (thamesclippers.com)
# ============================================================# LONDON CITY OS — ALMOST-CODE (CANON) — v0.1# SECTION 04 — CROSS-THAMES CROSSINGS PACK (Z3 valves + Z4 binds)# ============================================================CANON_VERSION: "v0.1"PLACE: place_id: "GBR-LON" place_name: "London" lane: "TRAN" z_level: "Z3" pack: "THAMES_CROSSINGS"DEFINITION_LOCK: THAMES_CROSSING_VALVE_Z3: > Any physical link that permits movement across the Thames boundary surface (bridge, tunnel, foot-tunnel, ferry, cable). A crossing is a Valve because it gates flow, concentrates load, and couples failure across boroughs. THAMES_CROSSING_CLUSTER: > A spatially-near group of crossings whose failures become common-mode events (queues + reroute spillover). Clusters are the correct unit for truncation control. CROSSING_BIND_EDGE: > An explicit binding from a crossing valve to road/bus/rail corridors with a reroute cost and penalty.CONSTRAINT: GBR-LON::TRAN::Z3::CONSTRAINT.THAMES_RIVER_CUT: type: "HARD_TOPOLOGY_CONSTRAINT" effect: - "N/S routing requires CROSSING valves; capacity is not continuous." - "Any major crossing outage produces upstream queue amplification and multi-borough delay spikes." control_priority: - "protect emergency mobility first" - "protect east tunnel pair first (highest common-mode congestion risk)"
04A) Schema — Crossing Valves + Cluster + Bind Edges
SCHEMA: # --- crossing valve --- GBR-LON::TRAN::Z3::VALVE.CROSSING::<TOKEN>: name_public: "<NAME>" mode: [ROAD_BRIDGE|ROAD_TUNNEL|RAIL_BRIDGE|RAIL_TUNNEL|FOOT_BRIDGE|FOOT_TUNNEL|FERRY|CABLE] operator: [TfL|BOROUGH|NETWORK_RAIL|PRIVATE|MIXED] boroughs_north: ["<BOROUGH_TOKEN>"] boroughs_south: ["<BOROUGH_TOKEN>"] cluster: "WEST|CENTRAL|EAST|OUTER|STRATEGIC" corridor_binds: road_primary: ["GBR-LON::TRAN::Z4::CORR.ROAD::<TOKEN>"] road_secondary: ["GBR-LON::TRAN::Z4::CORR.ROAD::<TOKEN>"] bus_primary: ["GBR-LON::TRAN::Z4::CORR.BUS::<TOKEN>"] rail_primary: ["GBR-LON::TRAN::Z4::CORR.RAIL::<TOKEN>"] restrictions: height_m: "<nullable>" width_m: "<nullable>" weight_tonnes: "<nullable>" tolling: "NONE|TIME_BASED|CONGESTION|OTHER" sensors_required: - S.crossing_availability - S.queue_length - S.travel_time_delta - S.incident_rate - S.reroute_pressure phase_tripwires: P1: "<rule>" P0: "<rule>" truncation_actions: - "<action>" stitching_actions: - "<action>" # --- crossing cluster --- GBR-LON::TRAN::Z3::CLUSTER.THAMES::<CLUSTER_TOKEN>: crossings: ["GBR-LON::TRAN::Z3::VALVE.CROSSING::<TOKEN>"] cluster_sensors: - S.cluster_P0_count - S.cluster_delay_delta - S.cluster_reroute_overflow control_policy: - "meter at cluster edges" - "shed demand before hub-crush" - "push explicit reroute map to escape corridors" # --- bind edge --- GBR-LON::TRAN::Z3::EDGE.CROSSING_BIND::<CROSSING_TOKEN>__<CORR_TOKEN>: type: "CROSSING_BIND_EDGE" reroute_cost_class: [LOW|MED|HIGH] capacity_penalty: [LOW|MED|HIGH] fail_coupling: [LOW|MED|HIGH]
04B) Authoritative “import rules” (how to become complete without hand-listing 200+ crossings)
IMPORT_RULES: R1_BRIDGES_ENUMERATION: source_hint: "Port of London Authority bridges reference page" do: - "Tokenise each named Thames bridge into CROSSING valves with mode ROAD_BRIDGE/RAIL_BRIDGE/FOOT_BRIDGE." - "Assign cluster by longitude bands (WEST/CENTRAL/EAST)." note: "This keeps canonical IDs stable while you expand the registry later." # cite outside code: PLA Thames bridges page R2_TUNNELS_FOOT_TUNNELS: source_hint: "Borough foot-tunnel pages + TfL tunnel charging pages" do: - "Create explicit valves for: Rotherhithe Tunnel, Blackwall Tunnel, Silvertown Tunnel, Greenwich Foot Tunnel, Woolwich Foot Tunnel." - "Attach operator correctly (TfL vs BOROUGH)." R3_FERRY_CABLE_RIVERBUS: source_hint: "TfL Woolwich Ferry page; TfL cable car page; Thames Clippers route map" do: - "Create FERRY valve (Woolwich)." - "Create CABLE valve (IFS Cloud Cable Car)." - "Optionally create RIVER_PIER valves as sub-valves (Z2) if you later add a River Services pack."
04C) Core crossing registry (London-critical gates)
This is the minimum critical set that makes the Thames constraint computable for London shock routing. You can expand later via
IMPORT_RULES.R1_BRIDGES_ENUMERATION.
CROSSING_REGISTRY_CORE: # --- EAST: highest congestion + common-mode coupling --- GBR-LON::TRAN::Z3::VALVE.CROSSING.BLACKWALL_TUNNEL: name_public: "Blackwall Tunnel" mode: ROAD_TUNNEL operator: TfL boroughs_north: ["TOWER_HAMLETS"] boroughs_south: ["GREENWICH"] cluster: "EAST" corridor_binds: road_primary: ["GBR-LON::TRAN::Z4::CORR.ROAD.A102_BLACKWALL_APPROACH"] road_secondary: ["GBR-LON::TRAN::Z4::CORR.ROAD.A12_POPLAR_FEED"] bus_primary: ["GBR-LON::TRAN::Z4::CORR.BUS.CROSSRIVER_EAST"] rail_primary: [] restrictions: {height_m: null, width_m: null, weight_tonnes: null, tolling: "TIME_BASED"} sensors_required: [S.crossing_availability, S.queue_length, S.travel_time_delta, S.reroute_pressure] phase_tripwires: P1: "queue_length high OR travel_time_delta > T1 for 2 windows" P0: "closure OR travel_time_delta > T2 OR queue_length extreme" truncation_actions: - "activate metering north+south approaches" - "push reroute to CENTRAL bridge band" - "protect emergency movement lanes" stitching_actions: - "restore flow with staged ramp metering" - "hold toll messaging + route guidance until P3 band" GBR-LON::TRAN::Z3::VALVE.CROSSING.SILVERTOWN_TUNNEL: name_public: "Silvertown Tunnel" mode: ROAD_TUNNEL operator: TfL boroughs_north: ["NEWHAM"] boroughs_south: ["GREENWICH"] cluster: "EAST" corridor_binds: road_primary: ["GBR-LON::TRAN::Z4::CORR.ROAD.A1026_LOWER_LEA_CROSSING"] road_secondary: ["GBR-LON::TRAN::Z4::CORR.ROAD.A13_EAST_FEED"] bus_primary: ["GBR-LON::TRAN::Z4::CORR.BUS.CROSSRIVER_EAST"] rail_primary: [] restrictions: {height_m: null, width_m: null, weight_tonnes: null, tolling: "TIME_BASED"} sensors_required: [S.crossing_availability, S.queue_length, S.travel_time_delta, S.reroute_pressure] phase_tripwires: P1: "queue_length high OR travel_time_delta > T1 for 2 windows" P0: "closure OR travel_time_delta > T2" truncation_actions: - "route-balance with Blackwall (treat as paired cluster gate)" - "divert freight to designated corridors" stitching_actions: - "paired re-opening protocol with Blackwall" - "watch reroute overflow onto Tower Bridge" GBR-LON::TRAN::Z3::VALVE.CROSSING.ROTHERHITHE_TUNNEL: name_public: "Rotherhithe Tunnel" mode: ROAD_TUNNEL operator: TfL boroughs_north: ["TOWER_HAMLETS"] boroughs_south: ["SOUTHWARK"] cluster: "EAST" corridor_binds: road_primary: ["GBR-LON::TRAN::Z4::CORR.ROAD.A101_ROTHERHITHE"] road_secondary: ["GBR-LON::TRAN::Z4::CORR.ROAD.CENTRAL_EAST_GRID"] bus_primary: ["GBR-LON::TRAN::Z4::CORR.BUS.CROSSRIVER_EAST"] rail_primary: [] restrictions: {height_m: 2.0, width_m: 2.0, weight_tonnes: 2.0, tolling: "NONE"} sensors_required: [S.crossing_availability, S.queue_length, S.travel_time_delta] phase_tripwires: P1: "incident_rate elevated OR travel_time_delta > T1" P0: "closure OR queue_length extreme" truncation_actions: - "enforce restriction compliance routing" - "divert to bridge band or east tunnel pair" stitching_actions: - "staged reopening with enforcement + ventilation checks" GBR-LON::TRAN::Z3::VALVE.CROSSING.WOOLWICH_FERRY: name_public: "Woolwich Ferry" mode: FERRY operator: TfL boroughs_north: ["NEWHAM"] boroughs_south: ["GREENWICH"] cluster: "EAST" corridor_binds: road_primary: ["GBR-LON::TRAN::Z4::CORR.ROAD.WOOLWICH_APPROACH"] road_secondary: ["GBR-LON::TRAN::Z4::CORR.ROAD.EAST_RIVER_EDGE"] bus_primary: ["GBR-LON::TRAN::Z4::CORR.BUS.CROSSRIVER_EAST"] rail_primary: [] restrictions: {height_m: null, width_m: null, weight_tonnes: null, tolling: "NONE"} sensors_required: [S.crossing_availability, S.queue_length, S.capacity_utilization, S.travel_time_delta] phase_tripwires: P1: "capacity_utilization > U1 OR queue_length high" P0: "service suspension OR queue_length extreme" truncation_actions: - "activate queue control + diversion signage" - "shift demand to rail corridors (if available)" stitching_actions: - "restore timetable with staged loading control" GBR-LON::TRAN::Z3::VALVE.CROSSING.GREENWICH_FOOT_TUNNEL: name_public: "Greenwich Foot Tunnel" mode: FOOT_TUNNEL operator: BOROUGH boroughs_north: ["TOWER_HAMLETS"] boroughs_south: ["GREENWICH"] cluster: "EAST" corridor_binds: road_primary: [] road_secondary: [] bus_primary: [] rail_primary: ["GBR-LON::TRAN::Z4::CORR.RAIL.EAST_DLR_JUBILEE_PROXY"] restrictions: {height_m: null, width_m: null, weight_tonnes: null, tolling: "NONE"} sensors_required: [S.crossing_availability, S.queue_length, S.lift_availability] phase_tripwires: P1: "lift_availability degraded OR queue_length high" P0: "closure OR lift_outage prolonged" truncation_actions: - "push signed alternates to nearby rail/river nodes" stitching_actions: - "reopen with lift + stair flow separation" GBR-LON::TRAN::Z3::VALVE.CROSSING.WOOLWICH_FOOT_TUNNEL: name_public: "Woolwich Foot Tunnel" mode: FOOT_TUNNEL operator: BOROUGH boroughs_north: ["NEWHAM"] boroughs_south: ["GREENWICH"] cluster: "EAST" corridor_binds: road_primary: [] road_secondary: [] bus_primary: [] rail_primary: ["GBR-LON::TRAN::Z4::CORR.RAIL.DLR_WOOLWICH_PROXY"] restrictions: {height_m: null, width_m: null, weight_tonnes: null, tolling: "NONE"} sensors_required: [S.crossing_availability, S.queue_length, S.lift_availability] phase_tripwires: P1: "lift_availability degraded" P0: "closure OR lift_outage prolonged" truncation_actions: - "shift pedestrian demand to ferry/rail" stitching_actions: - "reopen with managed lift/stairs priority" GBR-LON::TRAN::Z3::VALVE.CROSSING.IFS_CLOUD_CABLE_CAR: name_public: "IFS Cloud Cable Car" mode: CABLE operator: TfL boroughs_north: ["NEWHAM"] boroughs_south: ["GREENWICH"] cluster: "EAST" corridor_binds: road_primary: [] road_secondary: [] bus_primary: [] rail_primary: ["GBR-LON::TRAN::Z4::CORR.RAIL.DLR_JUBILEE_PROXY"] restrictions: {height_m: null, width_m: null, weight_tonnes: null, tolling: "NONE"} sensors_required: [S.crossing_availability, S.capacity_utilization, S.weather_risk] phase_tripwires: P1: "weather_risk elevated OR availability intermittent" P0: "suspended service" truncation_actions: - "announce immediate alternates" stitching_actions: - "restore with weather gating policy"
04D) Z4 Road/BUS corridors (minimal set for Thames gating)
CORRIDOR_REGISTRY_THAMES_BIND: GBR-LON::TRAN::Z4::CORR.ROAD.A102_BLACKWALL_APPROACH: mode: ROAD_TRUNK topology: RADIAL note: "Primary feed to Blackwall/Silvertown tunnel system." GBR-LON::TRAN::Z4::CORR.ROAD.A12_POPLAR_FEED: mode: ROAD_TRUNK topology: GRID_SPINE note: "North-side distribution spine feeding east tunnel approaches." GBR-LON::TRAN::Z4::CORR.ROAD.A1026_LOWER_LEA_CROSSING: mode: ROAD_TRUNK topology: GRID_SPINE note: "Silvertown north portal distribution to A13/local east grid." GBR-LON::TRAN::Z4::CORR.ROAD.A13_EAST_FEED: mode: ROAD_TRUNK topology: GRID_SPINE note: "East distribution toward Docklands/river edge approaches." GBR-LON::TRAN::Z4::CORR.ROAD.A101_ROTHERHITHE: mode: ROAD_TRUNK topology: RADIAL note: "Rotherhithe tunnel feed; constrained by size restrictions." GBR-LON::TRAN::Z4::CORR.BUS.CROSSRIVER_EAST: mode: BUS_TRUNK topology: GRID_SPINE note: "Bus cross-river reliability surface for east cluster (paired with tunnel availability)."
04E) Cluster packs + control policy (where truncation actually happens)
CLUSTERS: GBR-LON::TRAN::Z3::CLUSTER.THAMES::EAST_TUNNEL_PAIR: crossings: - GBR-LON::TRAN::Z3::VALVE.CROSSING.BLACKWALL_TUNNEL - GBR-LON::TRAN::Z3::VALVE.CROSSING.SILVERTOWN_TUNNEL cluster_sensors: [S.cluster_P0_count, S.cluster_delay_delta, S.cluster_reroute_overflow] control_policy: - "treat as paired gate: balance demand across both" - "prevent reroute overflow from concentrating onto single free bridge band" GBR-LON::TRAN::Z3::CLUSTER.THAMES::EAST_PEDESTRIAN: crossings: - GBR-LON::TRAN::Z3::VALVE.CROSSING.GREENWICH_FOOT_TUNNEL - GBR-LON::TRAN::Z3::VALVE.CROSSING.WOOLWICH_FOOT_TUNNEL cluster_sensors: [S.cluster_P0_count, S.cluster_delay_delta] control_policy: - "prioritise lift uptime messaging + signed alternates" - "when a tunnel closes, push immediate reroute to ferry/rail/riverbus" GBR-LON::TRAN::Z3::CLUSTER.THAMES::EAST_RIVER_SERVICE: crossings: - GBR-LON::TRAN::Z3::VALVE.CROSSING.WOOLWICH_FERRY - GBR-LON::TRAN::Z3::VALVE.CROSSING.IFS_CLOUD_CABLE_CAR cluster_sensors: [S.cluster_P0_count, S.cluster_delay_delta] control_policy: - "queue control + capacity metering" - "weather gating for cable; tide/fog gating for ferry"
04F) Sensor pack + failure mode trace (required canon)
SENSORS_THAMES: S.crossing_availability: unit: "state" values: ["OPEN","RESTRICTED","CLOSED"] S.queue_length: unit: "vehicles_or_people_est" P3: "<= Q1" P2: "Q1–Q2" P1: "Q2–Q3" P0: ">= Q3" S.travel_time_delta: unit: "minutes_over_baseline" P3: "<= 5" P2: "5–15" P1: "15–40" P0: ">= 40" S.reroute_pressure: unit: "overflow_index" P3: "<= R1" P2: "R1–R2" P1: "R2–R3" P0: ">= R3"FAILURE_MODE_TRACE: TRACE_EAST_TUNNEL_COMMON_MODE: chain: - "Blackwall/Silvertown degradation ->" - "queue amplification ->" - "reroute overflow onto free bridge band ->" - "hub congestion surfaces -> multi-borough P2→P1 drift" repair: - "truncate: paired metering + explicit reroute map + protect emergency movement" - "stitch: staged reopening + keep metering until P3 restored" TRACE_FOOT_TUNNEL_OUTAGE: chain: - "foot tunnel closure/lift failure ->" - "ped demand shifts to ferry/rail ->" - "local queue + access delay ->" - "borough pocket P1 instability" repair: - "truncate: immediate alternates + crowd control" - "stitch: staged reopening + lift uptime prioritisation"
Source locks used in this section (for your citations log)
- Silvertown Tunnel open date + Blackwall/Silvertown charging: (Transport for London)
- Woolwich Ferry (TfL): (Transport for London)
- Rotherhithe Tunnel restrictions (TfL): (Transport for London)
- Foot tunnels borough responsibility/status pages: (Transport for London)
- Bridges reference page (PLA): (pla.co.uk)
- River-bus pier system (operator map + 24 piers claim): (thamesclippers.com)
- Cable car crosses Thames between Greenwich Peninsula and Royal Docks (TfL): (Transport for London)
# ============================================================# LONDON CITY OS — ALMOST-CODE (CANON) — v0.1# SECTION 05 — CENTRAL BRIDGE BAND PACK (Z3 valves + Z4 binds)# ============================================================CANON_VERSION: "v0.1"PLACE: place_id: "GBR-LON" place_name: "London" lane: "TRAN" z_level: "Z3" pack: "THAMES_BRIDGE_BANDS"SOURCE_LOCKS: - id: "PLA_BRIDGES_ENUM" note: "Bridge enumeration reference for Thames bridges" cite: turn0search0 - id: "CBF_FIVE_BRIDGES" note: "City Bridge Foundation maintains five non-rail bridges (London, Blackfriars, Southwark, Tower, Millennium)" cite: turn0search1 - id: "TOWER_BRIDGE_OWNERSHIP" note: "Tower Bridge ownership/management by City Bridge Foundation (Bridge House Estates historic name)" cite: turn0search6 - id: "RIVER_CROSSINGS_OWNERSHIP_MIX" note: "Multiple owners fund/maintain crossings: TfL, Bridge House Estates/CBF, Network Rail, boroughs" cite: turn0search3 - id: "BRIDGE_ASSET_RESPONSIBILITY_EXAMPLES" note: "Examples of who is responsible for several Thames assets (context for operator fields)" cite: turn0search11 - id: "TOWER_BRIDGE_FACTS" note: "Tower Bridge maintained by City Bridge Foundation/City of London Corporation; basic facts" cite: turn0search2DEFINITION_LOCK: BRIDGE_BAND_Z3: > A contiguous set of adjacent Thames bridges that functions like a shared cross-river capacity strip. In shocks, flow reroutes into a band, producing common-mode queues and structural load concentration. BRIDGE_VALVE_Z3: > A bridge is a Valve because it gates cross-river flow and couples two borough pockets. It can be metered, restricted, or partially closed as a truncation control. HERITAGE_FATIGUE_GUARD: > A policy layer that protects vulnerable/heritage bridges from overload by shifting demand to higher-capacity assets before Phase drift becomes irreversible.CONSTRAINT: GBR-LON::TRAN::Z3::CONSTRAINT.THAMES_RIVER_CUT: type: "HARD_TOPOLOGY_CONSTRAINT" inherits: "SECTION_04" effect: - "Bridges are the dominant free reroute surface when tunnels are constrained/charged." - "Band overload is a predictable failure mode; treat bands as control units." owner_mix_note: "Crossings have mixed ownership; maintenance responsibility follows ownership." cite: turn0search3# ------------------------------------------------------------# 05A) Schema — Bridge Valves (specialised from SECTION_04)# ------------------------------------------------------------SCHEMA: GBR-LON::TRAN::Z3::VALVE.BRIDGE::<TOKEN>: name_public: "<NAME>" mode: [ROAD_BRIDGE|FOOT_BRIDGE|RAIL_BRIDGE|MIXED] owner_operator: [CBF|TfL|BOROUGH|COUNCIL|NETWORK_RAIL|MIXED|UNKNOWN] boroughs_north: ["<BOROUGH_TOKEN>"] boroughs_south: ["<BOROUGH_TOKEN>"] band: "WEST|CENTRAL|EAST|OUTER" band_role: [PRIMARY_STRIP|RELIEF_STRIP|LOCAL_ONLY|HERITAGE_SENSITIVE] corridor_binds: road_primary: ["GBR-LON::TRAN::Z4::CORR.ROAD::<TOKEN>"] bus_primary: ["GBR-LON::TRAN::Z4::CORR.BUS::<TOKEN>"] rail_primary: ["GBR-LON::TRAN::Z4::CORR.RAIL::<TOKEN>"] cycle_primary: ["GBR-LON::TRAN::Z4::CORR.CYCLE::<TOKEN>"] restrictions: weight_limit_t: "<nullable>" speed_limit_mph: "<nullable>" lift_events: true|false # bascule openings (Tower Bridge) pedestrian_only: true|false sensors_required: - S.bridge_availability - S.bridge_queue_index - S.bridge_travel_time_delta - S.bridge_overweight_events - S.band_reroute_pressure - S.lift_state # only if lift_events=true phase_tripwires: P1: "<rule>" P0: "<rule>" truncation_actions: - "<action>" stitching_actions: - "<action>" GBR-LON::TRAN::Z3::BAND.THAMES::<BAND_TOKEN>: bridges: ["GBR-LON::TRAN::Z3::VALVE.BRIDGE::<TOKEN>"] band_sensors: - S.band_P0_count - S.band_delay_delta - S.band_reroute_pressure - S.band_heritage_risk control_policy: - "meter at approach corridors" - "apply HERITAGE_FATIGUE_GUARD if heritage bridges are in band" - "push explicit reroute map to alternate bands + tunnels + rail"# ------------------------------------------------------------# 05B) Sensor pack (Bridge Band instrumentation)# ------------------------------------------------------------SENSORS_BRIDGE_BAND: S.bridge_availability: values: ["OPEN","RESTRICTED","CLOSED"] S.bridge_queue_index: unit: "0..100" P3: "0..25" P2: "26..55" P1: "56..80" P0: "81..100" S.bridge_travel_time_delta: unit: "minutes_over_baseline" P3: "<= 5" P2: "5–15" P1: "15–40" P0: ">= 40" S.bridge_overweight_events: unit: "events_per_window" P3: "0" P2: "1..2" P1: "3..5" P0: ">= 6" S.band_reroute_pressure: unit: "overflow_index" P3: "<= R1" P2: "R1–R2" P1: "R2–R3" P0: ">= R3" S.lift_state: values: ["DOWN","RAISING","UP","LOWERING"] note: "Only relevant for bascule bridges (e.g., Tower Bridge)." S.band_heritage_risk: unit: "0..100" P3: "0..25" P2: "26..55" P1: "56..80" P0: "81..100"# ------------------------------------------------------------# 05C) Phase tripwires (Band control logic)# ------------------------------------------------------------PHASE_TRIPWIRES_BRIDGE: P1_TRIPWIRE_TEMPLATE: if: - "S.bridge_queue_index > 55 for 2 windows OR S.bridge_travel_time_delta > 15" then: - "activate approach metering (signals + bus priority + turn restrictions)" - "push reroute away from HERITAGE_SENSITIVE bridges" - "shift demand to tunnels/rail where feasible" P0_TRIPWIRE_TEMPLATE: if: - "S.bridge_availability = CLOSED" - "OR (S.bridge_queue_index > 80 AND S.band_reroute_pressure >= R3)" then: - "truncate: close noncritical turns feeding the band" - "protect emergency lanes first" - "shed demand early to avoid crush at bridgeheads" - "publish band-level reroute map (not bridge-by-bridge)"# ------------------------------------------------------------# 05D) Control policy — HERITAGE_FATIGUE_GUARD# ------------------------------------------------------------CONTROL_POLICY: HERITAGE_FATIGUE_GUARD: goal: - "Prevent structurally sensitive bridges from becoming the default free reroute surface." triggers: - "S.band_reroute_pressure >= R2 OR S.band_heritage_risk >= 56" actions: - "divert heavy vehicles away (weight-routing)" - "prefer higher-capacity corridors/tunnels before central heritage bridges" - "use time-slicing: allow flows in pulses to prevent continuous overload" notes: - "Tower Bridge has explicit speed/weight limits; treat as HERITAGE_SENSITIVE." cite: turn0search2# ------------------------------------------------------------# 05E) Minimal bridge registry — CENTRAL band core# - Use PLA enumeration to expand later.# - Explicitly lock the City Bridge Foundation five bridges as a sub-pack.# ------------------------------------------------------------BRIDGE_REGISTRY_CORE: # --- City Bridge Foundation (5 bridges maintained) --- # CBF maintains: London Bridge, Blackfriars Bridge, Southwark Bridge, Tower Bridge, Millennium Bridge. # cite: turn0search1 GBR-LON::TRAN::Z3::VALVE.BRIDGE.LONDON_BRIDGE: name_public: "London Bridge" mode: ROAD_BRIDGE owner_operator: CBF boroughs_north: ["CITY_OF_LONDON"] boroughs_south: ["SOUTHWARK"] band: "CENTRAL" band_role: "PRIMARY_STRIP" corridor_binds: {road_primary:["GBR-LON::TRAN::Z4::CORR.ROAD.CENTRAL_CORE"], bus_primary:["GBR-LON::TRAN::Z4::CORR.BUS.CENTRAL_CORE"], rail_primary:[], cycle_primary:[]} restrictions: {weight_limit_t: null, speed_limit_mph: null, lift_events: false, pedestrian_only: false} sensors_required: [S.bridge_availability, S.bridge_queue_index, S.bridge_travel_time_delta, S.band_reroute_pressure] phase_tripwires: {P1:"use template", P0:"use template"} truncation_actions: - "meter bridgehead intersections (both banks)" - "divert heavy vehicles if band pressure rises" stitching_actions: - "restore normal turns in stages; keep bus priority until P3" GBR-LON::TRAN::Z3::VALVE.BRIDGE.BLACKFRIARS_BRIDGE: name_public: "Blackfriars Bridge" mode: ROAD_BRIDGE owner_operator: CBF boroughs_north: ["CITY_OF_LONDON"] boroughs_south: ["SOUTHWARK"] band: "CENTRAL" band_role: "PRIMARY_STRIP" corridor_binds: {road_primary:["GBR-LON::TRAN::Z4::CORR.ROAD.CENTRAL_CORE"], bus_primary:["GBR-LON::TRAN::Z4::CORR.BUS.CENTRAL_CORE"], rail_primary:[], cycle_primary:[]} restrictions: {weight_limit_t: null, speed_limit_mph: null, lift_events: false, pedestrian_only: false} sensors_required: [S.bridge_availability, S.bridge_queue_index, S.bridge_travel_time_delta, S.band_reroute_pressure] phase_tripwires: {P1:"use template", P0:"use template"} truncation_actions: ["approach metering + bus priority"] stitching_actions: ["staged de-metering"] GBR-LON::TRAN::Z3::VALVE.BRIDGE.SOUTHWARK_BRIDGE: name_public: "Southwark Bridge" mode: ROAD_BRIDGE owner_operator: CBF boroughs_north: ["CITY_OF_LONDON"] boroughs_south: ["SOUTHWARK"] band: "CENTRAL" band_role: "RELIEF_STRIP" corridor_binds: {road_primary:["GBR-LON::TRAN::Z4::CORR.ROAD.CENTRAL_CORE"], bus_primary:["GBR-LON::TRAN::Z4::CORR.BUS.CENTRAL_CORE"], rail_primary:[], cycle_primary:[]} restrictions: {weight_limit_t: null, speed_limit_mph: null, lift_events: false, pedestrian_only: false} sensors_required: [S.bridge_availability, S.bridge_queue_index, S.bridge_travel_time_delta, S.band_reroute_pressure] phase_tripwires: {P1:"use template", P0:"use template"} truncation_actions: ["use as relief only when London Bridge saturates"] stitching_actions: ["release relief routing when P3 returns"] GBR-LON::TRAN::Z3::VALVE.BRIDGE.MILLENNIUM_BRIDGE: name_public: "Millennium Bridge" mode: FOOT_BRIDGE owner_operator: CBF boroughs_north: ["CITY_OF_LONDON"] boroughs_south: ["SOUTHWARK"] band: "CENTRAL" band_role: "LOCAL_ONLY" corridor_binds: {road_primary:[], bus_primary:[], rail_primary:[], cycle_primary:["GBR-LON::TRAN::Z4::CORR.CYCLE.CENTRAL_RIVERWALK"]} restrictions: {weight_limit_t: null, speed_limit_mph: null, lift_events: false, pedestrian_only: true} sensors_required: [S.bridge_availability, S.bridge_queue_index, S.band_reroute_pressure] phase_tripwires: P1: "ped_queue_index > 55" P0: "closure" truncation_actions: ["ped flow metering + alternate footbridges signage"] stitching_actions: ["reopen with one-way flow if needed"] GBR-LON::TRAN::Z3::VALVE.BRIDGE.TOWER_BRIDGE: name_public: "Tower Bridge" mode: ROAD_BRIDGE owner_operator: CBF boroughs_north: ["TOWER_HAMLETS"] boroughs_south: ["SOUTHWARK"] band: "EAST" band_role: "HERITAGE_SENSITIVE" corridor_binds: {road_primary:["GBR-LON::TRAN::Z4::CORR.ROAD.INNER_RING_EAST"], bus_primary:["GBR-LON::TRAN::Z4::CORR.BUS.INNER_RING_EAST"], rail_primary:[], cycle_primary:[]} restrictions: weight_limit_t: 18 speed_limit_mph: 20 lift_events: true pedestrian_only: false sensors_required: [S.bridge_availability, S.bridge_queue_index, S.bridge_overweight_events, S.band_reroute_pressure, S.lift_state] phase_tripwires: P1: "queue_index > 55 OR lift_state != DOWN" P0: "overweight_events >= 6 OR closure" truncation_actions: - "apply HERITAGE_FATIGUE_GUARD immediately" - "divert heavy vehicles before bridgehead" - "meter approaches during lift cycles" stitching_actions: - "post-lift staged release + continue overweight enforcement" cite: turn0search2 # --- Examples of non-CBF ownership (kept as operator hints; verify/expand later) --- # Ownership mix and examples across TfL / councils / boroughs / Network Rail: cite turn0search3 + turn0search11 GBR-LON::TRAN::Z3::VALVE.BRIDGE.WATERLOO_BRIDGE: name_public: "Waterloo Bridge" mode: ROAD_BRIDGE owner_operator: COUNCIL boroughs_north: ["WESTMINSTER"] boroughs_south: ["LAMBETH"] band: "CENTRAL" band_role: "PRIMARY_STRIP" corridor_binds: {road_primary:["GBR-LON::TRAN::Z4::CORR.ROAD.CENTRAL_CORE"], bus_primary:["GBR-LON::TRAN::Z4::CORR.BUS.CENTRAL_CORE"], rail_primary:[], cycle_primary:[]} restrictions: {weight_limit_t: null, speed_limit_mph: null, lift_events: false, pedestrian_only: false} sensors_required: [S.bridge_availability, S.bridge_queue_index, S.bridge_travel_time_delta, S.band_reroute_pressure] phase_tripwires: {P1:"use template", P0:"use template"} truncation_actions: ["approach metering + keep central band stable"] stitching_actions: ["staged release"] GBR-LON::TRAN::Z3::VALVE.BRIDGE.GOLDEN_JUBILEE_FOOTBRIDGES: name_public: "Golden Jubilee Bridges" mode: FOOT_BRIDGE owner_operator: COUNCIL boroughs_north: ["WESTMINSTER"] boroughs_south: ["LAMBETH"] band: "CENTRAL" band_role: "RELIEF_STRIP" corridor_binds: {road_primary:[], bus_primary:[], rail_primary:[], cycle_primary:["GBR-LON::TRAN::Z4::CORR.CYCLE.CENTRAL_RIVERWALK"]} restrictions: {weight_limit_t: null, speed_limit_mph: null, lift_events: false, pedestrian_only: true} sensors_required: [S.bridge_availability, S.bridge_queue_index, S.band_reroute_pressure] phase_tripwires: {P1:"ped_queue_index > 55", P0:"closure"} truncation_actions: ["ped flow metering + alternate foot crossings"] stitching_actions: ["reopen with flow separation if needed"]# ------------------------------------------------------------# 05F) Bridge bands (WEST / CENTRAL / EAST) — cluster control units# ------------------------------------------------------------BANDS: GBR-LON::TRAN::Z3::BAND.THAMES::CENTRAL: bridges: - GBR-LON::TRAN::Z3::VALVE.BRIDGE.WATERLOO_BRIDGE - GBR-LON::TRAN::Z3::VALVE.BRIDGE.BLACKFRIARS_BRIDGE - GBR-LON::TRAN::Z3::VALVE.BRIDGE.MILLENNIUM_BRIDGE - GBR-LON::TRAN::Z3::VALVE.BRIDGE.SOUTHWARK_BRIDGE - GBR-LON::TRAN::Z3::VALVE.BRIDGE.LONDON_BRIDGE - GBR-LON::TRAN::Z3::VALVE.BRIDGE.GOLDEN_JUBILEE_FOOTBRIDGES band_sensors: [S.band_P0_count, S.band_delay_delta, S.band_reroute_pressure, S.band_heritage_risk] control_policy: - "stabilise CENTRAL first (citywide coupling highest)" - "when tunnels degrade/charge-shift occurs, prevent uncontrolled spill into CENTRAL" - "apply demand shedding upstream before bridgeheads saturate" GBR-LON::TRAN::Z3::BAND.THAMES::EAST: bridges: - GBR-LON::TRAN::Z3::VALVE.BRIDGE.TOWER_BRIDGE band_sensors: [S.band_P0_count, S.band_delay_delta, S.band_reroute_pressure, S.band_heritage_risk] control_policy: - "HERITAGE_FATIGUE_GUARD is always ON for EAST band" - "use EAST only as controlled relief, not default reroute"# ------------------------------------------------------------# 05G) Failure mode traces (canonical)# ------------------------------------------------------------FAILURE_MODE_TRACE: TRACE_TUNNEL_CONSTRAINT_TO_BRIDGE_BAND_OVERLOAD: premise: - "tunnel degradation/charging -> reroute to free bridges" - "band queues -> bridgehead crush -> multi-borough Phase drift" chain: - "EAST tunnel pair stress ->" - "traffic shifts into CENTRAL/EAST bridge bands ->" - "bridgehead intersections saturate ->" - "band_reroute_pressure spikes -> P2→P1 drift" repair: - "truncate: approach metering + upstream demand shed + protect emergency lanes" - "stitch: staged release + keep metering until P3 restored" owner_mix_note: "Control must respect mixed ownership; coordinate via band policy." cite: turn0search3 TRACE_HERITAGE_BRIDGE_OVERLOAD: chain: - "reroute pressure -> overweight events -> structural risk -> forced restrictions/closures" - "closure forces further reroutes -> band cascade" repair: - "truncate early with HERITAGE_FATIGUE_GUARD" - "stitch via staged reopening + enforcement" cite: turn0search2# ------------------------------------------------------------# 05H) Expansion hook (how to become complete)# ------------------------------------------------------------EXPANSION_RULES: R1_EXPAND_ALL_THAMES_BRIDGES: do: - "Import names from PLA bridge enumeration and mint stable IDs." - "Assign each bridge to WEST/CENTRAL/EAST/OUTER bands by location." - "Populate owner_operator using the London Assembly crossings ownership mix as primary guide." cites: [turn0search0, turn0search3] R2_LOCK_CBF_SUBPACK: do: - "Keep the CBF five-bridge subpack immutable; treat as a governance/maintenance cluster." cite: turn0search1
Here’s London City OS — Almost-Code v0.1, Section 06 (Rail Crossings Pack): the River Thames becomes a rail topology gate (bridges + rail tunnels) with explicit Phase tripwires, truncation, and stitch rules. Ownership/maintenance follows the crossing owner (e.g., Network Rail, Transport for London, boroughs), so the pack keeps an owner_operator field rather than pretending one controller owns everything. (London City Hall)
Also: Blackfriars station is often cited as the first station in London to span/cross the River Thames after its redevelopment (opened 2012). (Network Rail)
# ============================================================# LONDON CITY OS — ALMOST-CODE (CANON) — v0.1# SECTION 06 — RAIL CROSSINGS PACK (Z3 valves + Z4 binds)# ============================================================CANON_VERSION: "v0.1"PLACE: place_id: "GBR-LON" place_name: "London" lane: "TRAN" z_level: "Z3" pack: "THAMES_RAIL_CROSSINGS"DEFINITION_LOCK: RAIL_THAMES_CROSSING_VALVE_Z3: > Any rail-capable structure that carries a rail corridor across the Thames boundary: (A) heavy rail bridge, (B) heavy rail tunnel, (C) metro/overground rail tunnel, (D) composite station-on-bridge. A rail crossing is a Valve because it gates cross-river capacity and couples shocks citywide. RAIL_CROSSING_CLUSTER: > A spatially-near group of rail crossings whose failures become common-mode: closures + headway collapse + diversion overflow into adjacent corridors. RAIL_ESCAPE_CORRIDOR_RULE: > When ROAD crossing bands enter P1/P0, route-stabilisation should prefer rail crossings to carry cross-river demand (where feasible) to prevent bridgehead crush.CONSTRAINT: GBR-LON::TRAN::Z3::CONSTRAINT.THAMES_RIVER_CUT: inherits: "SECTION_04" effect: - "Rail crossings are high-coupling: loss drives network-wide headway instability." - "Cross-mode control must account for mixed ownership/responsibility." owner_mix_reference: "owner funds/maintains their crossings"# ------------------------------------------------------------# 06A) Schema — Rail crossing valves + bind edges# ------------------------------------------------------------SCHEMA: GBR-LON::TRAN::Z3::VALVE.RAIL_CROSSING::<TOKEN>: name_public: "<NAME>" mode: [HEAVY_RAIL_BRIDGE|HEAVY_RAIL_TUNNEL|METRO_RAIL_TUNNEL|COMPOSITE_STATION_ON_BRIDGE] owner_operator: [NETWORK_RAIL|TFL|BOROUGH|PRIVATE|MIXED|UNKNOWN] banks: north_boroughs: ["<BOROUGH_TOKEN>"] south_boroughs: ["<BOROUGH_TOKEN>"] cluster: "WEST|CENTRAL|EAST|OUTER|STRATEGIC" corridor_binds: rail_primary: ["GBR-LON::TRAN::Z4::CORR.RAIL::<TOKEN>"] rail_secondary: ["GBR-LON::TRAN::Z4::CORR.RAIL::<TOKEN>"] alt_escape_corridors: ["GBR-LON::TRAN::Z4::CORR.RAIL::<TOKEN>"] sensors_required: - S.rail_crossing_availability - S.headway_delta - S.crossing_throughput - S.platform_crowding_index - S.diversion_overflow_index phase_tripwires: P1: "<rule>" P0: "<rule>" truncation_actions: - "<action>" stitching_actions: - "<action>" GBR-LON::TRAN::Z3::EDGE.RAIL_CROSSING_BIND::<CROSSING_TOKEN>__<CORR_TOKEN>: type: "RAIL_CROSSING_BIND_EDGE" reroute_cost_class: [LOW|MED|HIGH] capacity_penalty: [LOW|MED|HIGH] fail_coupling: [LOW|MED|HIGH]# ------------------------------------------------------------# 06B) Sensor pack (rail-specific instrumentation)# ------------------------------------------------------------SENSORS_RAIL: S.rail_crossing_availability: values: ["OPEN","RESTRICTED","CLOSED"] S.headway_delta: unit: "seconds_over_baseline" P3: "<= 30" P2: "30–120" P1: "120–300" P0: ">= 300" S.crossing_throughput: unit: "trains_per_hour_est" note: "Measured at crossing boundary (bridge/tunnel)." S.platform_crowding_index: unit: "0..100" P3: "0..25" P2: "26..55" P1: "56..80" P0: "81..100" S.diversion_overflow_index: unit: "0..100" note: "How much diverted demand spills into adjacent corridors."# ------------------------------------------------------------# 06C) Phase tripwires (rail crossing control logic)# ------------------------------------------------------------PHASE_TRIPWIRES_RAIL: P1_TRIPWIRE_TEMPLATE: if: - "S.headway_delta >= 120 for 2 windows" - "OR S.platform_crowding_index > 55 for 2 windows" then: - "activate crowd control at receiving hubs (prevent crush)" - "publish corridor-level diversion map (not station-by-station)" - "stabilise: reduce variance first, then increase frequency" P0_TRIPWIRE_TEMPLATE: if: - "S.rail_crossing_availability = CLOSED" - "OR (S.platform_crowding_index > 80 AND S.headway_delta >= 300)" then: - "truncate: cap inflow at upstream gates (meter entry)" - "protect emergency movement + safety" - "shift cross-river demand to alternate rail crossings before road bridges overload" - "hold until crowding returns to <= P2"# ------------------------------------------------------------# 06D) Core registry — London high-coupling rail crossings# (Minimum viable set; expand later with import rules)# ------------------------------------------------------------RAIL_CROSSING_REGISTRY_CORE: # --- CENTRAL HEAVY RAIL BRIDGE CORRIDORS --- GBR-LON::TRAN::Z3::VALVE.RAIL_CROSSING.BLACKFRIARS_RAILWAY_BRIDGE: name_public: "Blackfriars Railway Bridge" mode: HEAVY_RAIL_BRIDGE owner_operator: NETWORK_RAIL banks: north_boroughs: ["CITY_OF_LONDON"] south_boroughs: ["SOUTHWARK"] cluster: "CENTRAL" corridor_binds: rail_primary: ["GBR-LON::TRAN::Z4::CORR.RAIL.THAMESLINK_CORE"] rail_secondary: [] alt_escape_corridors: ["GBR-LON::TRAN::Z4::CORR.RAIL.LONDON_BRIDGE_CORE"] sensors_required: [S.rail_crossing_availability, S.headway_delta, S.crossing_throughput, S.platform_crowding_index, S.diversion_overflow_index] phase_tripwires: {P1: "use template", P0: "use template"} truncation_actions: - "meter entry at upstream stations feeding the core" - "stabilise headways through the core before restoring frequency" stitching_actions: - "staged service restoration + keep crowd control until P3" GBR-LON::TRAN::Z3::VALVE.RAIL_CROSSING.BLACKFRIARS_STATION_SPAN: name_public: "Blackfriars station (station-on-bridge span)" mode: COMPOSITE_STATION_ON_BRIDGE owner_operator: NETWORK_RAIL banks: north_boroughs: ["CITY_OF_LONDON"] south_boroughs: ["SOUTHWARK"] cluster: "CENTRAL" corridor_binds: rail_primary: ["GBR-LON::TRAN::Z4::CORR.RAIL.THAMESLINK_CORE"] rail_secondary: [] alt_escape_corridors: ["GBR-LON::TRAN::Z4::CORR.RAIL.CHARING_X_SOUTHEASTERN"] sensors_required: [S.rail_crossing_availability, S.headway_delta, S.platform_crowding_index] phase_tripwires: {P1: "use template", P0: "use template"} truncation_actions: - "crowd-gate the span platforms before crush risk" stitching_actions: - "staged reopening with platform zoning" GBR-LON::TRAN::Z3::VALVE.RAIL_CROSSING.CANNON_STREET_RAILWAY_BRIDGE: name_public: "Cannon Street Railway Bridge" mode: HEAVY_RAIL_BRIDGE owner_operator: NETWORK_RAIL banks: north_boroughs: ["CITY_OF_LONDON"] south_boroughs: ["SOUTHWARK"] cluster: "CENTRAL" corridor_binds: rail_primary: ["GBR-LON::TRAN::Z4::CORR.RAIL.SOUTHEASTERN_CITY"] rail_secondary: [] alt_escape_corridors: ["GBR-LON::TRAN::Z4::CORR.RAIL.THAMESLINK_CORE"] sensors_required: [S.rail_crossing_availability, S.headway_delta, S.crossing_throughput, S.platform_crowding_index] phase_tripwires: {P1: "use template", P0: "use template"} truncation_actions: - "divert some flows to adjacent termini corridors when headway collapses" stitching_actions: - "restore timetable with variance-first stabilisation" GBR-LON::TRAN::Z3::VALVE.RAIL_CROSSING.CHARING_CROSS_RAILWAY_BRIDGE: name_public: "Charing Cross (Hungerford) Railway Bridge" mode: HEAVY_RAIL_BRIDGE owner_operator: NETWORK_RAIL banks: north_boroughs: ["WESTMINSTER"] south_boroughs: ["LAMBETH"] cluster: "CENTRAL" corridor_binds: rail_primary: ["GBR-LON::TRAN::Z4::CORR.RAIL.CHARING_X_SOUTHEASTERN"] rail_secondary: [] alt_escape_corridors: ["GBR-LON::TRAN::Z4::CORR.RAIL.WATERLOO_EAST_CLUSTER"] sensors_required: [S.rail_crossing_availability, S.headway_delta, S.crossing_throughput] phase_tripwires: {P1: "use template", P0: "use template"} truncation_actions: - "pre-emptively gate passenger inflow at the north terminal when crossing degrades" stitching_actions: - "staged re-platforming and restore" # --- WEST / VICTORIA ACCESS (heavy coupling into Victoria) --- GBR-LON::TRAN::Z3::VALVE.RAIL_CROSSING.GROSVENOR_BRIDGE_VICTORIA: name_public: "Grosvenor Bridge (Victoria Railway Bridge)" mode: HEAVY_RAIL_BRIDGE owner_operator: NETWORK_RAIL banks: north_boroughs: ["WESTMINSTER"] south_boroughs: ["WANDSWORTH"] cluster: "WEST" corridor_binds: rail_primary: ["GBR-LON::TRAN::Z4::CORR.RAIL.VICTORIA_APPROACH"] rail_secondary: [] alt_escape_corridors: ["GBR-LON::TRAN::Z4::CORR.RAIL.CLAPHAM_JUNCTION_REDISTRIBUTION"] sensors_required: [S.rail_crossing_availability, S.headway_delta, S.crossing_throughput, S.platform_crowding_index] phase_tripwires: {P1: "use template", P0: "use template"} truncation_actions: - "meter Victoria approach inflow; protect safety at platforms" stitching_actions: - "restore tracks in staged sequence" GBR-LON::TRAN::Z3::VALVE.RAIL_CROSSING.BATTERSEA_RAILWAY_BRIDGE: name_public: "Battersea Railway Bridge (West London Line)" mode: HEAVY_RAIL_BRIDGE owner_operator: UNKNOWN banks: north_boroughs: ["HAMMERSMITH_FULHAM"] south_boroughs: ["WANDSWORTH"] cluster: "WEST" corridor_binds: rail_primary: ["GBR-LON::TRAN::Z4::CORR.RAIL.WEST_LONDON_LINE"] rail_secondary: [] alt_escape_corridors: ["GBR-LON::TRAN::Z4::CORR.RAIL.ORBITAL_OVERGROUND_PROXY"] sensors_required: [S.rail_crossing_availability, S.headway_delta, S.crossing_throughput] phase_tripwires: {P1: "use template", P0: "use template"} truncation_actions: - "use as orbital bypass when central crossings degrade" stitching_actions: - "restore orbital schedule first (absorbs reroutes)" # --- EAST: rail tunnel gates (cross-river without bridges) --- GBR-LON::TRAN::Z3::VALVE.RAIL_CROSSING.THAMES_TUNNEL_WAPPING_ROTHERHITHE: name_public: "Thames Tunnel (Wapping–Rotherhithe rail tunnel)" mode: METRO_RAIL_TUNNEL owner_operator: MIXED banks: north_boroughs: ["TOWER_HAMLETS"] south_boroughs: ["SOUTHWARK"] cluster: "EAST" corridor_binds: rail_primary: ["GBR-LON::TRAN::Z4::CORR.RAIL.OVERGROUND_EAST_LONDON_LINE"] rail_secondary: [] alt_escape_corridors: ["GBR-LON::TRAN::Z4::CORR.RAIL.DLR_EAST_PROXY"] sensors_required: [S.rail_crossing_availability, S.headway_delta, S.platform_crowding_index, S.diversion_overflow_index] phase_tripwires: {P1: "use template", P0: "use template"} truncation_actions: - "crowd-gate Wapping/Rotherhithe platforms early" - "divert to other rail corridors before road bridge bands overload" stitching_actions: - "staged reopening + maintain crowd zoning until P3" GBR-LON::TRAN::Z3::VALVE.RAIL_CROSSING.ELIZABETH_LINE_THAMES_CROSSING_ROYAL_DOCKS_WOOLWICH: name_public: "Elizabeth line Thames crossing (Royal Docks–Woolwich corridor)" mode: HEAVY_RAIL_TUNNEL owner_operator: MIXED banks: north_boroughs: ["NEWHAM"] south_boroughs: ["GREENWICH"] cluster: "EAST" corridor_binds: rail_primary: ["GBR-LON::TRAN::Z4::CORR.RAIL.ELIZABETH_CORE_SE"] rail_secondary: [] alt_escape_corridors: ["GBR-LON::TRAN::Z4::CORR.RAIL.SOUTHEASTERN_EAST_PROXY"] sensors_required: [S.rail_crossing_availability, S.headway_delta, S.crossing_throughput, S.platform_crowding_index] phase_tripwires: {P1: "use template", P0: "use template"} truncation_actions: - "protect tunnel throughput by stabilising headways before adding trains" - "shift demand messaging to adjacent modes if crowding spikes" stitching_actions: - "staged service restoration + keep platform zoning"# ------------------------------------------------------------# 06E) Cluster control units (rail crossings as coupled gates)# ------------------------------------------------------------CLUSTERS_RAIL: GBR-LON::TRAN::Z3::CLUSTER.RAIL_THAMES::CENTRAL_HEAVY_RAIL_STRIP: crossings: - GBR-LON::TRAN::Z3::VALVE.RAIL_CROSSING.BLACKFRIARS_RAILWAY_BRIDGE - GBR-LON::TRAN::Z3::VALVE.RAIL_CROSSING.CANNON_STREET_RAILWAY_BRIDGE - GBR-LON::TRAN::Z3::VALVE.RAIL_CROSSING.CHARING_CROSS_RAILWAY_BRIDGE control_policy: - "stabilise CENTRAL first: cross-city coupling highest" - "publish corridor-level reroutes; avoid station-level chaos" - "when CENTRAL in P1: shift discretionary cross-river demand to EAST tunnels or WEST orbitals" GBR-LON::TRAN::Z3::CLUSTER.RAIL_THAMES::EAST_RAIL_TUNNEL_GATES: crossings: - GBR-LON::TRAN::Z3::VALVE.RAIL_CROSSING.THAMES_TUNNEL_WAPPING_ROTHERHITHE - GBR-LON::TRAN::Z3::VALVE.RAIL_CROSSING.ELIZABETH_LINE_THAMES_CROSSING_ROYAL_DOCKS_WOOLWICH control_policy: - "treat as emergency cross-river relief when road bridge bands enter P1/P0" - "crowd-gate platforms early; prevent crush"# ------------------------------------------------------------# 06F) Failure mode traces (canonical)# ------------------------------------------------------------FAILURE_MODE_TRACE: TRACE_CENTRAL_RAIL_CROSSING_SHOCK: chain: - "central rail crossing restriction/closure ->" - "headway variance ->" - "platform crowding ->" - "diversion overflow into adjacent corridors ->" - "multi-borough P2→P1 drift" repair: - "truncate: meter entry + corridor-level reroute map" - "stitch: variance-first stabilisation, then restore frequency" TRACE_ROAD_BRIDGE_P1_TO_RAIL_RELIEF: chain: - "road bridge band overload ->" - "cross-river demand seeks alternatives ->" - "rail crossings become relief gates ->" - "risk of rail crowd crush if not metered" repair: - "truncate: crowd-gate rail platforms early + message safer alternates" - "stitch: staged de-metering after road band returns to P3/P2"
Source locks used for the “hard facts” in Section 06
- Blackfriars: “first station in London to span/cross the Thames” after redevelopment. (Network Rail)
- Cannon Street Railway Bridge: owned by Network Rail + built to cross the Thames; history details (incl. 1866 opening / “Alexandra Bridge”). (Network Rail Media Centre)
- Hungerford/Charing Cross Bridge: owned/maintained by Network Rail Infrastructure; railway + adjacent pedestrian bridges. (Wikipedia)
- Grosvenor Bridge: a Thames railway bridge maintained by Network Rail (Victoria Railway Bridge). (Wikipedia)
- Thames Tunnel (Wapping–Rotherhithe): converted to railway use; long rail history; used for East London Line. (Encyclopedia Britannica)
- Elizabeth line Thames crossing: southeast tunnels pass under the Thames and surface after Woolwich; tunnelling notes for Woolwich Arsenal station box / TBM launch under the Thames. (American Society of Civil Engineers)
- Mixed ownership / responsibility principle (TfL, Bridge House Estates/CBF, Network Rail, boroughs): maintenance responsibility follows the owner. (London City Hall)
Section 07 builds the “interfaces” layer: rail terminals + major interchanges + river piers as Super-Valves (Z3) that gate cross-city flow and can trigger crowd-crush Phase drift if not metered.
Portal set (core): London Bridge station, London Waterloo station, London Victoria station, London King’s Cross station, St Pancras International, Liverpool Street station, Paddington station, London Euston station, Charing Cross station, Cannon Street station, Clapham Junction station; river layer uses Transport for London mapping + Uber Boat by Thames Clippers pier network; rail usage ranking references Office of Rail and Road station-usage release and Network Rail managed-stations list. (dataportal.orr.gov.uk)
# ============================================================# LONDON CITY OS — ALMOST-CODE (CANON) — v0.1# SECTION 07 — RIVER TERMINALS & RAIL-PORTALS PACK (Z3)# Interfaces = Super-Valves (crowd + mode-coupling)# ============================================================CANON_VERSION: "v0.1"PLACE: place_id: "GBR-LON" place_name: "London" lane: "TRAN" z_level: "Z3" pack: "PORTALS_RAIL_RIVER"# ------------------------------------------------------------# 07A) Definition locks (interfaces as failure points)# ------------------------------------------------------------DEFINITION_LOCK: SUPER_VALVE_Z3: > A high-coupling interface node where multiple corridors (rail/tube/bus/road/river/walk) converge and exchange passengers. A Super-Valve fails by crush/queue/variance, not only by “closure”. PORTAL_RAIL_TERMINAL: > A station that concentrates long-range flows into a local network (and reverses them). Terminals create bursty arrival waves; without metering, they induce Phase drift in downstream interchanges. PORTAL_INTERCHANGE: > A station/hub where transfer circuits dominate (platform-to-platform routing). Its bottleneck is transfer width + vertical circulation + gate throughput. PORTAL_RIVER_PIER: > A river boarding node that behaves like a pulse-train: arrivals are lumpy, capacity is discrete (boat), and queues can “step” suddenly (P2→P1). CROWD_CRUSH_RISK: > A safety-critical mode where density/queue pressure crosses a threshold and the correct response is TRUNCATION (meter/hold/divert) not persuasion.# ------------------------------------------------------------# 07B) Constraint (why portals deserve their own pack)# ------------------------------------------------------------CONSTRAINT: GBR-LON::TRAN::Z3::CONSTRAINT.PORTAL_COUPLING: type: "HIGH_COUPLING_INTERFACE_CONSTRAINT" effect: - "Portal overload propagates across modes (rail→tube→bus→walk→road)." - "Variance, not mean load, is the dominant failure driver (waves + incidents)." - "Control primitives are: gate metering, platform zoning, timed release, diversion." note: - "London has multiple high-usage stations; ORR station-usage release provides usage context." - "Network Rail lists major managed London stations (interface nodes)."# ------------------------------------------------------------# 07C) Schema — Portal nodes + bind edges# ------------------------------------------------------------SCHEMA: # ---- Rail portal (terminus or major interchange) GBR-LON::TRAN::Z3::PORTAL.RAIL::<TOKEN>: name_public: "<NAME>" portal_class: [TERMINAL|INTERCHANGE|BOTH] manager_role_split: asset_owner: [NETWORK_RAIL|OTHER|UNKNOWN] station_manager: [NETWORK_RAIL|TOC|TFL|MIXED|UNKNOWN] passenger_assist: [NETWORK_RAIL|TOC|TFL|MIXED|UNKNOWN] connects_modes: [NATIONAL_RAIL, TUBE, ELIZABETH, OVERGROUND, DLR, BUS, TAXI, WALK, CYCLE] catchment_boroughs: ["<BOROUGH_TOKEN>"] primary_corridor_binds: rail: ["GBR-LON::TRAN::Z4::CORR.RAIL::<TOKEN>"] tube: ["GBR-LON::TRAN::Z4::CORR.TUBE::<TOKEN>"] bus: ["GBR-LON::TRAN::Z4::CORR.BUS::<TOKEN>"] road: ["GBR-LON::TRAN::Z4::CORR.ROAD::<TOKEN>"] walk: ["GBR-LON::TRAN::Z4::CORR.WALK::<TOKEN>"] portal_sensors_required: - S.gate_throughput - S.platform_crowding_index - S.interchange_dwell - S.headway_delta_in - S.headway_delta_out - S.incident_state - S.diversion_overflow_index phase_tripwires: P1: "<rule>" P0: "<rule>" truncation_actions: - "<action>" stitching_actions: - "<action>" # ---- River portal (pier / river terminal) GBR-LON::TRAN::Z3::PORTAL.RIVER::<TOKEN>: name_public: "<NAME>" portal_class: [PIER|PIER_INTERCHANGE] operator: [THAMES_CLIPPERS|OTHER|MIXED|UNKNOWN] connects_modes: [RIVER, WALK, BUS, TUBE, DLR, RAIL, CYCLE] zone_band: [WEST|CENTRAL|EAST] primary_corridor_binds: river: ["GBR-LON::TRAN::Z4::CORR.RIVER::<TOKEN>"] walk: ["GBR-LON::TRAN::Z4::CORR.WALK::<TOKEN>"] bus: ["GBR-LON::TRAN::Z4::CORR.BUS::<TOKEN>"] tube: ["GBR-LON::TRAN::Z4::CORR.TUBE::<TOKEN>"] portal_sensors_required: - S.pier_queue_index - S.river_service_availability - S.boat_headway_delta - S.pier_crowding_index - S.diversion_overflow_index phase_tripwires: P1: "<rule>" P0: "<rule>" truncation_actions: - "<action>" stitching_actions: - "<action>" # ---- Bind edge (corridor -> portal) GBR-LON::TRAN::Z3::EDGE.PORTAL_BIND::<CORR_TOKEN>__<PORTAL_TOKEN>: type: "PORTAL_BIND_EDGE" capacity_class: [LOW|MED|HIGH] variance_sensitivity: [LOW|MED|HIGH] crowd_risk_class: [LOW|MED|HIGH] reroute_options: - "<alt portal token>" - "<alt corridor token>"# ------------------------------------------------------------# 07D) Sensor pack (portal instrumentation)# ------------------------------------------------------------SENSORS_PORTAL: S.gate_throughput: unit: "people_per_min" note: "Gates/entries/vertical circulation inflow." S.platform_crowding_index: unit: "0..100" P3: "0..25" P2: "26..55" P1: "56..80" P0: "81..100" S.interchange_dwell: unit: "minutes_transfer_time_over_baseline" P3: "<= 3" P2: "3–8" P1: "8–20" P0: ">= 20" S.headway_delta_in: unit: "seconds_over_baseline" P3: "<= 30" P2: "30–120" P1: "120–300" P0: ">= 300" S.headway_delta_out: unit: "seconds_over_baseline" P3: "<= 30" P2: "30–120" P1: "120–300" P0: ">= 300" S.incident_state: values: ["NORMAL","MINOR","MAJOR","EVAC","CLOSED"] S.diversion_overflow_index: unit: "0..100" note: "Overflow onto adjacent corridors/portals." # River-specific S.pier_queue_index: unit: "0..100" P3: "0..25" P2: "26..55" P1: "56..80" P0: "81..100" S.river_service_availability: values: ["RUNNING","REDUCED","SUSPENDED"] S.boat_headway_delta: unit: "minutes_over_timetable" P3: "<= 2" P2: "2–8" P1: "8–20" P0: ">= 20" S.pier_crowding_index: unit: "0..100" P3: "0..25" P2: "26..55" P1: "56..80" P0: "81..100"# ------------------------------------------------------------# 07E) Phase tripwires (crowd-safe control primitives)# ------------------------------------------------------------PHASE_TRIPWIRES_PORTAL: P1_TRIPWIRE_TEMPLATE: if: - "S.platform_crowding_index > 55 for 2 windows" - "OR S.interchange_dwell > 8" - "OR S.headway_delta_in >= 120" then: - "TRUNCATE early: meter entry gates (time-slicing) before density spikes" - "platform zoning: one-way circuits + queue channelisation" - "publish corridor-level diversion map (portal-to-portal), not station-by-station" - "protect vertical circulation (stairs/escalators) as critical arteries" P0_TRIPWIRE_TEMPLATE: if: - "S.incident_state in [MAJOR, EVAC, CLOSED]" - "OR (S.platform_crowding_index > 80 AND S.headway_delta_in >= 300)" then: - "HARD TRUNCATION: hold inflows upstream (gates + feeder interchanges)" - "shed demand: divert to alternate portals (pre-committed routes)" - "safety-first: stop transfers into the crush zone" - "only stitch once crowding <= P2 and headway variance stabilises"# ------------------------------------------------------------# 07F) Core portal registry (Network Rail London managed-station set)# Note: role split allows 'assistance by TOC' while assets are held/maintained by NR.# ------------------------------------------------------------PORTAL_REGISTRY_CORE: GBR-LON::TRAN::Z3::PORTAL.RAIL.LONDON_BRIDGE: name_public: "London Bridge" portal_class: BOTH manager_role_split: {asset_owner: NETWORK_RAIL, station_manager: NETWORK_RAIL, passenger_assist: MIXED} connects_modes: [NATIONAL_RAIL, TUBE, BUS, TAXI, WALK, CYCLE] catchment_boroughs: ["SOUTHWARK","CITY_OF_LONDON"] primary_corridor_binds: rail: ["GBR-LON::TRAN::Z4::CORR.RAIL.SE_TERMINALS_STRIP"] tube: ["GBR-LON::TRAN::Z4::CORR.TUBE.CENTRAL_SOUTH"] bus: ["GBR-LON::TRAN::Z4::CORR.BUS.CENTRAL_CORE"] road: ["GBR-LON::TRAN::Z4::CORR.ROAD.CENTRAL_CORE"] walk: ["GBR-LON::TRAN::Z4::CORR.WALK.THAMES_SOUTH_BANK"] portal_sensors_required: [S.gate_throughput,S.platform_crowding_index,S.interchange_dwell,S.headway_delta_in,S.headway_delta_out,S.incident_state,S.diversion_overflow_index] phase_tripwires: {P1: "use template", P0: "use template"} truncation_actions: - "gate-meter entries; protect interchange corridors first" - "divert discretionary arrivals to Cannon Street / Charing Cross strip" stitching_actions: - "restore flows in pulses; keep zoning until P3" GBR-LON::TRAN::Z3::PORTAL.RAIL.WATERLOO: name_public: "London Waterloo" portal_class: TERMINAL manager_role_split: {asset_owner: NETWORK_RAIL, station_manager: NETWORK_RAIL, passenger_assist: MIXED} connects_modes: [NATIONAL_RAIL, TUBE, BUS, TAXI, WALK, CYCLE] catchment_boroughs: ["LAMBETH","SOUTHWARK","WESTMINSTER"] primary_corridor_binds: rail: ["GBR-LON::TRAN::Z4::CORR.RAIL.SW_TERMINALS_STRIP"] tube: ["GBR-LON::TRAN::Z4::CORR.TUBE.CENTRAL_SOUTH"] bus: ["GBR-LON::TRAN::Z4::CORR.BUS.CENTRAL_CORE"] road: ["GBR-LON::TRAN::Z4::CORR.ROAD.CENTRAL_CORE"] walk: ["GBR-LON::TRAN::Z4::CORR.WALK.THAMES_SOUTH_BANK"] portal_sensors_required: [S.gate_throughput,S.platform_crowding_index,S.interchange_dwell,S.headway_delta_in,S.headway_delta_out,S.incident_state,S.diversion_overflow_index] phase_tripwires: {P1: "use template", P0: "use template"} truncation_actions: - "time-slice platform releases to prevent concourse crush" - "divert interchange load to adjacent portals when headway variance spikes" stitching_actions: - "variance-first stabilisation, then frequency restoration" GBR-LON::TRAN::Z3::PORTAL.RAIL.VICTORIA: name_public: "London Victoria" portal_class: TERMINAL manager_role_split: {asset_owner: NETWORK_RAIL, station_manager: NETWORK_RAIL, passenger_assist: MIXED} connects_modes: [NATIONAL_RAIL, TUBE, BUS, TAXI, WALK, CYCLE] catchment_boroughs: ["WESTMINSTER"] primary_corridor_binds: rail: ["GBR-LON::TRAN::Z4::CORR.RAIL.SOUTH_TERMINALS_STRIP"] tube: ["GBR-LON::TRAN::Z4::CORR.TUBE.WEST_CORE"] bus: ["GBR-LON::TRAN::Z4::CORR.BUS.WEST_CORE"] road: ["GBR-LON::TRAN::Z4::CORR.ROAD.INNER_RING_WEST"] walk: ["GBR-LON::TRAN::Z4::CORR.WALK.WEST_CORE"] portal_sensors_required: [S.gate_throughput,S.platform_crowding_index,S.interchange_dwell,S.headway_delta_in,S.headway_delta_out,S.incident_state,S.diversion_overflow_index] phase_tripwires: {P1: "use template", P0: "use template"} truncation_actions: ["gate-meter + platform zoning"] stitching_actions: ["staged reopen + keep metering until P3"] GBR-LON::TRAN::Z3::PORTAL.RAIL.KINGS_CROSS: name_public: "London King's Cross" portal_class: TERMINAL manager_role_split: {asset_owner: NETWORK_RAIL, station_manager: NETWORK_RAIL, passenger_assist: MIXED} connects_modes: [NATIONAL_RAIL, TUBE, BUS, TAXI, WALK, CYCLE] catchment_boroughs: ["CAMDEN","ISLINGTON"] primary_corridor_binds: rail: ["GBR-LON::TRAN::Z4::CORR.RAIL.NE_TERMINALS_STRIP"] tube: ["GBR-LON::TRAN::Z4::CORR.TUBE.NORTH_CORE"] bus: ["GBR-LON::TRAN::Z4::CORR.BUS.NORTH_CORE"] road: ["GBR-LON::TRAN::Z4::CORR.ROAD.INNER_RING_NORTH"] walk: ["GBR-LON::TRAN::Z4::CORR.WALK.NORTH_CORE"] portal_sensors_required: [S.gate_throughput,S.platform_crowding_index,S.interchange_dwell,S.headway_delta_in,S.headway_delta_out,S.incident_state,S.diversion_overflow_index] phase_tripwires: {P1: "use template", P0: "use template"} truncation_actions: - "protect interchange circuits to adjacent hub (St Pancras) by metering" stitching_actions: - "restore terminal pulses in schedule-sliced waves" GBR-LON::TRAN::Z3::PORTAL.RAIL.ST_PANCRAS_INTL: name_public: "London St Pancras International" portal_class: BOTH manager_role_split: {asset_owner: NETWORK_RAIL, station_manager: NETWORK_RAIL, passenger_assist: MIXED} connects_modes: [NATIONAL_RAIL, TUBE, BUS, TAXI, WALK, CYCLE] catchment_boroughs: ["CAMDEN","ISLINGTON"] primary_corridor_binds: rail: ["GBR-LON::TRAN::Z4::CORR.RAIL.MIDLANDS_TERMINALS_STRIP"] tube: ["GBR-LON::TRAN::Z4::CORR.TUBE.NORTH_CORE"] bus: ["GBR-LON::TRAN::Z4::CORR.BUS.NORTH_CORE"] road: ["GBR-LON::TRAN::Z4::CORR.ROAD.INNER_RING_NORTH"] walk: ["GBR-LON::TRAN::Z4::CORR.WALK.NORTH_CORE"] portal_sensors_required: [S.gate_throughput,S.platform_crowding_index,S.interchange_dwell,S.headway_delta_in,S.headway_delta_out,S.incident_state,S.diversion_overflow_index] phase_tripwires: {P1: "use template", P0: "use template"} truncation_actions: ["meter interchange to Kings Cross and downstream tube corridors"] stitching_actions: ["staged release + keep one-way circuits until P3"] GBR-LON::TRAN::Z3::PORTAL.RAIL.LIVERPOOL_STREET: name_public: "London Liverpool Street" portal_class: BOTH manager_role_split: {asset_owner: NETWORK_RAIL, station_manager: NETWORK_RAIL, passenger_assist: MIXED} connects_modes: [NATIONAL_RAIL, TUBE, BUS, TAXI, WALK, CYCLE] catchment_boroughs: ["CITY_OF_LONDON","TOWER_HAMLETS"] primary_corridor_binds: rail: ["GBR-LON::TRAN::Z4::CORR.RAIL.E_TERMINALS_STRIP"] tube: ["GBR-LON::TRAN::Z4::CORR.TUBE.CENTRAL_EAST"] bus: ["GBR-LON::TRAN::Z4::CORR.BUS.CENTRAL_CORE"] road: ["GBR-LON::TRAN::Z4::CORR.ROAD.INNER_RING_EAST"] walk: ["GBR-LON::TRAN::Z4::CORR.WALK.CITY_CORE"] portal_sensors_required: [S.gate_throughput,S.platform_crowding_index,S.interchange_dwell,S.headway_delta_in,S.headway_delta_out,S.incident_state,S.diversion_overflow_index] phase_tripwires: {P1: "use template", P0: "use template"} truncation_actions: - "early metering when headway variance rises (prevent concourse crush)" stitching_actions: - "staged restoration; keep diversion messaging until P3" GBR-LON::TRAN::Z3::PORTAL.RAIL.PADDINGTON: name_public: "London Paddington" portal_class: BOTH manager_role_split: {asset_owner: NETWORK_RAIL, station_manager: NETWORK_RAIL, passenger_assist: MIXED} connects_modes: [NATIONAL_RAIL, TUBE, BUS, TAXI, WALK, CYCLE] catchment_boroughs: ["WESTMINSTER"] primary_corridor_binds: rail: ["GBR-LON::TRAN::Z4::CORR.RAIL.W_TERMINALS_STRIP"] tube: ["GBR-LON::TRAN::Z4::CORR.TUBE.WEST_CORE"] bus: ["GBR-LON::TRAN::Z4::CORR.BUS.WEST_CORE"] road: ["GBR-LON::TRAN::Z4::CORR.ROAD.INNER_RING_WEST"] walk: ["GBR-LON::TRAN::Z4::CORR.WALK.WEST_CORE"] portal_sensors_required: [S.gate_throughput,S.platform_crowding_index,S.interchange_dwell,S.headway_delta_in,S.headway_delta_out,S.incident_state,S.diversion_overflow_index] phase_tripwires: {P1: "use template", P0: "use template"} truncation_actions: ["meter arrivals into tube corridors during perturbations"] stitching_actions: ["staged de-metering"] GBR-LON::TRAN::Z3::PORTAL.RAIL.EUSTON: name_public: "London Euston" portal_class: TERMINAL manager_role_split: {asset_owner: NETWORK_RAIL, station_manager: NETWORK_RAIL, passenger_assist: MIXED} connects_modes: [NATIONAL_RAIL, TUBE, BUS, TAXI, WALK, CYCLE] catchment_boroughs: ["CAMDEN"] primary_corridor_binds: rail: ["GBR-LON::TRAN::Z4::CORR.RAIL.NW_TERMINALS_STRIP"] tube: ["GBR-LON::TRAN::Z4::CORR.TUBE.NORTH_CORE"] bus: ["GBR-LON::TRAN::Z4::CORR.BUS.NORTH_CORE"] road: ["GBR-LON::TRAN::Z4::CORR.ROAD.INNER_RING_NORTH"] walk: ["GBR-LON::TRAN::Z4::CORR.WALK.NORTH_CORE"] portal_sensors_required: [S.gate_throughput,S.platform_crowding_index,S.interchange_dwell,S.headway_delta_in,S.headway_delta_out,S.incident_state,S.diversion_overflow_index] phase_tripwires: {P1: "use template", P0: "use template"} truncation_actions: ["queue channelisation + time-sliced release to tube"] stitching_actions: ["restore pulses in stages"] GBR-LON::TRAN::Z3::PORTAL.RAIL.CHARING_CROSS: name_public: "London Charing Cross" portal_class: BOTH manager_role_split: {asset_owner: NETWORK_RAIL, station_manager: NETWORK_RAIL, passenger_assist: MIXED} connects_modes: [NATIONAL_RAIL, TUBE, BUS, TAXI, WALK, CYCLE] catchment_boroughs: ["WESTMINSTER"] primary_corridor_binds: rail: ["GBR-LON::TRAN::Z4::CORR.RAIL.SE_TERMINALS_STRIP"] tube: ["GBR-LON::TRAN::Z4::CORR.TUBE.CENTRAL_WEST"] bus: ["GBR-LON::TRAN::Z4::CORR.BUS.CENTRAL_CORE"] road: ["GBR-LON::TRAN::Z4::CORR.ROAD.CENTRAL_CORE"] walk: ["GBR-LON::TRAN::Z4::CORR.WALK.CENTRAL_CORE"] portal_sensors_required: [S.gate_throughput,S.platform_crowding_index,S.interchange_dwell,S.headway_delta_in,S.headway_delta_out,S.incident_state,S.diversion_overflow_index] phase_tripwires: {P1: "use template", P0: "use template"} truncation_actions: ["divert to adjacent terminals when dwell spikes"] stitching_actions: ["staged reopen"] GBR-LON::TRAN::Z3::PORTAL.RAIL.CANNON_STREET: name_public: "London Cannon Street" portal_class: TERMINAL manager_role_split: {asset_owner: NETWORK_RAIL, station_manager: NETWORK_RAIL, passenger_assist: MIXED} connects_modes: [NATIONAL_RAIL, TUBE, BUS, TAXI, WALK, CYCLE] catchment_boroughs: ["CITY_OF_LONDON"] primary_corridor_binds: rail: ["GBR-LON::TRAN::Z4::CORR.RAIL.SE_TERMINALS_STRIP"] tube: ["GBR-LON::TRAN::Z4::CORR.TUBE.CITY_CORE"] bus: ["GBR-LON::TRAN::Z4::CORR.BUS.CENTRAL_CORE"] road: ["GBR-LON::TRAN::Z4::CORR.ROAD.CENTRAL_CORE"] walk: ["GBR-LON::TRAN::Z4::CORR.WALK.CITY_CORE"] portal_sensors_required: [S.gate_throughput,S.platform_crowding_index,S.interchange_dwell,S.headway_delta_in,S.headway_delta_out,S.incident_state,S.diversion_overflow_index] phase_tripwires: {P1: "use template", P0: "use template"} truncation_actions: ["meter into City corridors during perturbations"] stitching_actions: ["staged reopen"] GBR-LON::TRAN::Z3::PORTAL.RAIL.CLAPHAM_JUNCTION: name_public: "Clapham Junction" portal_class: INTERCHANGE manager_role_split: {asset_owner: NETWORK_RAIL, station_manager: TOC, passenger_assist: TOC} connects_modes: [NATIONAL_RAIL, OVERGROUND, BUS, TAXI, WALK, CYCLE] catchment_boroughs: ["WANDSWORTH"] primary_corridor_binds: rail: ["GBR-LON::TRAN::Z4::CORR.RAIL.SOUTH_WEST_INTERCHANGE_BUNDLE"] tube: [] bus: ["GBR-LON::TRAN::Z4::CORR.BUS.SOUTH_WEST_CORE"] road: ["GBR-LON::TRAN::Z4::CORR.ROAD.INNER_RING_SOUTH_WEST"] walk: ["GBR-LON::TRAN::Z4::CORR.WALK.SOUTH_WEST_CORE"] portal_sensors_required: [S.gate_throughput,S.platform_crowding_index,S.interchange_dwell,S.headway_delta_in,S.headway_delta_out,S.incident_state,S.diversion_overflow_index] phase_tripwires: {P1: "use template", P0: "use template"} truncation_actions: - "protect interchange circuits first; hold inflow upstream during spikes" stitching_actions: - "staged release with platform zoning"# ------------------------------------------------------------# 07G) River pier core registry (minimal viable set; expand to full pier list)# NOTE: Operator site states 24 piers across West/Central/East zones.# ------------------------------------------------------------RIVER_PIER_REGISTRY_CORE: GBR-LON::TRAN::Z3::PORTAL.RIVER.WESTMINSTER_PIER: name_public: "Westminster Pier" portal_class: PIER_INTERCHANGE operator: THAMES_CLIPPERS connects_modes: [RIVER, WALK, BUS, TUBE, CYCLE] zone_band: CENTRAL primary_corridor_binds: river: ["GBR-LON::TRAN::Z4::CORR.RIVER.CENTRAL_MAIN"] walk: ["GBR-LON::TRAN::Z4::CORR.WALK.CENTRAL_CORE"] bus: ["GBR-LON::TRAN::Z4::CORR.BUS.CENTRAL_CORE"] tube: ["GBR-LON::TRAN::Z4::CORR.TUBE.CENTRAL_WEST"] portal_sensors_required: [S.pier_queue_index,S.river_service_availability,S.boat_headway_delta,S.pier_crowding_index,S.diversion_overflow_index] phase_tripwires: {P1: "pier_queue_index > 55 OR boat_headway_delta > 8", P0: "service_suspended OR pier_crowding_index > 80"} truncation_actions: ["queue channelisation + timed boarding pulses"] stitching_actions: ["restore normal boarding after P3 returns"] GBR-LON::TRAN::Z3::PORTAL.RIVER.LONDON_EYE_WATERLOO_PIER: name_public: "London Eye (Waterloo) Pier" portal_class: PIER_INTERCHANGE operator: THAMES_CLIPPERS connects_modes: [RIVER, WALK, BUS, TUBE, RAIL, CYCLE] zone_band: CENTRAL primary_corridor_binds: river: ["GBR-LON::TRAN::Z4::CORR.RIVER.CENTRAL_MAIN"] walk: ["GBR-LON::TRAN::Z4::CORR.WALK.THAMES_SOUTH_BANK"] bus: ["GBR-LON::TRAN::Z4::CORR.BUS.CENTRAL_CORE"] tube: ["GBR-LON::TRAN::Z4::CORR.TUBE.CENTRAL_SOUTH"] portal_sensors_required: [S.pier_queue_index,S.river_service_availability,S.boat_headway_delta,S.pier_crowding_index,S.diversion_overflow_index] phase_tripwires: {P1: "use river P1 template", P0: "use river P0 template"} truncation_actions: ["protect adjacent rail portal by preventing pier spillback"] stitching_actions: ["staged release"] GBR-LON::TRAN::Z3::PORTAL.RIVER.CANARY_WHARF_PIER: name_public: "Canary Wharf Pier" portal_class: PIER_INTERCHANGE operator: THAMES_CLIPPERS connects_modes: [RIVER, WALK, BUS, TUBE, DLR, CYCLE] zone_band: EAST primary_corridor_binds: river: ["GBR-LON::TRAN::Z4::CORR.RIVER.EAST_MAIN"] walk: ["GBR-LON::TRAN::Z4::CORR.WALK.DOCKS_CORE"] bus: ["GBR-LON::TRAN::Z4::CORR.BUS.EAST_CORE"] tube: ["GBR-LON::TRAN::Z4::CORR.TUBE.EAST_CORE"] portal_sensors_required: [S.pier_queue_index,S.river_service_availability,S.boat_headway_delta,S.pier_crowding_index,S.diversion_overflow_index] phase_tripwires: {P1: "use river P1 template", P0: "use river P0 template"} truncation_actions: ["meter pier inflow when boat headways slip"] stitching_actions: ["staged reopen"] GBR-LON::TRAN::Z3::PORTAL.RIVER.NORTH_GREENWICH_PIER: name_public: "North Greenwich Pier" portal_class: PIER_INTERCHANGE operator: THAMES_CLIPPERS connects_modes: [RIVER, WALK, BUS, TUBE, CYCLE] zone_band: EAST primary_corridor_binds: river: ["GBR-LON::TRAN::Z4::CORR.RIVER.EAST_MAIN"] walk: ["GBR-LON::TRAN::Z4::CORR.WALK.GREENWICH_BAND"] bus: ["GBR-LON::TRAN::Z4::CORR.BUS.EAST_CORE"] tube: ["GBR-LON::TRAN::Z4::CORR.TUBE.EAST_CORE"] portal_sensors_required: [S.pier_queue_index,S.river_service_availability,S.boat_headway_delta,S.pier_crowding_index,S.diversion_overflow_index] phase_tripwires: {P1: "use river P1 template", P0: "use river P0 template"} truncation_actions: ["queue channelisation + timed boarding pulses"] stitching_actions: ["staged release"]# ------------------------------------------------------------# 07H) Failure mode traces (canonical, non-emotive)# ------------------------------------------------------------FAILURE_MODE_TRACE: TRACE_TERMINAL_WAVE_TO_TUBE_CRUSH: chain: - "terminal arrival wave ->" - "gate throughput saturates ->" - "interchange dwell rises ->" - "platform crowding crosses threshold ->" - "downstream corridor headway variance amplifies -> P2→P1 drift" repair: - "truncate: time-slice releases + zoning + upstream holds" - "stitch: variance-first stabilisation then staged de-metering" TRACE_RIVER_HEADWAY_SLIP_TO_PIER_STEP_QUEUE: chain: - "boat headway delta rises ->" - "queue steps up sharply ->" - "spillback blocks adjacent walk/bus/tube access ->" - "portal coupling propagates into nearby interchange" repair: - "truncate: timed boarding pulses + limit pier inflow" - "stitch: reopen in stages once headways stabilise"# ------------------------------------------------------------# 07I) Expansion hooks (make it complete for all portals)# ------------------------------------------------------------EXPANSION_RULES: R1_IMPORT_ALL_NR_MANAGED_LONDON_STATIONS: do: - "Mint stable portal IDs for every station listed under Network Rail 'London stations'." - "Populate manager_role_split from each station page (assistance vs asset)." R2_IMPORT_ALL_PIERS: do: - "Expand river pier registry to full pier list from river operator map." - "Assign WEST/CENTRAL/EAST zone_band and bind to adjacent portals."
Here’s Section 10 — turning Z4 trunks into Z2 District Subnets (control regions) and Z1 Cells (neighbourhood micro-zones). Core districts referenced once here: City of London, Westminster, Canary Wharf, Stratford, Heathrow Airport, Greenwich, Croydon, Wembley, with operator surfaces often involving Transport for London.
# ============================================================# LONDON CITY OS — ALMOST-CODE (CANON) — v0.1# SECTION 10 — Z2–Z1 SUBNET PACKS (CORE DISTRICTS)# Z4 corridors become controllable Z2 regions + Z1 cells# ============================================================CANON_VERSION: "v0.1"PLACE: place_id: "GBR-LON" place_name: "London" lane: "TRAN" z_level: "Z2_Z1" pack: "SUBNETS_CORE_DISTRICTS"# ------------------------------------------------------------# 10A) Definition locks# ------------------------------------------------------------DEFINITION_LOCK: SUBNET_Z2: > A control region (district-scale) that bundles multiple Z3 Portals + Z3 Valves + Z4 Corridors into one “local stability unit”. Router actions target subnets when single-asset control is insufficient. CELL_Z1: > A neighbourhood micro-zone inside a Z2 Subnet. Cells are where last-mile crowding happens (streets, entrances, concourses). Cells are controlled by: gating, one-way circuits, queue channelisation, and timed release. SUBNET_BOUNDARY_RULE: > Subnet boundaries follow transfer topology, not borough borders. If two areas exchange people primarily through 1–2 interchange chokepoints, they must be in the same subnet (or explicitly marked as a coupled pair). COUPLED_SUBNET_PAIR: > Two Z2 subnets that behave as one under perturbation (e.g., shared portals or shared trunk). Router must coordinate truncation on both to prevent “pressure swap oscillation”. LAST_MILE_CRUSH_RULE: > If a portal is P1 (crowding/variance), treat adjacent Z1 cells as the first-class risk surface. Do not only fix the portal; fix the cell inflow geometry.# ------------------------------------------------------------# 10B) Schema — subnet + cell + bind edges# ------------------------------------------------------------SCHEMA: GBR-LON::TRAN::Z2::SUBNET::<TOKEN>: name_public: "<DISTRICT_NAME>" subnet_class: [CORE|EDGE|OUTER|AIRPORT|EVENT] coupled_to: ["GBR-LON::TRAN::Z2::SUBNET::<TOKEN>"] primary_portals: rail: ["GBR-LON::TRAN::Z3::PORTAL.RAIL.<TOKEN>"] river: ["GBR-LON::TRAN::Z3::PORTAL.RIVER.<TOKEN>"] primary_valves: road_crossings: ["GBR-LON::TRAN::Z3::VALVE.CROSSING.<TOKEN>"] rail_crossings: ["GBR-LON::TRAN::Z3::VALVE.RAIL_CROSSING.<TOKEN>"] bridge_valves: ["GBR-LON::TRAN::Z3::VALVE.BRIDGE.<TOKEN>"] corridor_coverage: include: ["GBR-LON::TRAN::Z4::CORR.*"] priority_trunks: ["GBR-LON::TRAN::Z4::CORR.*"] z1_cells: ["GBR-LON::TRAN::Z1::CELL::<TOKEN>"] subnet_sensors_required: - A.subnet_portal_P1_count - A.subnet_portal_P0_count - A.subnet_delay_delta - A.subnet_variance_index - A.subnet_last_mile_queue_index - A.subnet_cross_river_dependence phase_tripwires: P1: "<rule>" P0: "<rule>" truncation_actions: - "<action>" stitching_actions: - "<action>" GBR-LON::TRAN::Z1::CELL::<TOKEN>: name_public: "<CELL_NAME>" parent_subnet: "GBR-LON::TRAN::Z2::SUBNET::<TOKEN>" cell_kind: [STREET_GATE|CONCOURSE_ARC|BUS_INTERCHANGE|PEDESTRIAN_BRIDGEHEAD|PIER_QUEUE_FIELD|NIGHT_ECONOMY_ZONE|EVENT_PLAZA] feeds_portals: ["GBR-LON::TRAN::Z3::PORTAL.*"] feeds_corridors: ["GBR-LON::TRAN::Z4::CORR.*"] cell_sensors_required: - S.cell_queue_index - S.cell_density_proxy - S.cell_flow_direction_conflict - S.cell_gate_throughput - S.cell_spillback_risk phase_tripwires: P1: "<rule>" P0: "<rule>" truncation_actions: - "<action>" stitching_actions: - "<action>" GBR-LON::TRAN::Z2::EDGE.SUBNET_BIND::<SUBNET_TOKEN>__<ASSET_ID>: type: "SUBNET_BIND_EDGE" asset_type: [PORTAL|VALVE|CORRIDOR] coupling_strength: [LOW|MED|HIGH] note: "Allows router to target subnet as a whole" GBR-LON::TRAN::Z1::EDGE.CELL_BIND::<CELL_TOKEN>__<PORTAL_TOKEN>: type: "CELL_TO_PORTAL_EDGE" conflict_risk: [LOW|MED|HIGH] crush_risk: [LOW|MED|HIGH] control_surfaces: - "gates" - "barriers" - "one-way circuits" - "queue channelisation" - "timed release"# ------------------------------------------------------------# 10C) Subnet-level aggregations (A.*)# ------------------------------------------------------------AGGREGATIONS: A.subnet_portal_P1_count: "count(portal_phase == P1)" A.subnet_portal_P0_count: "count(portal_phase == P0)" A.subnet_delay_delta: "median(travel_time_delta over priority_trunks)" A.subnet_variance_index: "median(headway_delta + diversion_overflow_index proxy)" A.subnet_last_mile_queue_index: "max(cell_queue_index over z1_cells)" A.subnet_cross_river_dependence: > fraction of subnet’s priority_trunks that cross the Thames OR depend on a Thames gate.# ------------------------------------------------------------# 10D) Phase tripwires (subnet + cell)# ------------------------------------------------------------PHASE_TRIPWIRES: SUBNET_P1_TEMPLATE: if: - "A.subnet_portal_P1_count >= 1" - "OR A.subnet_last_mile_queue_index > 55" - "OR A.subnet_variance_index elevated for 2 windows" then: - "truncate locally BEFORE it becomes citywide: meter cell inflows + cap transfers" - "publish subnet-level reroute: portal-to-portal within/around subnet" - "protect cross-river gates if subnet_cross_river_dependence high" SUBNET_P0_TEMPLATE: if: - "A.subnet_portal_P0_count >= 1" - "OR A.subnet_last_mile_queue_index > 80" then: - "hard truncation: stop inflows at boundary portals + feeder interchanges" - "prevent pressure swap into coupled subnet" - "stitch only when last-mile queue returns to <= P2 band" CELL_P1_TEMPLATE: if: - "S.cell_queue_index > 55" - "OR S.cell_spillback_risk high" - "OR S.cell_flow_direction_conflict high" then: - "one-way circuiting + queue channelisation" - "timed release into portal concourse" - "divert footfall to alternate cell gates" CELL_P0_TEMPLATE: if: - "S.cell_queue_index > 80" - "OR S.cell_density_proxy high and rising" then: - "close/hold at upstream gates" - "stop transfers into the cell" - "stitch only after density stabilises"# ------------------------------------------------------------# 10E) Core subnet registry (minimal viable set)# NOTE: tokens are stable; expand later, never rename.# ------------------------------------------------------------SUBNET_REGISTRY_CORE: GBR-LON::TRAN::Z2::SUBNET.CITY_CORE: name_public: "City Core (Bank–Liverpool St–Cannon St arc)" subnet_class: CORE coupled_to: ["GBR-LON::TRAN::Z2::SUBNET.LONDON_BRIDGE_SOUTHBANK"] primary_portals: rail: ["GBR-LON::TRAN::Z3::PORTAL.RAIL.LIVERPOOL_STREET","GBR-LON::TRAN::Z3::PORTAL.RAIL.CANNON_STREET"] river: [] primary_valves: road_crossings: [] rail_crossings: ["GBR-LON::TRAN::Z3::VALVE.RAIL_CROSSING.CANNON_STREET_RAILWAY_BRIDGE"] bridge_valves: [] corridor_coverage: include: ["GBR-LON::TRAN::Z4::BUNDLE.CENTRAL_TUBE_TRUNK","GBR-LON::TRAN::Z4::CORR.NATIONAL_RAIL.E_TERMINALS_STRIP"] priority_trunks: ["GBR-LON::TRAN::Z4::BUNDLE.CENTRAL_TUBE_TRUNK"] z1_cells: - GBR-LON::TRAN::Z1::CELL.BANK_NODE - GBR-LON::TRAN::Z1::CELL.LIVERPOOL_STREET_NODE - GBR-LON::TRAN::Z1::CELL.CANNON_STREET_BRIDGEHEAD subnet_sensors_required: [A.subnet_portal_P1_count,A.subnet_portal_P0_count,A.subnet_delay_delta,A.subnet_variance_index,A.subnet_last_mile_queue_index,A.subnet_cross_river_dependence] phase_tripwires: {P1: "use SUBNET_P1_TEMPLATE", P0: "use SUBNET_P0_TEMPLATE"} truncation_actions: - "meter entries at rail portals; cap transfers into tube trunk" - "protect bridgehead cell (prevent spillback across the Thames gate)" stitching_actions: - "staged de-metering of cells first, then portals" GBR-LON::TRAN::Z2::SUBNET.WEST_END_CORE: name_public: "West End Core (Oxford Circus–Soho–Leicester Sq band)" subnet_class: CORE coupled_to: ["GBR-LON::TRAN::Z2::SUBNET.VICTORIA_WESTMINSTER"] primary_portals: {rail: [], river: []} primary_valves: {road_crossings: [], rail_crossings: [], bridge_valves: []} corridor_coverage: include: ["GBR-LON::TRAN::Z4::BUNDLE.CENTRAL_TUBE_TRUNK"] priority_trunks: ["GBR-LON::TRAN::Z4::BUNDLE.CENTRAL_TUBE_TRUNK"] z1_cells: - GBR-LON::TRAN::Z1::CELL.OXFORD_CIRCUS_ARC - GBR-LON::TRAN::Z1::CELL.SOHO_NIGHT_ZONE - GBR-LON::TRAN::Z1::CELL.LEICESTER_SQ_ARC subnet_sensors_required: [A.subnet_portal_P1_count,A.subnet_portal_P0_count,A.subnet_delay_delta,A.subnet_variance_index,A.subnet_last_mile_queue_index,A.subnet_cross_river_dependence] phase_tripwires: {P1: "use SUBNET_P1_TEMPLATE", P0: "use SUBNET_P0_TEMPLATE"} truncation_actions: - "night-economy bias: early cell gating + one-way pedestrian circuits" - "cap transfers into the band when variance rises" stitching_actions: - "restore cell gates in pulses; watch rebound" GBR-LON::TRAN::Z2::SUBNET.KX_STP_EUSTON: name_public: "King's Cross–St Pancras–Euston super-portal zone" subnet_class: CORE coupled_to: ["GBR-LON::TRAN::Z2::SUBNET.WEST_END_CORE"] primary_portals: rail: ["GBR-LON::TRAN::Z3::PORTAL.RAIL.KINGS_CROSS","GBR-LON::TRAN::Z3::PORTAL.RAIL.ST_PANCRAS_INTL","GBR-LON::TRAN::Z3::PORTAL.RAIL.EUSTON"] river: [] primary_valves: {road_crossings: [], rail_crossings: [], bridge_valves: []} corridor_coverage: include: ["GBR-LON::TRAN::Z4::BUNDLE.CENTRAL_RAIL_TERMINALS_STRIP","GBR-LON::TRAN::Z4::BUNDLE.CENTRAL_TUBE_TRUNK"] priority_trunks: ["GBR-LON::TRAN::Z4::BUNDLE.CENTRAL_RAIL_TERMINALS_STRIP"] z1_cells: - GBR-LON::TRAN::Z1::CELL.KX_CONCOURSE_FIELD - GBR-LON::TRAN::Z1::CELL.STP_CONCOURSE_FIELD - GBR-LON::TRAN::Z1::CELL.EUSTON_GATE_FIELD subnet_sensors_required: [A.subnet_portal_P1_count,A.subnet_portal_P0_count,A.subnet_delay_delta,A.subnet_variance_index,A.subnet_last_mile_queue_index,A.subnet_cross_river_dependence] phase_tripwires: {P1: "use SUBNET_P1_TEMPLATE", P0: "use SUBNET_P0_TEMPLATE"} truncation_actions: - "terminal wave control: time-slice releases into tube + street" - "prevent pressure swap into West End by capping transfers when portals P1" stitching_actions: - "staged reopen of concourse cells, then portals" GBR-LON::TRAN::Z2::SUBNET.PADDINGTON_HEATHROW_ARC: name_public: "Paddington–Heathrow arc" subnet_class: AIRPORT coupled_to: [] primary_portals: rail: ["GBR-LON::TRAN::Z3::PORTAL.RAIL.PADDINGTON"] river: [] primary_valves: {road_crossings: [], rail_crossings: [], bridge_valves: []} corridor_coverage: include: ["GBR-LON::TRAN::Z4::CORR.ELIZABETH.ELIZABETH_MAIN","GBR-LON::TRAN::Z4::CORR.NATIONAL_RAIL.W_TERMINALS_STRIP"] priority_trunks: ["GBR-LON::TRAN::Z4::CORR.ELIZABETH.ELIZABETH_MAIN"] z1_cells: - GBR-LON::TRAN::Z1::CELL.PADDINGTON_GATE_FIELD - GBR-LON::TRAN::Z1::CELL.HEATHROW_TERMINAL_PULSE_FIELD subnet_sensors_required: [A.subnet_portal_P1_count,A.subnet_portal_P0_count,A.subnet_delay_delta,A.subnet_variance_index,A.subnet_last_mile_queue_index,A.subnet_cross_river_dependence] phase_tripwires: {P1: "use SUBNET_P1_TEMPLATE", P0: "use SUBNET_P0_TEMPLATE"} truncation_actions: - "protect airport pulse arrivals: gate-meter into trunk corridors" - "prevent downstream portal crush via early inflow smoothing" stitching_actions: - "restore in pulses aligned to arrival waves" GBR-LON::TRAN::Z2::SUBNET.LONDON_BRIDGE_SOUTHBANK: name_public: "London Bridge–South Bank (Thames interface band)" subnet_class: CORE coupled_to: ["GBR-LON::TRAN::Z2::SUBNET.CITY_CORE"] primary_portals: rail: ["GBR-LON::TRAN::Z3::PORTAL.RAIL.LONDON_BRIDGE","GBR-LON::TRAN::Z3::PORTAL.RAIL.WATERLOO"] river: ["GBR-LON::TRAN::Z3::PORTAL.RIVER.LONDON_EYE_WATERLOO_PIER"] primary_valves: {road_crossings: [], rail_crossings: [], bridge_valves: []} corridor_coverage: include: ["GBR-LON::TRAN::Z4::BUNDLE.CENTRAL_TUBE_TRUNK","GBR-LON::TRAN::Z4::CORR.RIVER.CENTRAL_MAIN"] priority_trunks: ["GBR-LON::TRAN::Z4::CORR.RIVER.CENTRAL_MAIN","GBR-LON::TRAN::Z4::BUNDLE.CENTRAL_TUBE_TRUNK"] z1_cells: - GBR-LON::TRAN::Z1::CELL.LONDON_BRIDGE_CONCOURSE_FIELD - GBR-LON::TRAN::Z1::CELL.WATERLOO_CONCOURSE_FIELD - GBR-LON::TRAN::Z1::CELL.SOUTHBANK_PEDESTRIAN_ARC subnet_sensors_required: [A.subnet_portal_P1_count,A.subnet_portal_P0_count,A.subnet_delay_delta,A.subnet_variance_index,A.subnet_last_mile_queue_index,A.subnet_cross_river_dependence] phase_tripwires: {P1: "use SUBNET_P1_TEMPLATE", P0: "use SUBNET_P0_TEMPLATE"} truncation_actions: - "treat as Thames interface: meter piers + concourse cells early" - "cap transfers into tube trunk when last-mile queues rise" stitching_actions: - "staged reopen: cells first, then portals, then pier boarding" GBR-LON::TRAN::Z2::SUBNET.CANARY_WHARF_DOCKLANDS: name_public: "Canary Wharf–Docklands" subnet_class: EDGE coupled_to: ["GBR-LON::TRAN::Z2::SUBNET.STRATFORD_EAST"] primary_portals: rail: [] river: ["GBR-LON::TRAN::Z3::PORTAL.RIVER.CANARY_WHARF_PIER"] primary_valves: {road_crossings: [], rail_crossings: [], bridge_valves: []} corridor_coverage: include: ["GBR-LON::TRAN::Z4::CORR.TUBE.JUBILEE","GBR-LON::TRAN::Z4::CORR.RIVER.EAST_MAIN"] priority_trunks: ["GBR-LON::TRAN::Z4::CORR.TUBE.JUBILEE"] z1_cells: - GBR-LON::TRAN::Z1::CELL.CW_PLAZA_FIELD - GBR-LON::TRAN::Z1::CELL.CW_PIER_QUEUE_FIELD subnet_sensors_required: [A.subnet_portal_P1_count,A.subnet_portal_P0_count,A.subnet_delay_delta,A.subnet_variance_index,A.subnet_last_mile_queue_index,A.subnet_cross_river_dependence] phase_tripwires: {P1: "use SUBNET_P1_TEMPLATE", P0: "use SUBNET_P0_TEMPLATE"} truncation_actions: - "pier queue control to prevent spillback into interchange paths" stitching_actions: - "staged pier reopening + timed boarding pulses" GBR-LON::TRAN::Z2::SUBNET.STRATFORD_EAST: name_public: "Stratford–East Hub" subnet_class: EDGE coupled_to: ["GBR-LON::TRAN::Z2::SUBNET.CANARY_WHARF_DOCKLANDS"] primary_portals: {rail: [], river: []} primary_valves: {road_crossings: [], rail_crossings: [], bridge_valves: []} corridor_coverage: include: ["GBR-LON::TRAN::Z4::CORR.ELIZABETH.ELIZABETH_MAIN","GBR-LON::TRAN::Z4::BUNDLE.CENTRAL_TUBE_TRUNK"] priority_trunks: ["GBR-LON::TRAN::Z4::CORR.ELIZABETH.ELIZABETH_MAIN"] z1_cells: - GBR-LON::TRAN::Z1::CELL.STRATFORD_GATE_FIELD - GBR-LON::TRAN::Z1::CELL.OLYMPIC_PLAZA_FIELD subnet_sensors_required: [A.subnet_portal_P1_count,A.subnet_portal_P0_count,A.subnet_delay_delta,A.subnet_variance_index,A.subnet_last_mile_queue_index,A.subnet_cross_river_dependence] phase_tripwires: {P1: "use SUBNET_P1_TEMPLATE", P0: "use SUBNET_P0_TEMPLATE"} truncation_actions: - "event-style control even on normal days: cell gating + timed release" stitching_actions: - "staged de-metering" GBR-LON::TRAN::Z2::SUBNET.GREENWICH_NORTH: name_public: "Greenwich–North Greenwich band" subnet_class: EDGE coupled_to: ["GBR-LON::TRAN::Z2::SUBNET.CANARY_WHARF_DOCKLANDS"] primary_portals: {rail: [], river: ["GBR-LON::TRAN::Z3::PORTAL.RIVER.NORTH_GREENWICH_PIER"]} primary_valves: {road_crossings: [], rail_crossings: [], bridge_valves: []} corridor_coverage: include: ["GBR-LON::TRAN::Z4::CORR.RIVER.EAST_MAIN"] priority_trunks: ["GBR-LON::TRAN::Z4::CORR.RIVER.EAST_MAIN"] z1_cells: - GBR-LON::TRAN::Z1::CELL.NORTH_GREENWICH_PIER_QUEUE_FIELD - GBR-LON::TRAN::Z1::CELL.GREENWICH_LAST_MILE_ARC subnet_sensors_required: [A.subnet_portal_P1_count,A.subnet_portal_P0_count,A.subnet_delay_delta,A.subnet_variance_index,A.subnet_last_mile_queue_index,A.subnet_cross_river_dependence] phase_tripwires: {P1: "use SUBNET_P1_TEMPLATE", P0: "use SUBNET_P0_TEMPLATE"} truncation_actions: ["meter pier inflow early; prevent spillback"] stitching_actions: ["staged reopen"] GBR-LON::TRAN::Z2::SUBNET.CROYDON_OUTER: name_public: "Croydon outer hub" subnet_class: OUTER coupled_to: [] primary_portals: {rail: [], river: []} primary_valves: {road_crossings: [], rail_crossings: [], bridge_valves: []} corridor_coverage: {include: [], priority_trunks: []} z1_cells: [GBR-LON::TRAN::Z1::CELL.CROYDON_TOWN_CENTRE_FIELD] subnet_sensors_required: [A.subnet_portal_P1_count,A.subnet_portal_P0_count,A.subnet_delay_delta,A.subnet_variance_index,A.subnet_last_mile_queue_index,A.subnet_cross_river_dependence] phase_tripwires: {P1: "use SUBNET_P1_TEMPLATE", P0: "use SUBNET_P0_TEMPLATE"} truncation_actions: ["local containment; prevent spill into central terminals strip"] stitching_actions: ["staged restore"] GBR-LON::TRAN::Z2::SUBNET.WEMBLEY_EVENT: name_public: "Wembley event zone" subnet_class: EVENT coupled_to: [] primary_portals: {rail: [], river: []} primary_valves: {road_crossings: [], rail_crossings: [], bridge_valves: []} corridor_coverage: {include: [], priority_trunks: []} z1_cells: - GBR-LON::TRAN::Z1::CELL.WEMBLEY_STADIUM_PLAZA_FIELD - GBR-LON::TRAN::Z1::CELL.WEMBLEY_GATE_CHANNELS subnet_sensors_required: [A.subnet_portal_P1_count,A.subnet_portal_P0_count,A.subnet_delay_delta,A.subnet_variance_index,A.subnet_last_mile_queue_index,A.subnet_cross_river_dependence] phase_tripwires: {P1: "use SUBNET_P1_TEMPLATE", P0: "use SUBNET_P0_TEMPLATE"} truncation_actions: - "event egress playbook: timed release waves + one-way circuits" stitching_actions: - "staged reopen after rebound check"# ------------------------------------------------------------# 10F) Z1 cell registry (minimal examples; expand inside each subnet)# ------------------------------------------------------------CELL_REGISTRY_MINIMAL: GBR-LON::TRAN::Z1::CELL.BANK_NODE: name_public: "Bank node cell" parent_subnet: "GBR-LON::TRAN::Z2::SUBNET.CITY_CORE" cell_kind: CONCOURSE_ARC feeds_portals: [] feeds_corridors: ["GBR-LON::TRAN::Z4::BUNDLE.CENTRAL_TUBE_TRUNK"] cell_sensors_required: [S.cell_queue_index,S.cell_density_proxy,S.cell_flow_direction_conflict,S.cell_gate_throughput,S.cell_spillback_risk] phase_tripwires: {P1: "use CELL_P1_TEMPLATE", P0: "use CELL_P0_TEMPLATE"} truncation_actions: ["one-way circuits + timed release into platform arcs"] stitching_actions: ["staged de-metering after density stabilises"] GBR-LON::TRAN::Z1::CELL.SOHO_NIGHT_ZONE: name_public: "Soho night-economy cell" parent_subnet: "GBR-LON::TRAN::Z2::SUBNET.WEST_END_CORE" cell_kind: NIGHT_ECONOMY_ZONE feeds_portals: [] feeds_corridors: ["GBR-LON::TRAN::Z4::BUNDLE.CENTRAL_TUBE_TRUNK"] cell_sensors_required: [S.cell_queue_index,S.cell_density_proxy,S.cell_flow_direction_conflict,S.cell_gate_throughput,S.cell_spillback_risk] phase_tripwires: {P1: "use CELL_P1_TEMPLATE", P0: "use CELL_P0_TEMPLATE"} truncation_actions: ["early gating + route pedestrians into one-way loops"] stitching_actions: ["pulse reopen; watch rebound"] GBR-LON::TRAN::Z1::CELL.CW_PIER_QUEUE_FIELD: name_public: "Canary Wharf pier queue field" parent_subnet: "GBR-LON::TRAN::Z2::SUBNET.CANARY_WHARF_DOCKLANDS" cell_kind: PIER_QUEUE_FIELD feeds_portals: ["GBR-LON::TRAN::Z3::PORTAL.RIVER.CANARY_WHARF_PIER"] feeds_corridors: ["GBR-LON::TRAN::Z4::CORR.RIVER.EAST_MAIN"] cell_sensors_required: [S.cell_queue_index,S.cell_density_proxy,S.cell_gate_throughput,S.cell_spillback_risk,S.cell_flow_direction_conflict] phase_tripwires: {P1: "use CELL_P1_TEMPLATE", P0: "use CELL_P0_TEMPLATE"} truncation_actions: ["queue channelisation + timed boarding pulses"] stitching_actions: ["staged reopen"]# ------------------------------------------------------------# 10G) Failure mode traces (district + cell coupling)# ------------------------------------------------------------FAILURE_MODE_TRACE: TRACE_PRESSURE_SWAP_OSCILLATION: chain: - "Subnet A portal enters P1 ->" - "reroute pushes demand into coupled Subnet B ->" - "Subnet B last-mile queues spike ->" - "B enters P1 ->" - "demand swings back -> oscillation (A↔B) with rising variance" repair: - "truncate both subnets simultaneously (paired metering)" - "publish stable portal-to-portal reroute, not ad-hoc" - "stitch in stages with rebound checks" TRACE_CELL_SPILLBACK_TO_PORTAL_P0: chain: - "Z1 cell queue grows ->" - "spillback blocks gates/entrances ->" - "portal concourse saturates ->" - "platform crowding crosses threshold -> portal P0" repair: - "truncate at cell boundary first" - "stitch by reopening cell gates in timed pulses"# ------------------------------------------------------------# 10H) Expansion rules (make it complete for all London)# ------------------------------------------------------------EXPANSION_RULES: R1_MINT_SUBNETS_CITYWIDE: do: - "Create Z2 subnets for every major interchange district and outer hub." - "Keep tokens stable; never rename (only version forward)." R2_CELL_TILING: do: - "Tile each subnet into Z1 cells around portals, bridgeheads, and high-footfall arcs." - "Attach control surfaces: gates, barriers, one-way circuits." R3_BINDING_TO_SECTION_08_ROUTER: do: - "Router may target SUBNET.* in addition to PORTAL.* and CORR.*" - "When portal P1: auto-target adjacent cells first (LAST_MILE_CRUSH_RULE)."
# ============================================================# LONDON CITY OS — ALMOST-CODE (CANON) — v0.1# SECTION 11 — EVENT SURGE PACK (Z3→Z1)# Pre-metering + timed release + rebound checks# Plug-in for: Section 08 Router + Section 10 Subnets/Cells# ============================================================CANON_VERSION: "v0.1"PLACE: place_id: "GBR-LON" place_name: "London" lane: "TRAN" z_level: "Z3_to_Z1" pack: "EVENT_SURGE"# ------------------------------------------------------------# 11A) Definition locks# ------------------------------------------------------------DEFINITION_LOCK: EVENT_SURGE: > A predictable, time-bounded load wave that increases mean + variance across portals, corridors, and last-mile cells (entry + egress). The correct response is PRE-TRUNCATION (pre-metering) not reactive closure. PRE_TRUNCATION: > A truncation action executed BEFORE P1 thresholds are crossed (e.g., gating earlier, smoothing releases, capping transfers early). TIMED_RELEASE: > A controlled pulse schedule that releases crowds in waves to keep densities below crush thresholds while sustaining throughput. REBOUND_SURGE: > A second wave caused by premature reopening (stitch too fast), often worse than the first due to accumulated queue mass. EVENT_CONTROL_ENVELOPE: > A planned P3 safety band for all affected cells/portals, with explicit P2/P1/P0 tripwires and pre-authorised actions.# ------------------------------------------------------------# 11B) Inputs (event sensors + local sensors)# ------------------------------------------------------------INPUTS: EVENT_FEEDS: - S.event_expected_attendance - S.event_entry_rate_forecast - S.event_egress_rate_forecast - S.event_time_to_start - S.event_time_to_end - S.event_venue_state # OPEN|ENTRY|LIVE|EGRESS|CLOSED - S.event_security_state # NORMAL|ELEVATED|LOCKDOWN - S.event_weather_risk # LOW|MED|HIGH (optional) LOCAL_FEEDS (from Section 07/10): - S.platform_crowding_index - S.interchange_dwell - S.headway_delta_in - S.headway_delta_out - S.diversion_overflow_index - S.cell_queue_index - S.cell_density_proxy - S.cell_flow_direction_conflict - S.cell_spillback_risk - S.cell_gate_throughput - S.incident_state# ------------------------------------------------------------# 11C) Output actions (event-specialised controls)# ------------------------------------------------------------OUTPUTS: EVENT_ACTION_TYPES: ACT.PRE_METER_PORTALS: effect: "smooth inflows before crush" targets: ["PORTAL.*"] ACT.PRE_METER_CELLS: effect: "hold at cell boundary; protect concourse geometry" targets: ["CELL.*"] ACT.ENTRY_SLOT_TIMETABLE: effect: "allocate entry slots; reduce burst arrivals" targets: ["VENUE_ENTRY_GATES","FEEDER_PORTALS"] ACT.EGRESS_WAVE_SCHEDULE: effect: "release in waves; prevent platform/bridgehead crush" targets: ["VENUE_EXITS","CELL.*","PORTAL.*"] ACT.ONE_WAY_PEDESTRIAN_CIRCUITS: effect: "eliminate counterflow conflicts" targets: ["CELL.*"] ACT.HARD_TRANSFER_CAPS: effect: "stop transfer circuits from saturating" targets: ["INTERCHANGE.*"] ACT.SPECIAL_REROUTE_MAP: effect: "event-specific portal-to-portal guidance" targets: ["CITYWIDE_MESSAGE_LAYER"] ACT.REBOUND_LOCK: effect: "prevent premature reopening; enforce staged restore" targets: ["CELL.*","PORTAL.*"]# ------------------------------------------------------------# 11D) Event types registry (minimal viable set; expand)# ------------------------------------------------------------EVENT_TYPES: GBR-LON::TRAN::Z3::EVENT_TYPE.STADIUM_MATCH: surge_shape: "sharp egress spike; moderate entry ramp" dominant_failure_surface: "Z1 egress cells + portals (platform crush risk)" coupling_profile: "high local + high rail coupling" GBR-LON::TRAN::Z3::EVENT_TYPE.ARENA_CONCERT: surge_shape: "late-night egress spike; alcohol/night-economy overlay" dominant_failure_surface: "Z1 night cells + interchange dwell" coupling_profile: "high pedestrian conflict + rail variance" GBR-LON::TRAN::Z3::EVENT_TYPE.PARADE_MARCH: surge_shape: "moving blockage; corridor capacity deformation" dominant_failure_surface: "street cells + road turns + bus trunk deformation" coupling_profile: "wide-area, low predictability" GBR-LON::TRAN::Z3::EVENT_TYPE.FESTIVAL_PARK: surge_shape: "multi-hour plateau; multiple micro-spikes" dominant_failure_surface: "cells + walk arcs + multiple portals" coupling_profile: "medium; rebound risk high" GBR-LON::TRAN::Z3::EVENT_TYPE.HOLIDAY_SHOPPING_PEAK: surge_shape: "long plateau; repeated micro-bursts" dominant_failure_surface: "West End cells + tube trunk transfer circuits" coupling_profile: "high central coupling" GBR-LON::TRAN::Z3::EVENT_TYPE.CITYWIDE_DISRUPTION_STRIKE: surge_shape: "systemic corridor compression + high variance" dominant_failure_surface: "rings + alternate modes; crowd at remaining portals" coupling_profile: "very high; router-led"# ------------------------------------------------------------# 11E) Event activation contract (how events attach to subnets/cells)# ------------------------------------------------------------EVENT_BINDING_SCHEMA: GBR-LON::TRAN::Z3::EVENT::<EVENT_TOKEN>: name_public: "<EVENT_NAME>" type: "GBR-LON::TRAN::Z3::EVENT_TYPE.*" venue_subnet: "GBR-LON::TRAN::Z2::SUBNET.<TOKEN>" primary_cells: entry_cells: ["GBR-LON::TRAN::Z1::CELL.<TOKEN>"] egress_cells: ["GBR-LON::TRAN::Z1::CELL.<TOKEN>"] primary_portals: rail: ["GBR-LON::TRAN::Z3::PORTAL.RAIL.<TOKEN>"] river: ["GBR-LON::TRAN::Z3::PORTAL.RIVER.<TOKEN>"] primary_corridors: - "GBR-LON::TRAN::Z4::CORR.*" schedule: start_time: "<ISO8601>" end_time: "<ISO8601>" key_phases: ENTRY_OPEN: "<ISO8601>" LIVE_START: "<ISO8601>" EGRESS_START: "<ISO8601>" CLEAR_TARGET: "<ISO8601>" envelope: max_cell_queue_index: 55 # keep below P1 where possible max_platform_crowding: 55 # keep portals below P1 where possible max_headway_delta: 120 pre_authorised_actions: - ACT.PRE_METER_CELLS - ACT.ONE_WAY_PEDESTRIAN_CIRCUITS - ACT.PRE_METER_PORTALS - ACT.EGRESS_WAVE_SCHEDULE - ACT.SPECIAL_REROUTE_MAP rebound_policy: hold_min_minutes_after_egress: 30 reopen_only_if: - "cell_queue_index <= 25 for 2 windows" - "platform_crowding_index <= 25 for 2 windows" - "headway_delta <= 30 for 2 windows"# ------------------------------------------------------------# 11F) Time-axis control plan (T-72 to T+120)# ------------------------------------------------------------TIME_AXIS_PLAN: T_MINUS_72H: - "Mint EVENT record + bind to subnet/cells/portals/corridors" - "Set envelope targets and pre-authorised actions" - "Publish draft SPECIAL_REROUTE_MAP skeleton (hidden until T-24)" T_MINUS_24H: - "Activate PRE_TRUNCATION guardband: lower thresholds by 1 band for event subnet" - "Pre-stage signage + barriers for one-way circuits in key cells" - "Confirm timed release capacity (gate throughput targets)" T_MINUS_2H: - "Enable PRE_METER_CELLS at entry cells if queue growth slope rising" - "Enable PRE_METER_PORTALS if platform crowding trending to P2" - "Cap transfers into event subnet if interchange dwell trending up" T_MINUS_30M: - "Switch venue_state to ENTRY; enforce entry slot timetable if burst arrivals" - "Publish SPECIAL_REROUTE_MAP live" T_PLUS_0 (LIVE_START): - "Maintain P3 band; preserve headway variance buffers" - "Run low-level metering continuously (avoid late surprises)" T_PLUS_EGRESS_START: - "Switch to EGRESS_WAVE_SCHEDULE" - "Force ONE_WAY_PEDESTRIAN_CIRCUITS" - "Hard caps on transfers into event portals" - "Protect bridgeheads and concourse arcs (cell-first control)" T_PLUS_60M: - "Enter REBOUND_LOCK window" - "No full reopen until rebound criteria satisfied" T_PLUS_120M: - "Stitch: staged reopen of cells -> portals -> transfer caps release" - "Close event record only when CLEAR_TARGET achieved"# ------------------------------------------------------------# 11G) Phase tripwires (event-aware, more conservative)# ------------------------------------------------------------EVENT_PHASE_TRIPWIRES: EVENT_P1_EARLY_WARNING: if: - "S.cell_queue_index > 45 AND slope(queue) rising" - "OR S.platform_crowding_index > 45 AND headway_delta_in rising" then: - "PRE_TRUNCATION: activate PRE_METER_CELLS + PRE_METER_PORTALS" - "Activate one-way circuits early (reduce conflict before crush)" EVENT_P1_TRIGGER: if: - "S.cell_queue_index > 55" - "OR S.cell_flow_direction_conflict high" - "OR S.platform_crowding_index > 55" - "OR S.interchange_dwell > 8" then: - "TRUNCATE: timed release + hard transfer caps" - "Publish special reroute map" EVENT_P0_TRIGGER: if: - "S.cell_queue_index > 80" - "OR S.platform_crowding_index > 80" - "OR S.incident_state in [MAJOR,EVAC,CLOSED]" - "OR S.event_security_state = LOCKDOWN" then: - "HARD TRUNCATION: stop inflows upstream; hold at boundary portals" - "Evac integrity: prevent transfers into affected portals/cells" - "Stitch only after 2-window stabilisation under P2 thresholds"# ------------------------------------------------------------# 11H) Playbook library (drop-in sequences for Section 08 Router)# ------------------------------------------------------------PLAYBOOK_LIBRARY: PLAYBOOK.EVENT_STADIUM_EGRESS: applies_to: [GBR-LON::TRAN::Z3::EVENT_TYPE.STADIUM_MATCH] intent: "Prevent platform/bridgehead crush during fast egress." truncate: - {act: ACT.ONE_WAY_PEDESTRIAN_CIRCUITS, targets: ["CELL.EGRESS_SET"]} - {act: ACT.EGRESS_WAVE_SCHEDULE, targets: ["VENUE_EXITS","CELL.EGRESS_SET","PORTAL.EGRESS_SET"]} - {act: ACT.HARD_TRANSFER_CAPS, targets: ["INTERCHANGES_FEEDING(PORTAL.EGRESS_SET)"]} - {act: ACT.PRE_METER_PORTALS, targets: ["PORTAL.EGRESS_SET"]} - {act: ACT.SPECIAL_REROUTE_MAP, targets: ["CITYWIDE_MESSAGE_LAYER"]} stitch: - {act: ACT.REBOUND_LOCK, targets: ["CELL.EGRESS_SET","PORTAL.EGRESS_SET"], rule: "hold_min_minutes_after_egress"} - {act: ACT.STAGED_REOPENING, targets: ["CELL.EGRESS_SET"], rule: "cells first"} - {act: ACT.STAGED_REOPENING, targets: ["PORTAL.EGRESS_SET"], rule: "then portals"} success_condition: - "cell_queue_index <= 25 for 2 windows" - "platform_crowding_index <= 25 for 2 windows" PLAYBOOK.EVENT_ARENA_LATE_NIGHT: applies_to: [GBR-LON::TRAN::Z3::EVENT_TYPE.ARENA_CONCERT] intent: "Late-night surge + conflict risk; keep corridors stable." truncate: - {act: ACT.ONE_WAY_PEDESTRIAN_CIRCUITS, targets: ["CELL.NIGHT_SET"]} - {act: ACT.PRE_METER_CELLS, targets: ["CELL.NIGHT_SET"]} - {act: ACT.HARD_TRANSFER_CAPS, targets: ["INTERCHANGES_NEAR(NIGHT_SET)"]} - {act: ACT.SPECIAL_REROUTE_MAP, targets: ["CITYWIDE_MESSAGE_LAYER"]} stitch: - {act: ACT.REBOUND_LOCK, targets: ["CELL.NIGHT_SET"], rule: "rebound criteria"} - {act: ACT.STAGED_REOPENING, targets: ["CELL.NIGHT_SET","PORTAL.NEAR(NIGHT_SET)"], rule: "pulse reopen"} success_condition: - "flow_direction_conflict low" - "queues back to P3 band" PLAYBOOK.EVENT_PARADE_CORRIDOR_DEFORMATION: applies_to: [GBR-LON::TRAN::Z3::EVENT_TYPE.PARADE_MARCH] intent: "Moving blockage; keep cross-city routing coherent." truncate: - {act: ACT.PUBLISH_REROUTE_MAP, targets: ["CITYWIDE_MESSAGE_LAYER"], note: "corridor-level detours"} - {act: ACT.RESTRICT_ROAD_TURNS, targets: ["Z4::CORR.ROAD.AFFECTED_ZONE"]} - {act: ACT.PRE_METER_PORTALS, targets: ["PORTAL.NEAR(AFFECTED_ZONE)"]} stitch: - {act: ACT.STAGED_REOPENING, targets: ["Z4::CORR.ROAD.AFFECTED_ZONE"], rule: "zone-by-zone"} success_condition: - "reroute pressure <= R2 for 3 windows" PLAYBOOK.EVENT_HOLIDAY_SHOPPING_PLATEAU: applies_to: [GBR-LON::TRAN::Z3::EVENT_TYPE.HOLIDAY_SHOPPING_PEAK] intent: "Long plateau; repeated micro-bursts; prevent slow drift into P1." truncate: - {act: ACT.PRE_METER_CELLS, targets: ["SUBNET.WEST_END_CORE::CELL_SET"]} - {act: ACT.ONE_WAY_PEDESTRIAN_CIRCUITS, targets: ["SUBNET.WEST_END_CORE::CELL_SET"]} - {act: ACT.HARD_TRANSFER_CAPS, targets: ["INTERCHANGES_FEEDING(SUBNET.WEST_END_CORE)"]} - {act: ACT.PRE_METER_PORTALS, targets: ["PORTAL.NEAR(SUBNET.WEST_END_CORE)"]} - {act: ACT.SPECIAL_REROUTE_MAP, targets: ["CITYWIDE_MESSAGE_LAYER"]} stitch: - {act: ACT.REBOUND_LOCK, targets: ["SUBNET.WEST_END_CORE::CELL_SET"], rule: "rebound criteria"} - {act: ACT.STAGED_REOPENING, targets: ["SUBNET.WEST_END_CORE::CELL_SET"], rule: "cells first"} success_condition: - "no portal in P1/P0 for 3 windows" PLAYBOOK.EVENT_CITYWIDE_STRIKE_COMPRESSION: applies_to: [GBR-LON::TRAN::Z3::EVENT_TYPE.CITYWIDE_DISRUPTION_STRIKE] intent: "Corridor compression; remaining network must not crush." truncate: - {act: ACT.SHED_DISCRETIONARY_DEMAND, targets: ["CITYWIDE_MESSAGE_LAYER"]} - {act: ACT.PRE_METER_PORTALS, targets: ["TOP_PORTALS_BY_CROWD_RISK"]} - {act: ACT.PRE_METER_CELLS, targets: ["TOP_CELLS_BY_CRUSH_RISK"]} - {act: ACT.SPECIAL_REROUTE_MAP, targets: ["CITYWIDE_MESSAGE_LAYER"], note: "mode substitution guidance"} stitch: - {act: ACT.STAGED_REOPENING, targets: ["TOP_PORTALS_BY_CROWD_RISK"], rule: "variance-first then capacity"} success_condition: - "city alert level returns to AMBER/GREEN"# ------------------------------------------------------------# 11I) Rebound detection + lock (the #1 stitching failure)# ------------------------------------------------------------REBOUND_CONTROL: REBOUND_DETECTOR: triggers: - "cell_queue_index rises from <=25 to >=45 within 2 windows" - "platform_crowding_index rises from <=25 to >=45 within 2 windows" - "headway_delta increases 2 bands within 2 windows" response: - "re-enter truncation immediately" - "extend REBOUND_LOCK window by +30 minutes" - "switch from continuous reopen to timed pulses" REBOUND_LOCK_RULE: enforce: - "no full reopen of gates until rebound detector quiet for 2 windows" - "cells reopen before portals" - "portals reopen before transfer caps are removed"# ------------------------------------------------------------# 11J) Failure mode traces (canonical, non-emotive)# ------------------------------------------------------------FAILURE_MODE_TRACE: TRACE_EVENT_EGRESS_TO_PORTAL_P0: chain: - "egress spike ->" - "cell flow conflict + density rises ->" - "spillback blocks portal access geometry ->" - "platform crowding crosses threshold -> portal P0" repair: - "cell-first truncation (one-way circuits + timed release)" - "hard transfer caps" - "stitch via rebound lock + staged reopen" TRACE_PREMATURE_STITCH_TO_REBOUND: chain: - "queues partially clear ->" - "full reopen ->" - "stored demand releases as burst ->" - "rebound surge -> P2→P1 drift -> P0 risk" repair: - "timed pulses only" - "variance-first stabilisation" - "hold until 2-window P3 stability"# ------------------------------------------------------------# 11K) Expansion rules (complete London coverage)# ------------------------------------------------------------EXPANSION_RULES: R1_EVENT_CATALOG_IMPORT: do: - "Create EVENT records for recurring venues + parade routes + holiday peaks." - "Bind each to Z2 subnet + Z1 cells + nearby portals + priority corridors." R2_CELL_GEOMETRY_SPECIALISATION: do: - "For each event subnet, define entry/egress cell sets explicitly." - "Attach control surfaces (barriers, gates, one-way arcs) as metadata." R3_ROUTER_INTEGRATION: do: - "Section 08 Router: if EVENT active in a subnet, apply EVENT_PHASE_TRIPWIRES" - "Prefer event playbooks over generic local containment during the event window"
Recommended Internal Links (Spine)
Start Here for Lattice Infrastructure Connectors
- https://edukatesg.com/singapore-international-os-level-0/
- https://edukatesg.com/singapore-city-os/
- https://edukatesg.com/singapore-parliament-house-os/
- https://edukatesg.com/smrt-os/
- https://edukatesg.com/singapore-port-containers-os/
- https://edukatesg.com/changi-airport-os/
- https://edukatesg.com/tan-tock-seng-hospital-os-ttsh-os/
- https://edukatesg.com/bukit-timah-os/
- https://edukatesg.com/bukit-timah-schools-os/
- https://edukatesg.com/bukit-timah-tuition-os/
- https://edukatesg.com/family-os-level-0-root-node/
- https://bukittimahtutor.com
- https://edukatesg.com/punggol-os/
- https://edukatesg.com/tuas-industry-hub-os/
- https://edukatesg.com/shenton-way-banking-finance-hub-os/
- https://edukatesg.com/singapore-museum-smu-arts-school-district-os/
- https://edukatesg.com/orchard-road-shopping-district-os/
- https://edukatesg.com/singapore-integrated-sports-hub-national-stadium-os/
- Sholpan Upgrade Training Lattice (SholpUTL): https://edukatesg.com/sholpan-upgrade-training-lattice-sholputl/
- https://edukatesg.com/human-regenerative-lattice-3d-geometry-of-civilisation/
- https://edukatesg.com/new-york-z2-institutional-lattice-civos-index-page-master-hub/
- https://edukatesg.com/civilisation-lattice/
- https://edukatesg.com/civ-os-classification/
- https://edukatesg.com/civos-classification-systems/
- https://edukatesg.com/how-civilization-works/
- https://edukatesg.com/civos-lattice-coordinates-of-students-worldwide/
- https://edukatesg.com/civos-worldwide-student-lattice-case-articles-part-1/
- https://edukatesg.com/new-york-z2-institutional-lattice-civos-index-page-master-hub/
- https://edukatesg.com/advantages-of-using-civos-start-here-stack-z0-z3-for-humans-ai/
- Education OS (How Education Works): https://edukatesg.com/education-os-how-education-works-the-regenerative-machine-behind-learning/
- Tuition OS: https://edukatesg.com/tuition-os-edukateos-civos/
- Civilisation OS kernel: https://edukatesg.com/civilisation-os/
- Root definition: What is Civilisation?
- Control mechanism: Civilisation as a Control System
- First principles index: Index: First Principles of Civilisation
- Regeneration Engine: The Full Education OS Map
- The Civilisation OS Instrument Panel (Sensors & Metrics) + Weekly Scan + Recovery Schedule (30 / 90 / 365)
- Inversion Atlas Super Index: Full Inversion CivOS Inversion
- https://edukatesg.com/government-os-general-government-lane-almost-code-canonical/
- https://edukatesg.com/healthcare-os-general-healthcare-lane-almost-code-canonical/
- https://edukatesg.com/education-os-general-education-lane-almost-code-canonical/
- https://edukatesg.com/finance-os-general-finance-banking-lane-almost-code-canonical/
- https://edukatesg.com/transport-os-general-transport-transit-lane-almost-code-canonical/
- https://edukatesg.com/food-os-general-food-supply-chain-lane-almost-code-canonical/
- https://edukatesg.com/security-os-general-security-justice-rule-of-law-lane-almost-code-canonical/
- https://edukatesg.com/housing-os-general-housing-urban-operations-lane-almost-code-canonical/
- https://edukatesg.com/community-os-general-community-third-places-social-cohesion-lane-almost-code-canonical/
- https://edukatesg.com/energy-os-general-energy-power-grid-lane-almost-code-canonical/
- https://edukatesg.com/community-os-general-community-third-places-social-cohesion-lane-almost-code-canonical/
- https://edukatesg.com/water-os-general-water-wastewater-lane-almost-code-canonical/
- https://edukatesg.com/communications-os-general-telecom-internet-information-transport-lane-almost-code-canonical/
- https://edukatesg.com/media-os-general-media-information-integrity-narrative-coordination-lane-almost-code-canonical/
- https://edukatesg.com/waste-os-general-waste-sanitation-public-cleanliness-lane-almost-code-canonical/
- https://edukatesg.com/manufacturing-os-general-manufacturing-production-systems-lane-almost-code-canonical/
- https://edukatesg.com/logistics-os-general-logistics-warehousing-supply-routing-lane-almost-code-canonical/
- https://edukatesg.com/construction-os-general-construction-built-environment-delivery-lane-almost-code-canonical/
- https://edukatesg.com/science-os-general-science-rd-knowledge-production-lane-almost-code-canonical/
- https://edukatesg.com/religion-os-general-religion-meaning-systems-moral-coordination-lane-almost-code-canonical/
- https://edukatesg.com/finance-os-general-finance-money-credit-coordination-lane-almost-code-canonical/
- https://edukatesg.com/family-os-general-family-household-regenerative-unit-almost-code-canonical/
