RSUE replication
The RSUE inputs are external. The repository contains their filenames and SHA-256 hashes, not the data.
export RSUE_DATA_ROOT=/absolute/path/to/rsue/Input
julia --project=. bin/tnw.jl replicate-rsue \
replication/rsue/rsue_legacy_audited.tomlRSUE_DATA_ROOT may identify the input directory or a parent containing Input/. The adapter fails before analysis when a file is absent or a hash differs.
Configurations
rsue_legacy_audited.toml uses ComponentCES(1.099), road edge congestion 0.092, endpoint rail-terminal congestion 0.096 at each endpoint, and the historical active transport subset needed to reproduce the frozen July 12 package.
rsue_candidate_choice.toml retains the original research-candidate comparison.
rsue_census_ports_2017_candidate.toml keeps the legacy component-CES convention but replaces the symmetrized foreign-water proxy with separate Census port-level imports and exports. It uses 2017 containerized vessel value, explicit Schedule C/D crosswalks, and a documented balanced-trade projection. It also activates all four modes. This is a data-and-model candidate, not the paper specification.
Use rsue_legacy_ports_all_modes_control.toml for a like-for-like comparison. It activates the same four modes under the same component-CES and congestion specifications but retains the legacy symmetrized port layer.
The paper specification is rsue_paper_choice_edge_census_2017.toml. It combines ChoiceLogsum(1.099), all four transport modes, road edge congestion of 0.092, and the directional Census port layer. The 228 domestic nodes enter worker mobility and U.S. welfare. The six foreign nodes remain in the route network but have fixed import-supply and export-demand schedules derived from the directional port layer. The policy unit is a simultaneous one-percent primitive-cost reduction in both directions of a physical road link. rsue_paper_terminal_extension_census_2017.toml adds endpoint rail-terminal congestion for package diagnostics; those paths do not enter the paper's five-parameter sensitivity figure. rsue_paper_choice_edge_legacy_ports_control.toml holds the paper model fixed and restores the legacy port layer as a data robustness check.
The legacy adapter records six historical operations: domestic-node count, foreign transport-node construction, modal symmetrization, within-mode normalization, RSUE modal weights, and terminal-based rail filtering. Generic projects do none of these operations unless they declare an external-node closure explicitly.
The Census candidate preserves those operations for the domestic layers but does not symmetrize foreign water. Raw directional Census trade is not model-ready because imports and exports do not satisfy the current location-level balanced-flow identity. The builder RAS-projects both directions onto common port and foreign-region margins, records the adjustment, and fails if balancing requires support absent from the raw matrices. See replication/rsue/census_ports/README.md for refresh and build commands.
Run the candidate with:
julia --project=. bin/tnw.jl decompose \
replication/rsue/rsue_census_ports_2017_candidate.tomlBuild the complete paper result vintage, claim ledger, TeX macros, CBSA labels, and figures with:
export RSUE_DATA_ROOT=/absolute/path/to/rsue/Input
julia --project=replication/rsue/environment -e 'using Pkg; Pkg.instantiate()'
julia --project=replication/rsue/environment replication/rsue/build_paper_artifacts.jlThe private artifact directory also contains paper_sensitivity_links.csv. It reports every physical-link result, welfare rank, and rank change for each of the 35 sensitivity points. The builder requires 352 links in every group and checks its means and rank correlations against paper_sensitivity.csv. The link-level file is derived from restricted inputs and is not committed. The published sensitivity figure uses the 25 points for (\alpha), (\beta), net dispersion, (\eta), and road congestion. The remaining ten points are common- and terminal-congestion extension diagnostics. The generated top-10 and top-30 comparison tables are drawn from the same ranked result object.
The claim ledger also reports correlations within the 50 and 100 links with the largest Traditional traffic statistics. Ties are broken by the stable physical-link identifier. Modal-competition diagnostics record the number of treated road arcs with one active mode, the distribution of road modal shares, and the rank movement along the (\eta) path.
The builder also writes paper_welfare_path_links.csv. This file supports the main decomposition figure with an exact identity evaluated at the accepted baseline. It starts from the Traditional traffic statistic, adds the boundary adjustment implied by fixed foreign schedules and U.S.-resident welfare, then adds domestic spatial externalities and road congestion to reach the Extended result. Proposition 1 applies to the integrated-economy benchmark, so the Traditional statistic is a comparator rather than the exact efficient derivative under this external-node closure. The file also retains the direct externality, market-access propagation, road, terminal, and cost-attenuation components needed to verify the grouped changes. The paper-facing road-congestion adjustment compares the primitive-cost derivative in the full model with the no-congestion derivative. For technical diagnosis, the output separately reports how congestion changes the derivative with respect to users' realized cost and how induced traffic attenuates the underlying cost reduction. The original H/NC/NT/F/FM/FR closure outputs remain unchanged and continue to support the more detailed appendix identities. Terminal congestion is absent from the headline specification and remains an extension.
The tracked replication manifest fixes the Julia package environment. The artifact manifest also records the Julia and BLAS configuration, Python version, GDAL version, lockfile hashes, input hashes, and source hashes.
The builder requires an accepted report from the nonlinear choice-logsum finite-difference harness. The harness solves the nonlinear equilibrium independently of the adjoint calculation, conditional on the baseline operators and welfare row constructed by the package. The report is bound to the package version, paper configuration, restricted inputs, every Julia package source file, and stable fingerprints of the constructed operators. Regenerate it after any of those change:
export RSUE_DATA_ROOT=/absolute/path/to/rsue/Input
julia --project=replication/rsue/environment \
replication/rsue/verify_choice_logsum_fd.jlThe builder uses official 2018 Census CBSA polygons and pinned Census Place archives for the ambiguous North Carolina and Washington links. With the verified archives and derived GeoJSON files in the cache, it can run offline without GDAL. A fresh conversion requires ogr2ogr, whose version is recorded. When the endpoints do not identify two places, the output reports the metropolitan area and physical-link identifier rather than inventing a corridor name. Generated maps and scatterplots have no overall title and are saved as PDF and transparent PNG.
Legacy acceptance values and frozen output hashes are in expected_summary.toml; the corresponding Census-candidate targets are in census_ports/expected_summary.toml. The full result comparisons run only when the external data are present:
export RSUE_FROZEN_RESULTS_ROOT=/absolute/path/to/Output_complete_decomposition
julia --project=. replication/rsue/verify_legacy.jlThis gate verifies the three archived artifact hashes and compares every directed-arc result field against the frozen table. Public CI reports the restricted acceptance test as skipped rather than passed when RSUE_DATA_ROOT is absent.