thePR0M3TH3AN 71e3bf4ab9 Add refresh_data script and startup script for offline data setup
- Introduced `scripts/refresh_data.py` to download UNRATE and WTI data from FRED and store it in a SQLite database.
- Added `startup.sh` script to set up a Python virtual environment and install dependencies for offline use.
- Updated `repo-context.txt` to reflect the new scripts and their purposes.
2025-05-30 16:06:04 -04:00
2025-05-29 16:18:32 -04:00
2025-05-30 16:02:18 -04:00

Lagged Oil vs. Unemployment Charting

This repository provides two Python scripts to fetch the latest US Unemployment Rate (UNRATE) and WTI crude oil price (DCOILWTICO) from FRED, apply a configurable lag or lead to the oil series, and generate polished dual‑axis charts.

Files

  • lagged_oil_unrate_chart.py A lightweight script that:

    1. Downloads monthly UNRATE and averages daily WTI to monthly.
    2. Shifts the oil series by N months (default = 18).
    3. Plots both series on a dual‑axis Matplotlib chart.
  • lagged_oil_unrate_chart_styled.py A more polished version that adds:

    • Title, subtitle, footnote with date range and source.
    • Clean dual‑axis styling with percentage and dollar‑format ticks.
    • Customizable date range and extended x‑axis (e.g., 1973–2028).
    • CLI flags for offset, start/end dates, and axis extension.
  • requirements.txt Lists all Python dependencies for both scripts.

Prerequisites

  • Python 3.7 or later
  • Internet connection (to fetch data from FRED)

Setup

Clone or download this repository:

git clone https://your-repo-url.git
cd your-repo-folder

Create a Virtual Environment & Install Dependencies

On Linux / macOS

# 1. Create a venv
python3 -m venv venv

# 2. Activate it
source venv/bin/activate

# 3. Upgrade pip and install requirements
pip install --upgrade pip
pip install -r requirements.txt

On Windows (PowerShell)

# 1. Create a venv
python -m venv venv

# 2. Activate it
venv\Scripts\Activate.ps1

# 3. Upgrade pip and install requirements
python -m pip install --upgrade pip
pip install -r requirements.txt

Note: If you get execution policy errors on Windows, you may need to run:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

Usage

Once the virtual environment is active and dependencies are installed, run either script from the project root.

1. Basic Lag Script

# Default: oil lags unemployment by 18 months (~1.5 years)
python lagged_oil_unrate_chart.py

# Other offsets (in months)
python lagged_oil_unrate_chart.py --offset 6    # 6‑month lag
python lagged_oil_unrate_chart.py --offset -12  # 12‑month lead

2. Styled & Configurable Chart

python lagged_oil_unrate_chart_styled.py \
    --offset 18 \
    --start 1973-01-01 \
    --end 2025-05-31 \
    --extend-years 3
Flag Description
--offset N Lag (positive) or lead (negative) in months (default = 18)
--start DATE Series start date (YYYY-MM-DD, default = 1973-01-01)
--end DATE Series end date (YYYY-MM-DD, default = today)
--extend-years M How many years beyond end to extend the x‑axis (default = 3)

Customization

  • Normalization: Insert a normalization step (e.g., percent change from a base date).
  • Export: Modify the script to save figures with plt.savefig('chart.png', dpi=300).
  • Statistics: Add ta.correl() or use Pandas to compute rolling correlations.

Troubleshooting

  • "ModuleNotFoundError": Ensure your venv is activated, then reinstall dependencies.
  • SSL/DataReader errors: Upgrade pandas_datareader or switch to an alternate data source.

License

This project is released under the MIT License.

S
Description
No description provided
Readme MIT
54 MiB
0 Stars 1 Watchers 0 Forks
Languages
Python 95.5%
Shell 3.5%
Makefile 1%