| Period | Exchange rate | Residual supply (RoW currency) | Demand (EU currency) | EU wealth (EU currency) | |
|---|---|---|---|---|---|
| 1 | 1 | 1.000 | 66.303 | 66.303 | 2,210.084 |
| 10 | 10 | 1.117 | 73.028 | 65.350 | 2,178.336 |
| 20 | 20 | 1.344 | 85.498 | 63.622 | 2,120.720 |
| 50 | 50 | 22.538 | 977.407 | 43.366 | 1,445.543 |
| 75 | 75 | 912.731 | 19,293.495 | 21.138 | 704.607 |
| 90 | 90 | 4,588.219 | 76,353.755 | 16.641 | 554.709 |
| 100 | 100 | 12,951.420 | 198,975.685 | 15.363 | 512.108 |
OPENFLEX diagnostics: completed trajectory, interpretation and next steps
Accurate period clearing coexists with persistent exchange-rate divergence
Written: 2 October 2026. Repository basis: a03b6e0; experiment source commit fa469f8. Numerical findings below are recomputed from the saved trajectory and scan. Mechanistic interpretations and recommended experiments are identified separately.
What was studied and what was learned
This report documents the completed, unshocked EU/Rest-of-World OPENFLEX baseline experiment in R/dynamics/openflex_decompose.R: expected-currency-gain coefficient θ = 1, portfolio response scale σ = 0, and 100 main-run periods. OPENFLEX is the closure in which the exchange rate clears the market for Rest-of-World bills held by EU households, while gold and official foreign-bill reserves remain fixed.
Observed: the run solves all 100 periods but does not approach a stationary exchange rate. The quote rises from 1 to 12,951.419721 Rest-of-World currency units per EU currency unit. Reconstructing the bill market independently from its saved components confirms tight clearing throughout the trajectory. Within-period numerical clearing therefore does not establish stability between periods.
Calculated: growth in residual foreign-bill supply accounts for 84.6% of the cumulative increase in the log exchange rate; contraction of EU household demand accounts for the remaining 15.4%. These are accounting shares of the observed log change, not causal estimates. The experiment establishes how the clearing ratio drifts, but does not yet identify the feedback loop that generates that drift.
Assessment: the dynamical analysis was useful. It prevented a successfully solved terminal period from being accepted as a stationary comparator, showed that active return-sensitive portfolio adjustment is unnecessary for this divergence, and narrowed the next diagnosis to interacting bill supply, wealth, trade and valuation dynamics. The earlier local eigenvalue analysis provides a clue about coupled real and financial responses, but it used σ = 1 and cannot explain the completed σ = 0 experiment on its own.
Experiment and provenance
The revised revised_openflex arm starts its main dynamics from the model’s fixed-gold spin-up. The main run has no scenario intervention (shock = 0). Portfolio demand follows the Tobin specification, with its return-response matrix multiplied by σ. Setting σ = 0 removes those return responses and retains the calibrated portfolio intercepts; it does not remove foreign asset holdings or the effect of exchange-rate valuation on wealth. In particular, EU households’ RoW-bill demand remains 3% of EU wealth.
The completed worker finished at 09:33 EDT on 2 October, after approximately 86 minutes. Its status is recorded as completed; completion means 100 solved periods, not convergence. The initial startup failure and the earlier ten-period algebra smoke check are separate records. The smoke check used the registry σ = 1 cache and was not the completed experiment.
| Evidence | Settings and role |
|---|---|
| Completed decomposition and full cache, 2 October | EU/RoW, θ = 1, σ = 0, unshocked, 100 periods; primary evidence in this report |
| θ × σ scan, 1 October | Nine combinations: θ ∈ {0.25, 0.5, 1}, σ ∈ {0, 0.5, 1}; comparison of observed trajectories |
| Earlier local transition matrix at period 10 | Registry OPENFLEX with σ = 1 at a drifting state; supplementary evidence from a different experiment |
| Revised scenario transmission grid | 96 completed observations, 12 scenarios × 8 arms; excludes OPENFLEX |
All 20 recorded source hashes match the current files when this report is rendered. The full local cache also matches its recorded SHA-256 hash. Its SHA-256 is:
28c4842b7737420b7337621f3a0143423e7aea9976323dd3b89a9d4b5889f52e
Clearing equation and currency orientation
Let \(B_R\) denote RoW bills outstanding, \(H_R\) RoW households’ own-bill holdings, \(C_R\) the RoW central bank’s own-bill holdings, \(K_R\) RoW banks’ holdings, and \(F_E\) the EU central bank’s RoW-bill reserves. The supply available to EU households is
\[ S_t=B_{R,t}-H_{R,t}-C_{R,t}-K_{R,t}-F_{E,t}. \]
Every term in \(S_t\) is in the issuer’s currency, here RoW currency. EU households’ demand \(D_t\) is measured in their own currency. The exchange-rate quote is consequently
\[ q_t=\frac{S_t}{D_t},\qquad D_t=0.03V_{E,t}, \]
where \(V_E\) is EU household wealth. An increase in \(q\) is an EU appreciation. The reciprocal gives the RoW currency’s value in EU units. The authored engine computes supply in model/code/MVP_model_2026.R; run_model_2026.R solves the outer foreign-exchange clearing gap after solving the other simultaneous equations at each trial quote.
Both gold stocks and official foreign-bill reserves are fixed under this closure. Central banks’ domestic bill holdings are not fixed reserves: they adjust with the monetary balance sheet. This distinction matters when interpreting the large domestic bill-stock changes below. The mirror foreign-reserve row is absent from this arm and is explicitly flagged as absent in the extractor; its stored zero is not a separately measured holding.
The earlier clearing startup audit checked the residual-supply subtraction and currency orientation against the cited OPENFLEX formulation. The project additionally subtracts commercial-bank holdings because its model includes banks. The complete textbook equation set, including the claimed 12.91FL mapping, has not been independently recovered; that remaining comparison cannot be reported as completed validation.
Completed trajectory
Residual supply increases 3,001.03-fold between periods 1 and 100. EU demand and wealth decline by 76.83%. Residual supply is initially only 2.22% of outstanding RoW bills, but reaches 55.72% at period 100. A market initially represented by a small difference between much larger balance-sheet stocks becomes a large residual as those stocks evolve.
The fitted slope of \(\log|q_t-1|\) against time over periods 5–100 is 0.138014400. Exponentiating yields an average fitted deviation-growth rate of 14.7992% per period. This regression summarizes a changing trajectory: it does not imply identical growth in every period. For example, the exchange-rate level grows 10.8825% from period 99 to 100.
Market clearing and reproduction checks
| Check | Result |
|---|---|
| Maximum scaled supply reconstruction error | 2.889e-16 |
| Maximum scaled exchange-rate ratio gap, periods 2–100 | 2.164e-11 |
| Maximum scaled finite-change identity residual, periods 2–100 | 2.164e-11 |
| Largest absolute exchange-rate difference from original scan checkpoints | 2.001e-11 |
| Largest change in gold stocks or recorded foreign-bill reserves | 0.000e+00 |
| EU foreign-bill demand / EU wealth, periods 2–100 | 0.030000 to 0.030000 |
Supply reconstruction is scaled by \(\max(1,|B_R|)\); ratio and finite-change residuals are scaled by \(\max(1,|q|)\). The comparison checkpoints are periods 10, 20, 50 and 100. These tests validate extraction, arithmetic consistency and reproduction of the prior scan. They do not validate every engine equation, certify financial admissibility, or establish a stable equilibrium. A systematic equation error could also satisfy the same extracted identity.
Accounting decomposition of the appreciation
For positive supply and demand,
\[ \Delta\log q_t=\Delta\log S_t-\Delta\log D_t. \]
Summing from period 1 to 100 gives the 84.6% supply-growth and 15.4% demand-contraction shares reported above. Since the demand share of wealth is constant, the demand contribution here is exactly the wealth contribution. There is no observed change in the calibrated portfolio share in this experiment.
A second identity gives signed changes in the level of the exchange rate:
\[ \Delta q_t=\frac{\Delta S_t}{D_t} -q_{t-1}\frac{\Delta D_t}{D_t}. \]
Splitting the supply change into issuance and each holding component yields the following cumulative terms. The window is the change from period 1 to period 100, summing period-to-period contributions for periods 2–100.
| Component | Exchange-rate units |
|---|---|
| RoW bill issuance | 20,948.412558 |
| Change in RoW household holdings | 119.600895 |
| Change in RoW central-bank own-bill holdings | -9,316.980969 |
| Change in RoW bank holdings | -37.919204 |
| Change in EU central-bank foreign reserves | 0.000000 |
| Change in EU household demand | 1,237.306442 |
| Sum of components | 12,950.419721 |
| Observed exchange-rate change | 12,950.419721 |
Calculated interpretation of the signs: issuance raises residual supply; increasing RoW central-bank holdings absorbs much of that issuance and offsets appreciation. Household and bank holding changes enter with the opposite sign to their stock changes. Falling EU demand raises the ratio. Fixed foreign reserves contribute zero.
The finite-change terms use each period’s current demand denominator and therefore depend on the path. Their relative magnitudes are not interchangeable with the log-change shares. All components are jointly endogenous: these decompositions cannot tell us what would have happened had issuance, wealth or central-bank holdings been held fixed. In particular, the 84.6% figure is neither explained variance nor the causal effect of government borrowing.
Economic admissibility and balance-sheet interpretation
The EU central bank’s domestic bill holding first becomes negative at period 55; RoW households’ domestic bill holding first becomes negative at period 83. At period 100 the respective positions are -543.230 EU currency units and -1,353.242 RoW currency units. These require an explicit interpretation as permitted short positions or a recognition that the trajectory has left the intended holding domain. The completed numerical path alone does not settle that modelling choice.
The appreciation is already pronounced before either event: the period-50 quote is 22.538. Late negative positions therefore cannot account for the entire earlier drift. Conversely, the very large terminal quote should not be presented as an economically admissible long-run prediction without resolving the position constraints.
Balances and stocks must retain their currency labels. At period 100 EU and RoW current-account balances are 3.091 EU units and -40,033.667 RoW units. Their raw sum is meaningless; conversion to a common currency is necessary. The large RoW-currency deficit partly reflects the changed exchange-rate scale and is not directly comparable with the EU-currency figure.
What the dynamical analysis added
Distinguishing the numerical solver from the economic transition
The period solver finds the state compatible with the current-period equations and foreign-bill clearing. The economic transition carries that state into the next period through inherited assets, debt, wealth, production and trade. A solver can accurately clear every period along a diverging economic trajectory. The completed run demonstrates precisely that separation.
An endpoint-only analysis could have treated period 100 as a baseline merely because the run returned a solution. Examining the full path prevents that error and supports retaining OPENFLEX outside the completed revised transmission grid until an admissible stationary comparator is established. The existing 96 observations and their scenario-by-region-by-closure regime classifications are unaffected by this diagnostic.
Testing the portfolio explanation
In all three σ = 0 scan rows, changing θ leaves the recorded checkpoints and fitted growth unchanged. The dedicated θ = 1, σ = 0 rerun reproduces those checkpoints. Within the tested specification, active return-sensitive portfolio reallocation and expected currency gains are not necessary for the observed divergence.
This finding narrows the diagnosis, but the earlier convergence plan’s wording that divergence is “not the expectations or portfolio channel” is too broad. Foreign portfolio holdings remain present; wealth, valuation and fixed-share demand still interact with the exchange rate. The evidence excludes the necessity of the active Tobin response for this path, not every financial or portfolio-mediated feedback. The scan found no stationary band among its nine tested combinations; it does not establish impossibility for all admissible parameters.
Interpreting the earlier local modes
The local transition matrix measures the response of the next solved state to small changes in inherited state. For an inner simultaneous system its derivative is \(M=(I-J_c)^{-1}J_{\mathrm{lag}}\), where \(J_c\) and \(J_{\mathrm{lag}}\) are the current and lagged derivatives. OPENFLEX additionally solves a clearing equation \(H(q,\ell)=0\); differentiating that outer solve requires \(dq/d\ell=-H_\ell/H_q\). Holding the exchange rate fixed while perturbing inherited state would measure a different transition.
At a stationary point, an eigenvalue modulus greater than one indicates growth in the associated linear perturbation. At a drifting point, the matrix describes only the local tangent response; long-run amplification also depends on how these matrices change along the path. A fitted trajectory growth rate and a single local eigenvalue need not coincide.
The earlier registry σ = 1 calculation at period 10 found:
| Rank | Real part | Imaginary part | Modulus | Largest relative-coordinate family loadings |
|---|---|---|---|---|
| 1 | 0.791358 | 1.065778 | 1.327452 | p 0.2736; n_j 0.1256; pop_j 0.1256; x_star 0.1183; x 0.1183 |
| 2 | 0.791358 | -1.065778 | 1.327452 | p 0.2736; n_j 0.1256; pop_j 0.1256; x_star 0.1183; x 0.1183 |
| 3 | 1.160404 | 0.000000 | 1.160404 | p 0.2470; n_j 0.1331; pop_j 0.1331; x 0.1251; x_star 0.1251 |
Here p denotes prices, n_j employment, pop_j the labour force, x output, and x_star potential output used in the diagnostic. The conjugate pair and real mode suggest coupled real-sector responses worth investigating. Their loadings are normalized absolute eigenvector magnitudes in relative coordinates, not variance shares or independently identified causal effects.
These modes are preliminary evidence from σ = 1, not a root diagnosis for σ = 0. The dependency-based feedback restriction removes strictly downstream reporting variables but does not project every perturbation onto the feasible stock-flow accounting manifold. Full-state spectra can include accumulated reporting indices and accounting-residual directions that should not be interpreted as economic instability. Neutral stock directions also require interpretation rather than automatic classification as failure.
The saved precision checks reinforce the qualification. For the RoW-wealth column, changing the relative finite-difference step from \(10^{-6}\) to \(10^{-5}\) produces a norm error of about 4.65% relative to the \(10^{-6}\), 260-sweep reference. Increasing sweeps alone does not remove that difference. Selected implicit-clearing derivative checks were substantially closer at \(10^{-6}\), but selected-column agreement does not certify the entire matrix or its spectrum. The next local-mode result needs a demonstrated step-size plateau and consistent outer clearing.
| Diagnostic | Contribution to the analysis | Remaining limitation |
|---|---|---|
| Full trajectory | Establishes persistent drift despite 100 solved periods | Finite observed path; late positions need admissibility decisions |
| θ × σ scan and zero-response rerun | Shows active portfolio return responses are unnecessary for divergence | Does not remove fixed-share demand or valuation feedback |
| Exact clearing decomposition | Locates observed appreciation in growing residual supply and declining wealth/demand | An accounting identity does not identify the causal loop |
| Earlier local transition modes | Identifies coupled variables and supplies a method for investigating feedback | Different σ; drifting state; derivative and accounting-domain qualifications |
Discussion: the mechanism remains to be identified
Observed accounting mechanism: residual RoW-bill supply grows much faster than EU demand, and the clearing quote increases as their ratio. The completed trajectory establishes the “drifting clearing ratio” description proposed in the convergence plan.
Unresolved causal mechanism: exchange-rate changes alter trade, prices, valuation, wealth and financial balances; these changes can then alter the next clearing ratio. A feedback loop could therefore be the cause of the observed ratio drift. “A drifting ratio” and “a feedback root” are not mutually exclusive explanations. The first describes the measured market outcome; the second concerns the dynamic process that generates it.
The thin initial residual market is a plausible amplifier because changes in large issuance and holding stocks can produce large proportional changes in the small residual. Yet the trajectory does not prove that increasing the foreign-bill portfolio share will stabilize the system. Likewise, persistent appreciation does not by itself establish that trade elasticities are the failing stabilizer. Those hypotheses require derivatives and controlled parameter interventions in the same experiment.
Dynamical diagnostics consequently improve the credibility of the scenario analysis by establishing which closure baselines can support comparisons and by distinguishing finite-window outcomes from attractive equilibria. They do not supply a replacement taxonomy for cross-border transmission regimes, nor do they establish the causal meaning of the pooled clusters. Region × closure × scenario interactions remain a separate analysis of the 96 completed observations.
Corrections that matter for subsequent analysis
The earlier scan description called slopes of 0.138–0.205 “13.8–20.5% growth.” Those quantities are slopes of log deviations. The corrected ordinary-growth range, recomputed from the nine scan rows, is 14.8–22.8% per period. This correction changes the growth interpretation and invalidates the original target of matching a local root to 1.138. Neither 1.138 nor the fitted multiplier 1.147992 is a justified imposed target for a Jacobian at a drifting point.
The earlier period-10 eigenvalue calculation was also described within the OPENFLEX convergence work without sufficiently separating its settings. It belongs to the registry σ = 1 experiment. The completed σ = 0 cache now makes a consistent comparison possible, but that same-cache local calculation has not yet been performed.
Recommended next steps
These are recommendations from the diagnostics, not completed tasks or experiments launched by this report.
Finish the equation and currency audit. Check the complete external OPENFLEX equation mapping, including the remaining 12.91FL comparison; trace market clearing, valuation and central-bank balance-sheet terms through the authored engine. Agreement with the extracted ratio is necessary but insufficient to rule out all sign, timing or redundant-equation errors.
Make the local diagnostic accept the completed cache explicitly.
R/dynamics/arm_context.Rcurrently resolves the registry baseline or its σ = 1 period-10 fallback and does not implement a custom--rdsinput. Add explicit cache/settings validation before analysingbaseline_theta1_sigma0.RDS. Benchmark one complete period solve before estimating the cost of a matrix build. The measured 86-minute trajectory runtime is useful scheduling evidence, but is not a matrix runtime estimate.Validate and analyse early σ = 0 transitions. Start at period 10, then compare another early state such as period 20 and, if feasible, period 50, before the first negative position at period 55. Include the implicit derivative of foreign-exchange clearing; compare several perturbation sizes and sweep counts, and validate representative columns against independently re-cleared perturbations. Restrict perturbations to feasible accounting directions before making economic stability claims. Examine eigenvector support, propagation through bills/wealth/trade and the product of changing local transitions; do not force agreement with the trajectory’s fitted multiplier.
Use controlled perturbations to distinguish candidate loops. At an early admissible state, perturb the quote and selected financial or trade states consistently with balance-sheet constraints; follow the response of residual supply and wealth. Only after a loop is supported should test arms change trade elasticities or the fixed foreign-bill share. Such changes must preserve the canonical calibration and have an explicit economic interpretation.
Require an admissible stationary baseline before scenario comparisons. Monitor the exchange rate, current account, debt and relevant holdings together over an extended window. The plan’s growth threshold below 0.1% per period is a screening condition, not sufficient evidence of an attractor. Check small impulses, accounting consistency and holding-domain constraints before admitting OPENFLEX to the scenario grid. North/South OPENFLEX and the scenario runs follow only after that assessment. An interest-rate reaction closure remains outside the current convergence plan.
Record the supported mechanism and outcome. If a test arm converges, document the parameter changes and their consequences for the baseline. If it fails, state which mechanisms and parameter ranges were tested; do not generalize nine unsuccessful runs into a proof that no admissible OPENFLEX calibration exists. Refresh
ai_context/with/update-project-context: its older item 39 still carries the incorrect percentage range, followed by a later qualification, and does not yet contain this completed decomposition.
Evidence and reproduction
The report renders from saved numerical artifacts without rerunning the model. It recomputes the trajectory regression, decomposition shares, contributions and residual checks, verifies the recorded source hashes, and checks the full cache hash when the local cache is present. The ignored RDS cache is retained locally; the durable CSVs and provenance provide the numerical basis for this report.
The principal files, relative to the repository root, are:
| File | Contents |
|---|---|
R/dynamics/openflex_decompose.R |
Experiment entry point and extraction identities |
output/calibration/openflex_decompose_20261002.csv |
100 periods, 41 columns of levels, checks and decompositions |
output/calibration/openflex_decompose_20261002_provenance.json |
Settings, 20 source hashes, source commit and cache hash |
output/calibration/openflex_decompose_20261002_status.json |
Completed-run status and solved horizon |
output/calibration/openflex_decompose_20261002_scan_comparison.csv |
Four checkpoints compared with the original scan |
output/calibration/openflex_theta_sigma_scan_20261001.csv |
Nine θ × σ scan results |
data/transition/revised_openflex/feedback_eigenvalues_t10.csv |
Earlier σ = 1 local modes |
data/transition/revised_openflex/derivative_precision_t10.csv |
Step-size and sweep sensitivity of selected columns |
data/transition/revised_openflex/implicit_clearing_check_t10.csv |
Selected derivatives compared with outer re-clearing |
R/dynamics/arm_context.R |
Current cache selection and local solver context |
qmd/reports/2026-10-01-closure-dynamics.qmd |
Earlier cross-closure dynamical analysis and method |
qmd/plans/2026-10-01-openflex-convergence.md |
Convergence work plan, completed rerun and remaining tasks |
Render from the repository root:
quarto render qmd/reports/2026-10-02-openflex-diagnostics-results.qmd --to html \
--output-dir "$PWD/output/html/reports"The previous startup audit and closure dynamics report remain separate dated records. This report supplies the completed zero-response trajectory and qualifies what the earlier local-mode analysis can establish.