Deterministic analysis of perihelion-relative timing using a standardized state vector Ψ(t) from JPL Horizons. This page documents data, methods, commands, and a cross-planet results summary.
Data source: JPL Horizons (DE441). Heliocentric, Ecliptic of J2000.0. Daily cadence.
Using daily DE441 ephemerides, OP023 peaks from a standardized 17-D state vector were matched to perihelia across nine targets. Matched coverage is 1.000 for all bodies. Dispersion σ by planet: Mercury 0.282 d, Venus 0.383 d, Earth 21.141 d, Mars 0.943 d, Jupiter 1.221 d, Saturn 157.919 d, Uranus 177.163 d (PCA mode), Neptune 842.011 d, Pluto barycenter 16.197 d. Wrapped phase fractions φ (Δt/P) are stable per body: Mercury +0.3989, Venus −0.2144, Earth +0.0415, Mars −0.1332, Jupiter +0.2153, Saturn +0.1815, Uranus −0.0830, Neptune +0.1198, Pluto barycenter +0.2082.
Definition. For each perihelion time tperi, let tpeak be the nearest OP023 peak in the match window. We define Δt = t_peak − t_peri (days). Positive Δt means the OP023 peak occurs after perihelion; negative Δt means before.
Phase normalization. To compare across different orbital periods P, we use φ = wrap(Δt / P) mapped to (−0.5, 0.5]. Values near 0 indicate peaks cluster close to perihelion; non-zero φ indicates a stable phase offset.
The pipeline expects CSV files exported from Horizons in the form data/<planet>_YYYYtoYYYY.csv. Each CSV must contain the cartesian state columns
      X,Y,Z,VX,VY,VZ (AU and AU/day). Example inventory:
| Planet | CSV | Span | Notes | 
|---|---|---|---|
| Mercury | data/mercury_1900to2025.csv | 1900–2025 | Daily | 
| Venus | data/venus_1900to2025.csv | 1900–2025 | Daily | 
| Earth | data/earth_1900to2025.csv | 1900–2025 | Daily | 
| Mars | data/mars_1900to2025.csv | 1900–2025 | Daily | 
| Jupiter | data/jupiter_1900to2025.csv | 1900–2025 | Daily | 
| Saturn | data/saturn_1900to2025.csv | 1900–2025 | Daily | 
| Uranus | data/uranus_1600to2300.csv | 1600–2300 | Daily; extended span | 
| Neptune | data/neptune_1600to2300.csv | 1600–2300 | Daily; extended span | 
| Pluto barycenter | data/pluto_1600to2300.csv | 1600–2300 | Daily; extended span | 
Horizons availability and formal accuracy vary across eras. Where long ranges exceeded the web output limit, multiple TXT windows were exported and merged to CSV before analysis.
scripts/pipeline_multi_planet_v3.py — end-to-end pipeline (per-planet run, QC retry, summary CSV, HTML report).scripts/planet_windows.json — optional map of planet → specific CSV path (forces file selection).scripts/full_run_overrides.json — optional per-planet parameter overrides (e.g., Earth & Saturn tuning, Uranus PCA).results/ — output folder: per-planet plots + summary.csv + report.html.python3 -m venv .venv && source .venv/bin/activate pip install numpy pandas matplotlib
python3 scripts/pipeline_multi_planet_v3.py --planets all \ --overrides scripts/full_run_overrides.json \ --windows scripts/planet_windows.json \ --edge-guard 60
Outputs: results/summary.csv, results/report.html, plus per-planet PNGs in results/<planet>/.
# Example: Uranus using PCA mode and relaxed thresholds python3 scripts/pipeline_multi_planet_v3.py --planets uranus \ --overrides scripts/uranus_fix.json \ --windows scripts/planet_windows.json \ --edge-guard 60
X,Y,Z,VX,VY,VZ (AU, AU/day), body-centric: Sun (10), geometric, Ecliptic of J2000.0.R=√(X²+Y²+Z²), V=√(VX²+VY²+VZ²), co-variates (X·VX, Y·VY, Z·VZ), and cross terms (XY, XZ, YZ, VX·VY, VX·VZ, VY·VZ).Ψ(t).dim0 (first standardized coordinate), pca1 (first principal component), energy (sum of squares).C(t) (square of the chosen signal), smoothed by a boxcar kernel.R(t) (smoothed), de-duplicated by a minimum separation.C(t): z-threshold relative to its mean and standard deviation, with de-duplication by minimum separation.Δt = t_peak − t_peri.C(t) and 1/R(t+lag) across integer lags (bound by max(60, 0.4·P)), recording the best lag and correlation.C(t) + perihelia + peaks + matched peaks), R-overlay (R(t) quick-look with the same markers), histogram of Δt, zoom windows, yearly drift of mean Δt, local FFT around matched peaks, entropy and sharpness distributions, and lag-sweep plot.--edge-guard days of the file boundaries to avoid truncated matching windows.σ > P/5, run one relaxed pass (wider windows, more smoothing, lower threshold and/or alternate mode). Keep the retry only if it improves coverage or σ.results/<planet>/overlay.png, r_overlay.png, zoom.png, phase_hist.png, drift.png, fft.png, entropy_hist.png, sharpness_hist.png, lag_sweep.pngresults/<planet>/summary.json per planet; results/summary.csv and results/report.html across planets.For each planet the pipeline reports: number of perihelia, detected peaks, matched events, coverage (matched/total), mean and dispersion of Δt (days), median, range, a phase fraction
      φ = wrap(Δt/P) in (−0.5, 0.5], and a strength score coverage · exp(−σ/P).
    
Δt = +35.087 d; σ = 0.282 d.Δt = −48.177 d; σ = 0.383 d.Δt = +15.144 d; σ = 21.141 d.Δt = −91.478 d; σ = 0.943 d.Δt = +932.909 d; σ = 1.221 d.Δt = +1952.400 d; σ = 157.919 d.Δt = −2546.111 d; σ = 177.163 d.Δt = +7210.800 d; σ = 842.011 d.Δt = +18854.667 d; σ = 16.197 d. (Pluto here refers to the system barycenter, not surface locations.)The phase fraction φ enables cross-planet comparability by expressing timing as a fraction of each orbital cycle.
Open report.html, then use each planet’s links (overlay, R-overlay, zoom, phase histogram, drift, FFT, entropy, sharpness, lag sweep).
| Planet | Period (days) | Smooth | Min Sep | Peri MinSep | Match Window | z | Mode | N Peri | N Peaks | Matched | Coverage | Mean Δt | Median Δt | σ (days) | Min Δt | Max Δt | Phase Frac | Strength | Lag Best Δ | Lag Best r | 
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Mercury | 87.969 | 5 | 60 | 62 | 60 | 0.8 | dim0 | 518 | 520 | 518 | 1.000 | +35.087 | +35.0 | 0.282 | +35.0 | +36.0 | +0.3989 | 0.9968 | 55 | 0.8320 | 
| Venus | 224.701 | 5 | 79 | 157 | 112 | 0.5 | dim0 | 203 | 407 | 203 | 1.000 | -48.177 | -48.0 | 0.383 | -49.0 | -48.0 | -0.2144 | 0.9983 | 48 | 0.9914 | 
| Earth | 365.256 | 9 | 122 | 340 | 122 | 0.8 | dim0 | 125 | 250 | 125 | 1.000 | +15.144 | +6.0 | 21.141 | +1.0 | +90.0 | +0.0415 | 0.9438 | -5 | 0.4939 | 
| Mars | 686.980 | 10 | 240 | 481 | 343 | 0.5 | dim0 | 67 | 133 | 67 | 1.000 | -91.478 | -91.0 | 0.943 | -98.0 | -91.0 | -0.1332 | 0.9986 | -249 | 0.9767 | 
| Jupiter | 4332.589 | 15 | 1516 | 3033 | 2166 | 0.5 | dim0 | 11 | 21 | 11 | 1.000 | +932.909 | +933.0 | 1.221 | +931.0 | +935.0 | +0.2153 | 0.9997 | 1209 | 0.9846 | 
| Saturn | 10759.220 | 270 | 3586 | 7172 | 3766 | 0.8 | dim0 | 5 | 9 | 5 | 1.000 | +1952.400 | +2022.0 | 157.919 | +1670.0 | +2028.0 | +0.1815 | 0.9854 | 3419 | 0.9464 | 
| Uranus | 30685.400 | 2000 | 16000 | 24000 | 14000 | 0.6 | pca1 | 9 | 12 | 9 | 1.000 | -2546.111 | -2605.0 | 177.163 | -2618.0 | -2074.0 | -0.0830 | 0.9942 | 2806 | 0.1767 | 
| Neptune | 60189.000 | 15 | 21066 | 42132 | 30094 | 0.5 | dim0 | 5 | 9 | 5 | 1.000 | +7210.800 | +6836.0 | 842.011 | +6825.0 | +8717.0 | +0.1198 | 0.9861 | 22602 | 0.9464 | 
| Pluto barycenter | 90560.000 | 15 | 31696 | 63392 | 45280 | 0.5 | dim0 | 3 | 6 | 3 | 1.000 | +18854.667 | +18863.0 | 16.197 | +18836.0 | +18865.0 | +0.2082 | 0.9998 | 27985 | 0.8519 | 
Mercury (mode dim0, period 87.969 d): matched 518/518 events (coverage 1.000). Mean Δt = +35.087 d (median +35.0, σ = 0.282 d, range +35.0…+36.0); phase fraction φ = +0.3989. Best lag corr(C, 1/R): 55 d (r = 0.8320).
Venus (mode dim0, period 224.701 d): matched 203/203 events (coverage 1.000). Mean Δt = −48.177 d (median −48.0, σ = 0.383 d, range −49.0…−48.0); φ = −0.2144. Best lag: 48 d (r = 0.9914).
Earth (mode dim0, period 365.256 d): matched 125/125 events (coverage 1.000). Mean Δt = +15.144 d (median +6.0, σ = 21.141 d, range +1.0…+90.0); φ = +0.0415. Best lag: −5 d (r = 0.4939).
| Variant | Mean Δt (d) | σ (d) | φ | 
|---|---|---|---|
| Heliocentric (Sun@10) | +11.019 | 23.961 | +0.0302 | 
| Barycentric (SSB@0) | +4.769 | 58.371 | +0.0131 | 
| Earth–Moon Barycenter (EMB) | +13.184 | 17.918 | +0.0361 | 
Mars (mode dim0, period 686.980 d): matched 67/67 events (coverage 1.000). Mean Δt = −91.478 d (median −91.0, σ = 0.943 d, range −98.0…−91.0); φ = −0.1332. Best lag: −249 d (r = 0.9767).
Jupiter (mode dim0, period 4332.589 d): matched 11/11 events (coverage 1.000). Mean Δt = +932.909 d (median +933.0, σ = 1.221 d, range +931.0…+935.0); φ = +0.2153. Best lag: 1209 d (r = 0.9846).
Saturn (mode dim0, period 10759.220 d): matched 5/5 events (coverage 1.000). Mean Δt = +1952.400 d (median +2022.0, σ = 157.919 d, range +1670.0…+2028.0); φ = +0.1815. Best lag: 3419 d (r = 0.9464).
Uranus (mode pca1, period 30685.400 d): matched 9/9 events (coverage 1.000). Mean Δt = −2546.111 d (median −2605.0, σ = 177.163 d, range −2618.0…−2074.0); φ = −0.0830. Best lag: 2806 d (r = 0.1767).
Neptune (mode dim0, period 60189.000 d): matched 5/5 events (coverage 1.000). Mean Δt = +7210.800 d (median +6836.0, σ = 842.011 d, range +6825.0…+8717.0); φ = +0.1198. Best lag: 22602 d (r = 0.9464).
Pluto barycenter (mode dim0, period 90560.000 d): matched 3/3 events (coverage 1.000). Mean Δt = +18854.667 d (median +18863.0, σ = 16.197 d, range +18836.0…+18865.0); φ = +0.2082. Best lag: 27985 d (r = 0.8519).
For each planet, confidence intervals are estimated by bootstrap resampling of matched events. We report: mean Δt ± 95% CI, dispersion via both σ and robust MAD×1.4826, and phase fraction φ ± 95% CI.
If the table above is empty, (re)build it with:
        python3 scripts/post_build_uncertainty.py
      
Direct link: results/uncertainty_ci.html
Note: Earth shows a small but statistically significant positive drift in phase fraction φ (slope ≈ +0.0007 φ/year, about +0.26 days/yr in Δt). Most other planets are consistent with zero drift within uncertainties.
Yearly drift plots (results/<planet>/drift.png) show mean Δt per year. In phase space, we fit φ vs year; slope≈0 indicates a stationary phase offset.
If the table above is empty, (re)build it with:
        python3 scripts/build_phase_stability.py
      
Direct link: results/phase_stability.html
The lag sweep correlates C(t) with 1/R(t+lag). Interpreting lag in phase units (lag/P) is sometimes useful; persistent non-zero best-lag can indicate a fixed phase relationship between collapse intensity and heliocentric distance.
| Planet | Best lag (days) | r | 
|---|---|---|
| Mercury | 55 | 0.8320 | 
| Venus | 48 | 0.9914 | 
| Earth | -5 | 0.4939 | 
| Mars | -249 | 0.9767 | 
| Jupiter | 1209 | 0.9846 | 
| Saturn | 3419 | 0.9464 | 
| Uranus | 2806 | 0.1767 | 
| Neptune | 22602 | 0.9464 | 
| Pluto barycenter | 27985 | 0.8519 | 
Δt and φ remain within reported CIs.--edge-guard days of file boundaries are omitted; shaded regions in overlays indicate excluded ranges.pipeline_multi_planet_v3.py (run-id c88d587)mercury_1900to2025.csvvenus_1900to2025.csvearth_1900to2025.csvmars_1900to2025.csvjupiter_1900to2025.csvsaturn_1900to2025.csvuranus_1600to2300.csvneptune_1600to2300.csvpluto_1600to2300.csv--planets all --overrides scripts/full_run_overrides.json --windows scripts/planet_windows.json --edge-guard 60Commit hash, dates, and filenames ensure exact reproducibility of the results above.
JPL Horizons (DE441) ephemerides were queried with settings: center = Sun (10), type = GEOMETRIC cartesian states, units = AU & AU/day, reference frame = Ecliptic of J2000.0, step = 1440 minutes. Long spans were exported in multiple windows where needed and merged before analysis.
results/<planet>/summary.json):
        python3 scripts/pipeline_multi_planet_v3.py --planets all \ --overrides scripts/full_run_overrides.json \ --windows scripts/planet_windows.json \ --edge-guard 60
# Uncertainty (Δt, σ, φ, CI95) python3 scripts/post_build_uncertainty.py # Phase stability (φ vs year slopes & p-values) python3 scripts/build_phase_stability.py
iframes.This analysis measures how the strongest OP023 peaks in a standardized planetary state vector Ψ(t) align with each planet’s perihelion (closest approach to the Sun). By matching peaks to perihelia and computing Δt = t_peak − t_peri (days), we quantify a planet-specific phase offset and its stability over time.
The persistence of planet-specific phase offsets over centuries implies that the OP023 feature is not random noise. Instead, it may be a structural property of the planetary state vector — possibly linked to gravitational geometry, resonances, or invariant manifolds in the Solar System’s phase space. The distinct offsets between planets suggest each orbit’s geometry imprints a stable “preferred point” for the signal relative to perihelion.
        The OP022/OP023 pipeline operates in a different mode from traditional force-integration. We start from measured heliocentric state vectors (JPL Horizons) and map them into a standardized 17-D space Ψ(t), detect OP023 peaks, and phase-match to perihelia across centuries.
      
Practically, this is a data-driven confirmation of the Newton/GR orbital framework at the tested precision. We see no unexplained residuals demanding local dark-matter-like corrections in planetary dynamics.
Note: Horizons already embodies Newton/GR physics; our method simply recovers the phase structure directly from data, without re-integrating equations of motion.
The OP023–perihelion phase relationship appears real and persistent, with robust, planet-specific offsets and tight timing for most targets. OP023 looks like a useful dynamical tracer for subtle perturbations and long-term orbital evolution.
DE441 ephemerides (the basis of our inputs) model Solar-System motion with Newtonian gravity plus GR corrections and no galactic dark-matter term. Our phase results agree with those ephemerides across 1900–2025 (inner planets) and 1600–2300 (outer planets), indicating that no extra mass component is required to explain planetary-scale dynamics within the quoted uncertainties.
This statement is specific to Solar-System precision tests. It does not bear on the independent astrophysical evidence for dark matter on galactic/cosmological scales (rotation curves, lensing, CMB). Solar-System mechanics remain fully accounted for by baryonic matter under Newton/GR at current precision.