Employ America tools for pulling and graphing U.S. macroeconomic data.
Project description
MacroTools
A Python package for pulling, caching, and graphing U.S. macroeconomic data. Built at Employ America.
MacroTools makes it easy to download flat files from the BLS, BEA, and regional Federal Reserve surveys, and to produce publication-ready time series charts with a consistent visual style.
Installation
pip install macrotools
For FRED/ALFRED support:
pip install macrotools[fred]
Quick start
import macrotools as mt
import matplotlib.pyplot as plt
# Pull household survey data (cached automatically for 7 days)
data = mt.pull_data('ln')
# Plot prime-age employment rate
fig = mt.tsgraph(
series=data['LNS12300060'] / 100,
xaxis={'lim': ('2019-01', '2025-06')},
yaxis={'lim': (0.76, 0.82), 'ticksize': 0.01, 'tickformat': 'pctg', 'decimals': 0},
title={'title': 'Prime-Age Employment Rate'},
)
plt.show()
Features
Data access
pull_data(source) downloads and caches full flat files. pull_bls_series() extracts individual series by code.
Supported sources:
| Source | Description |
|---|---|
ln |
Household survey (CPS) labor force statistics |
ce |
Establishment survey (CES) statistics |
jt |
Job Openings and Labor Turnover Survey (JOLTS) |
cu |
CPI — All Urban Consumers |
pc |
PPI — Industry Data |
wp |
PPI — Commodity Data |
ei |
Import/Export Price Indices |
cx |
Consumer Expenditures |
tu |
Time Use Survey |
nipa-pce |
NIPA Personal Consumption Expenditures |
stclaims |
State-level unemployment claims |
ny-mfg, ny-svc |
NY Fed Empire Manufacturing & Services |
philly-mfg, philly-nonmfg |
Philadelphia Fed surveys |
richmond-mfg, richmond-nonmfg |
Richmond Fed surveys |
dallas-mfg, dallas-svc, dallas-retail |
Dallas Fed surveys |
kc-mfg, kc-svc |
Kansas City Fed surveys |
BLS sources require an email address. MacroTools will prompt you the first time and store it locally in ~/.macrodata_credentials/.
With the optional fredapi dependency, alfred_as_reported() pulls historical vintage data from ALFRED.
Graphing
tsgraph() wraps matplotlib with EA house styling (colors, fonts, layout). It supports:
- Single and multi-series plots
- Dual y-axes
- Customizable axis limits, tick formatting, labels, and legends
- Percentage and decimal tick formats
- Subtitles, shading, and reference lines
- Saving directly to PNG
Pass data as a Series, DataFrame, or dict of series. Formatting is controlled via the format_info dict — see help(mt.tsgraph) for the full list of options.
Time series utilities
cagr(data, lag, ma)— Compounded annual growth rates with optional moving-average smoothing.rebase(data, baseperiod, basevalue)— Reindex series to a base period (single date or date range).
Credential setup
BLS email: Required for BLS data. Set once with mt.store_email('you@example.com') or pass email= to pull_data().
FRED API key: Required for alfred_as_reported(). Register at FRED, then mt.store_fred_api_key('your-key') or set the FRED_API_KEY environment variable.
Credentials are stored in ~/.macrodata_credentials/credentials.json. Cached data lives in ~/.macrodata_cache/ with a 7-day TTL.
Examples
See the example notebook for detailed usage with output.
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file macrotools-0.3.0.tar.gz.
File metadata
- Download URL: macrotools-0.3.0.tar.gz
- Upload date:
- Size: 3.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1dddb024229ee5a5a45680186918bbd25a867beb6adee7f910d33e0dd2a5fdff
|
|
| MD5 |
d4a1fbc191ba088bca0fb271e40e4ede
|
|
| BLAKE2b-256 |
723e8dcdc51d17acc1768e2d993e594d6592aceb6857852a87eb0940c5e0b477
|
File details
Details for the file macrotools-0.3.0-py3-none-any.whl.
File metadata
- Download URL: macrotools-0.3.0-py3-none-any.whl
- Upload date:
- Size: 3.5 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fee7a3cfa30c738ed0c32807ef2ffa3864e0ecfd43e094477fcadb1bdbaf7482
|
|
| MD5 |
87b1945dfa039280e60ea7dbe8d08ab8
|
|
| BLAKE2b-256 |
a64bb522f22680e5991aa3c6799e3be08a73d237bd96bcb1bbf9efe1ea54d10b
|