eris-econ
Geometric economics: multi-dimensional decision manifolds, A* pathfinding, and Bond Geodesic Equilibrium.
Overview
Classical economics reduces human decisions to scalar utility maximization. This library implements the geometric economics framework from Bond (2026), which models economic decisions as pathfinding on a 9-dimensional decision manifold.
The core insight: Homo economicus is not wrong because humans are irrational — it's incomplete because it computes on a projected subspace of the actual decision manifold. Projecting from 9 dimensions to 1 (monetary utility) destroys information that is mathematically irrecoverable.
The Nine Dimensions
Every economic state is a point in R^9:
| Dim | Name | Examples |
|---|---|---|
| d₁ | Consequences | monetary cost, material outcome, expected value |
| d₂ | Rights | property rights, contractual obligations |
| d₃ | Fairness | distributional justice, reciprocity |
| d₄ | Autonomy | freedom of choice, voluntariness |
| d₅ | Privacy/Trust | information asymmetry, fiduciary duty |
| d₆ | Social Impact | externalities, reputation |
| d₇ | Virtue/Identity | self-image, moral identity |
| d₈ | Legitimacy | institutional trust, rule compliance |
| d₉ | Epistemic | information quality, confidence |
Dimensions d₁–d₄ are transferable (conserved in bilateral exchange). Dimensions d₅–d₉ are evaluative (not conserved, enabling mutual gains from trade).
Key Concepts
flowchart TB
subgraph R9[R9 decision manifold]
direction LR
T[Transferable d1-d4<br/>consequences rights<br/>fairness autonomy]
E[Evaluative d5-d9<br/>privacy social virtue<br/>legitimacy epistemic]
end
STATE[Current state]
GOALS[Candidate goals]
subgraph ASTAR[A-star pathfinding]
G[g System 2<br/>deliberate cost]
H[h System 1<br/>moral intuition]
M[Mahalanobis + boundary penalties]
end
PATH[Bond Geodesic<br/>optimal path]
BGE[Bond Geodesic Equilibrium<br/>multi-agent fixed point]
subgraph EMRG[Emergent phenomena]
LA[Loss aversion lambda 2.25]
RD[Reference dependence]
EE[Endowment effect]
FR[Framing effects]
end
T --> STATE
E --> STATE
STATE --> G
GOALS --> G
M --> G
M --> H
G --> PATH
H --> PATH
PATH --> BGE
M --> LA
M --> RD
M --> EE
M --> FR
Bond Geodesic
The optimal path on the decision manifold from current state to goal, minimizing Mahalanobis distance + boundary penalties. This is computed via A* search, where:
- g(n) = accumulated cost (System 2: deliberate calculation)
- h(n) = heuristic estimate (System 1: moral intuition)
Bond Geodesic Equilibrium (BGE)
Generalization of Nash equilibrium to multi-dimensional manifolds. Each agent minimizes behavioral friction on their own decision complex. Reduces to Nash when all non-monetary dimensions vanish.
Emergent Behavioral Phenomena
These are not ad-hoc biases — they emerge geometrically:
- Loss aversion (λ ≈ 2.25): losses traverse more dimensions than gains
- Reference dependence: distance measured from current state on manifold
- Endowment effect: ownership activates rights + identity dimensions
- Framing effects: gauge transformations on the description basis
Installation
pip install eris-econ
Or for development:
git clone https://github.com/ahb-sjsu/eris-econ.git
cd eris-econ
pip install -e ".[dev]"
Quick Start
from eris_econ.games import ultimatum_game
from eris_econ.pathfinding import astar
# Build the proposer's decision complex
E = ultimatum_game(stake=10.0)
# Find the optimal offer (Bond Geodesic)
goals = {f"offer_{p}" for p in [0, 10, 20, 30, 40, 50]}
result = astar(E, "start", goals)
print(f"Optimal choice: {result.path[-1]}") # ~offer_40 (not offer_0!)
print(f"Total behavioral friction: {result.total_cost:.3f}")
from eris_econ.behavioral import compute_loss_aversion
import numpy as np
# Compute emergent loss aversion from metric structure
sigma = np.eye(9)
sigma[0, 6] = 0.3 # consequences-identity coupling
sigma[6, 0] = 0.3
lambda_ratio = compute_loss_aversion(sigma)
print(f"Loss aversion λ = {lambda_ratio:.2f}") # > 1.0
Reproducing Table VII of Bond (2026, IEEE TCSS)
The sixteen-target benchmark of Geometric Prediction of Economic Behavior: Cross-Domain Validation Across Game Theory and Prospect Theory is recomputed, not stored. One command prints the table with the paper's rounding, the 16/16 pass count, the overall MAE of 2.70%, the Ruggeri lottery-subset MAE of 3.95%, and the game and non-game figures quoted in the text:
eris-econ-table7 # plain text
eris-econ-table7 --format latex # booktabs rows for the manuscript
eris-econ-table7 --format json # machine-readable, with the summary
from eris_econ.paper import table_vii, selected_sigma
t = table_vii()
t.summary["overall_mae"] # 2.702...
selected_sigma() # the paper's diagonal covariance
tests/test_paper.py asserts every printed value of Table VII, so the test
suite fails if the package ever stops reproducing the paper.
Modules
| Module | Description |
|---|---|
dimensions.py |
The 9 economic dimensions, transferable vs evaluative classification |
manifold.py |
Economic Decision Complex — weighted directed graph on R^9 |
metrics.py |
Mahalanobis distance, boundary penalties, edge weights |
pathfinding.py |
A* search for Bond Geodesic computation |
equilibrium.py |
Bond Geodesic Equilibrium via iterated best response |
games.py |
Standard games: ultimatum, dictator, prisoner's dilemma, public goods |
behavioral.py |
Loss aversion, reference dependence, endowment effect, framing |
calibration.py |
Parameter estimation for Σ and β from behavioral data |
welfare.py |
Multi-dimensional Pareto optimality and social welfare |
targets.py |
The sixteen benchmark targets and their encodings (Bond 2026, IEEE TCSS) |
structural_fuzz.py |
Exhaustive active-set search, sensitivity profile, robustness index |
paper.py |
Recomputes Table VII of the TCSS paper; eris-econ-table7 |
Citation
If you use this library in academic work, please cite:
@article{bond2026geometric,
title={Geometric Economics: Multi-Dimensional Decision Manifolds and Bond Geodesic Equilibrium},
author={Bond, Andrew H.},
journal={Journal of Economic Theory},
year={2026}
}
License
MIT
Metadata
Release files for eris-econ 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| eris_econ-0.1.1.tar.gz | 180.3 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| eris_econ-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 358.9 kB
Release files / eris_econ-0.1.1.tar.gz
| Download URL | eris_econ-0.1.1.tar.gz |
|---|---|
| Size | 180.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2adb7a5006cf63a9ac738b429eb13cd5b3f07de653052ebb832505bd74fecd33
|
|
BLAKE2b-256 checksum How to use checksums |
74ebabfc7d5e556650f9551547f8c23f7caf9f2912fe04b9227567c5ed7047e5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / eris_econ-0.1.1-py3-none-any.whl
| Download URL | eris_econ-0.1.1-py3-none-any.whl |
|---|---|
| Size | 178.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
701d4f8d7d58c57695a0bc2d4a9a1090ab004801ac862ff14a512fd6444c0c13
|
|
BLAKE2b-256 checksum How to use checksums |
1770349af52924ed8d8bf115d12cf039716dfb5f3d892aaae60f49a8e5f7dedc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Security for eris-econ 0.1.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.