Skip to main content

eris-econ

CI PyPI Python License: MIT DOI

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)

Source distribution for eris-econ 0.1.1
File Size Uploaded Provenance
eris_econ-0.1.1.tar.gz 180.3 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for eris-econ 0.1.1
File Interpreter ABI Platform
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.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page