Skip to main content

PyEconomics Logo

PyEconomics

Security notice: pyeconomics 0.2.0 to 0.2.5 write your FRED API key to the log at DEBUG level. 0.2.6 fixes this; upgrade with pip install --upgrade pyeconomics. If you ran an earlier version with DEBUG logging enabled and those logs were stored or shared, rotate your key at https://fredaccount.stlouisfed.org/apikeys. 0.2.x receives security fixes only and reaches end-of-life when pyeconomics 1.0.0 is released. See the security advisory and the CHANGELOG.

PyEconomics is a Python library for economic and financial analysis, designed to provide tools and models for analyzing various aspects of economic, financial, and fiscal policy. Whether you're a developer, economist, financial analyst, or researcher, PyEconomics aims to be your go-to resource for sophisticated economic modeling and analysis.

Category Badge
Testing pytest codecov
Package PyPI Latest Release Python Version PyPI Downloads License: MIT
Documentation Documentation Status
Release Release Status
Build Status Build Status
Maintainability Maintainability
Code Style Code Style: Flake8
Dependencies Dependency Status
Security Security Status

Table of Contents

Introduction

PyEconomics is a versatile and comprehensive library that integrates various economic and financial models. It is designed to support the development and analysis of monetary policy rules, exchange rate models, macroeconomic and microeconomic models, discounted cash flow models, and much more.

Features

Current Features

  • Monetary Policy Rules: Implementation of well-known monetary policy rules.
  • Cache Management: Efficient caching for API calls to improve performance and reduce redundant data fetching.

Planned Features

  • Exchange Rate Models: Models for predicting future exchange rates.
  • Macroeconomic Models: Comprehensive macroeconomic models.
  • Microeconomic Models: Detailed microeconomic models.
  • Discounted Cash Flow Models: Advanced models for discounted cash flow analysis.
  • Financial Models: Including CAPM and portfolio optimization.
  • Fiscal Policy Models: Tools to analyze taxation, government spending, and public debt.
  • Additional Economic Models: Support for behavioral economics, agent-based models, and international trade models.

Installation

To install PyEconomics, use pip:

pip install pyeconomics

From Source

If you want to install the package from the source code, follow these steps:

  1. Clone the repository:

    git clone https://github.com/nathanramoscfa/pyeconomics.git
    
  2. Change to the project directory:

    cd pyeconomics
    
  3. Install the package:

    pip install .
    

API Key

Some features of PyEconomics require access to the FRED API. To use these features, you need to configure your FRED API access.

A detailed step-by-step guide on obtaining and securely storing your FRED API key is available here:

Usage

Here are some basic examples of how to use PyEconomics for calculating and visualizing monetary policy rules.

Example 1: Calculate Current Policy Rule Estimates

# Import pyeconomics
import pyeconomics as pyecon

# Calculate policy rule estimates
policy_estimates = pyecon.calculate_policy_rule_estimates(verbose=True)

Verbose Print Statement:

Policy Rules Plot

Example 2: Adjust Taylor Rule for Effective Lower Bound (ELB) and Policy Inertia

# Import pyeconomics
import pyeconomics as pyecon

# Adjustment Parameters
rho = 0.7  # Policy Inertia Coefficient
apply_elb = True  # Apply Effective Lower Bound

adjusted_policy_estimates = pyecon.calculate_policy_rule_estimates(
    rho=rho,
    apply_elb=apply_elb,
    verbose=True
)

Verbose Print Statement:

Policy Rules Plot

Example 3: Calculate Current Taylor Rule Estimates

# Import pyeconomics modules
import pyeconomics as pyecon

# Calculate policy rule estimates
policy_estimates = pyecon.taylor_rule(verbose=True)

Verbose Print Statement:

==== Economic Indicators =================================================
Current Inflation:                               3.04%
Target Inflation:                                2.00%
Current Unemployment Rate:                       3.90%
Natural Unemployment Rate:                       4.41%
Long-Term Real Interest Rate:                    2.10%
Current Fed Rate:                                5.50%
As of Date:                                      May 21, 2024

==== Gaps ================================================================
Inflation Gap:                                   1.04%
Unemployment Gap:                                0.51%

==== Taylor Rule =========================================================
  Long-Term Real Interest Rate:                  2.10%
  Current Inflation:                             + 3.04%
  Alpha * Inflation Gap:                         + 0.50 * 1.04%
  Beta * Okun Factor * Unemployment Gap:         + 0.50 * 2.00 * 0.51%
--------------------------------------------------------------------------
  Unadjusted Taylor Rule Estimate:               6.17%

==== Adjusted Taylor Rule ================================================
  Effective Lower Bound (ELB) Adjustment: 
  Maximum of Taylor Rule or ELB:                 max(6.17%, 0.12%)
--------------------------------------------------------------------------
  Taylor Rule Adjusted for ELB:                  6.17%

  Policy Inertia Adjustment:              
  Policy Inertia Coefficient (rho):              0.70
  Current Fed Rate:                              * 5.50%
  Adjustment Coefficient (1 - rho):              + (1 - 0.70)
  Taylor Rule Adjusted for ELB:                  * 6.17%
--------------------------------------------------------------------------
  Adjusted Taylor Rule Estimate:                 5.70%

==== Policy Prescription =================================================
  The Adjusted Taylor Rule Estimate is 0.20% higher than the Current 
  Fed Rate. The Fed should consider raising the interest rate by 0.25%.

Example 4: Calculate and Plot Historical Policy Rule Estimates

# Import pyeconomics modules
import pyeconomics as pyecon

# Calculate historical policy rates
historical_policy_estimates = pyecon.calculate_historical_policy_rates().dropna()

# Plot historical policy rates
pyecon.plot_historical_rule_estimates(historical_policy_estimates)

Policy Rules Plot

Example 5: Calculate and Plot the Adjusted Historical Policy Rules Adjusted

# Import pyeconomics modules
import pyeconomics as pyecon

# Adjustment Parameters
rho = 0.7  # Policy Inertia Coefficient
apply_elb = True  # Apply Effective Lower Bound

# Calculate adjusted historical policy rates
adjusted_historical_policy_estimates = pyecon.calculate_historical_policy_rates(
    rho=rho,
    apply_elb=apply_elb
).dropna()

# Plot adjusted historical policy rates
pyecon.plot_historical_rule_estimates(
    adjusted_historical_policy_estimates,
    adjusted=True)

Policy Rules Plot

Examples

For more comprehensive examples, refer to the examples directory in the repository.

Docker

To run PyEconomics using Docker, follow these steps:

  1. Configure the .env File: Create a .env file in the root directory of pyeconomics with the following content:

    FRED_API_KEY=your_fred_api_key_here
    
  2. Build the Docker Image: Navigate to your project directory and run the following command to build the Docker image:

    docker build -t pyeconomics .
    
  3. Run the Docker Container: Run a container from your custom Docker image:

    docker run --env-file .env -p 8888:8888 -it --rm pyeconomics
    

    This will start a JupyterLab instance with the specified notebook open.

  4. Access JupyterLab: In the command prompt output, you will see something like this:

    To access the server, open this file in a browser:
        file:///root/.local/share/jupyter/runtime/jpserver-1-open.html
    Or copy and paste one of these URLs:
        http://e99fe8b9fbb5:8888/lab/tree/monetary_policy_rules/monetary_policy_rules.ipynb?token=your_token_here
        http://127.0.0.1:8888/lab/tree/monetary_policy_rules/monetary_policy_rules.ipynb?token=your_token_here
    

    To open JupyterLab in your browser, hold the CTRL button and click the link starting with: http://127.0.0.1:8888. Ignore the other links.

By using Docker, you ensure a consistent environment for running and testing PyEconomics.

Roadmap

The following models and categories are planned for future development. Contributions are welcome!

Monetary Policy Models
  • Taylor Rule
  • Balanced Approach Rule
  • First Difference Rule
  • McCallum Rule
  • Orphanides Rule
  • Friedman Rule
  • Interest Rate Smoothing Models
Quantity of Money Theory
  • Fisher Equation
  • Cambridge Equation
  • Velocity of Money Models
  • Quantity Theory of Money (QTM)
  • Money Demand Function (Md)
Economic Models to Predict Future Exchange Rates
  • Purchasing Power Parity (PPP)
  • Interest Rate Parity (IRP)
  • Monetary Models of Exchange Rates
  • Portfolio Balance Models
  • Behavioral Equilibrium Exchange Rate (BEER)
  • Fundamental Equilibrium Exchange Rate (FEER)
Macroeconomic Models
  • IS-LM Model
  • AD-AS Model
  • Solow Growth Model
  • New Keynesian Models
  • RBC (Real Business Cycle) Model
  • DSGE (Dynamic Stochastic General Equilibrium) Models
Microeconomic Models
  • Supply and Demand Models
  • Consumer Choice Theory
  • Production Theory
  • Cost Functions
  • Game Theory Models
  • Market Structure Models (Perfect Competition, Monopoly, Oligopoly)
Discounted Cash Flow Models
  • Dividend Discount Model (DDM)
  • Free Cash Flow to Equity (FCFE)
  • Free Cash Flow to Firm (FCFF)
  • Net Present Value (NPV)
  • Internal Rate of Return (IRR)
  • Adjusted Present Value (APV)
Financial Models
  • Capital Asset Pricing Model (CAPM)
  • Arbitrage Pricing Theory (APT)
  • Black-Scholes Option Pricing Model
  • Bond Valuation Models
  • Credit Risk Models (e.g., Merton Model)
  • Portfolio Optimization Models (e.g., Markowitz Model)
Fiscal Policy Models
  • Taxation and Government Spending Models
  • Budget Deficit Models
  • Public Debt Models
  • Fiscal Multiplier Models
  • Laffer Curve
  • Ricardian Equivalence
Other Well-Known Economic Models
  • Behavioral Economics Models
  • Agent-Based Models
  • Environmental Economics Models
  • International Trade Models (e.g., Heckscher-Ohlin Model)
  • Labor Market Models
  • Health Economics Models

Contributing

Contributions are welcome! If you have a model you'd like to implement or an improvement to an existing model, please refer to our detailed Contributing Guide.

By participating in this project, you agree to abide by the Code of Conduct.

Thank you for your contributions!

Contact

If you have any questions, suggestions, or need support, feel free to reach out.

Nathan Ramos, CFA

Welcome to my GitHub! I'm Nathan, an independent Fintech Developer with a Chartered Financial Analyst (CFA) designation, specializing in Python-based financial analysis, quantitative strategies, and automated trading programs. Currently, I'm a fintech consultant open to new clients, especially in the realm of automated trading algorithms.

📅 Schedule a Meeting with Me

Connect with Me

Feel free to connect with me for any inquiries or collaboration opportunities.

Metadata

Release files for pyeconomics 0.2.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyeconomics 0.2.6
File Size Uploaded Provenance
pyeconomics-0.2.6.tar.gz 1.0 MB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for pyeconomics 0.2.6
File Interpreter ABI Platform
pyeconomics-0.2.6-py3-none-any.whl Python 3 none any Details

Total release size: 1.1 MB

Release files / pyeconomics-0.2.6.tar.gz

Download URL pyeconomics-0.2.6.tar.gz
Size 1.0 MB
Tags Source
SHA-256 checksum
How to use checksums
c9858feaada7da69d5a493bf09ba7d1d6c442cd9b7da0a756d91c77596e80571
BLAKE2b-256 checksum
How to use checksums
0e6ae0a47a4ea7acba2d072f5cd8d5db46ead3b2bf72e8161cfbd5ba84ed1354
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Release files / pyeconomics-0.2.6-py3-none-any.whl

Download URL pyeconomics-0.2.6-py3-none-any.whl
Size 46.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a3772ccbf7faaab8c942b48d129573b7c0037e32bacc353306b12063d766249d
BLAKE2b-256 checksum
How to use checksums
c08286a74cc4e832c49945bbb62b0969d24c23c9c5e8bca0849ea2442ab6081d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Security for pyeconomics 0.2.6

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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for pyeconomics-0.2.6.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

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.

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