본문으로 건너뛰기
cccskills
무료GitHub에 공개

fred-economic-data

Find and retrieve economic indicators from FRED, including GDP, unemployment, inflation, and interest rates. Supports comparisons across periods, changes in reporting frequency, historical releases before revisions, regional data, and publication schedules for economic research.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

원문원문 설명 보기

Query FRED (Federal Reserve Economic Data) API for 800,000+ economic time series from 100+ sources. Access GDP, unemployment, inflation, interest rates, exchange rates, housing, and regional data. Use for macroeconomic analysis, financial research, policy studies, economic forecasting, and academic research requiring U.S. and international economic indicators.

실행 점수 미검증

설치 방법 보기

이럴 때 유용합니다

  • Compare trends in GDP, prices, and interest rates
  • Check economic figures as originally reported
  • Retrieve upcoming economic data release dates
  • Collect state-level unemployment data for mapping

포함된 파일(10)

  • SKILL.md10.9 KB
  • references/api_basics.md4.5 KB
  • references/categories.md10.5 KB
  • references/geofred.md13.7 KB
  • references/releases.md15.6 KB
  • references/series.md14.1 KB
  • references/sources.md10.4 KB
  • references/tags.md11.1 KB
  • scripts/fred_examples.py10.1 KB
  • scripts/fred_query.py18.5 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

FRED Economic Data Access

Overview

Access comprehensive economic data through FRED (Federal Reserve Economic Data), a database maintained by the Federal Reserve Bank of St. Louis containing over 800,000 economic time series from over 100 sources.

Key capabilities:

  • Query economic time series data (GDP, unemployment, inflation, interest rates)
  • Search and discover series by keywords, tags, and categories
  • Access historical data and vintage (revision) data via ALFRED
  • Retrieve release schedules and data publication dates
  • Map regional economic data with GeoFRED
  • Apply data transformations (percent change, log, etc.)

API Key Setup

Required: All FRED API requests require an API key.

  1. Create an account at https://fredaccount.stlouisfed.org
  2. Log in and request an API key through the account portal
  3. Set as environment variable:
export FRED_API_KEY="your_32_character_key_here"

Or in Python:

import os
os.environ["FRED_API_KEY"] = "your_key_here"

Quick Start

Using the FREDQuery Class

from scripts.fred_query import FREDQuery

# Initialize with API key
fred = FREDQuery(api_key="YOUR_KEY")  # or uses FRED_API_KEY env var

# Get GDP data
gdp = fred.get_series("GDP")
print(f"Latest GDP: {gdp['observations'][-1]}")

# Get unemployment rate observations
unemployment = fred.get_observations("UNRATE", limit=12)
for obs in unemployment["observations"]:
    print(f"{obs['date']}: {obs['value']}%")

# Search for inflation series
inflation_series = fred.search_series("consumer price index")
for s in inflation_series["seriess"][:5]:
    print(f"{s['id']}: {s['title']}")

Direct API Calls

import requests
import os

API_KEY = os.environ.get("FRED_API_KEY")
BASE_URL = "https://api.stlouisfed.org/fred"

# Get series observations
response = requests.get(
    f"{BASE_URL}/series/observations",
    params={
        "api_key": API_KEY,
        "series_id": "GDP",
        "file_type": "json"
    }
)
data = response.json()

Popular Economic Series

Series IDDescriptionFrequency
GDPGross Domestic ProductQuarterly
GDPC1Real Gross Domestic ProductQuarterly
UNRATEUnemployment RateMonthly
CPIAUCSLConsumer Price Index (All Urban)Monthly
FEDFUNDSFederal Funds Effective RateMonthly
DGS1010-Year Treasury Constant MaturityDaily
HOUSTHousing StartsMonthly
PAYEMSTotal Nonfarm PayrollsMonthly
INDPROIndustrial Production IndexMonthly
M2SLM2 Money StockMonthly
UMCSENTConsumer SentimentMonthly
SP500S&P 500Daily

API Endpoint Categories

Series Endpoints

Get economic data series metadata and observations.

Key endpoints:

  • fred/series - Get series metadata
  • fred/series/observations - Get data values (most commonly used)
  • fred/series/search - Search for series by keywords
  • fred/series/updates - Get recently updated series
# Get observations with transformations
obs = fred.get_observations(
    series_id="GDP",
    units="pch",  # percent change
    frequency="q",  # quarterly
    observation_start="2020-01-01"
)

# Search with filters
results = fred.search_series(
    "unemployment",
    filter_variable="frequency",
    filter_value="Monthly"
)

Reference: See references/series.md for all 10 series endpoints

Categories Endpoints

Navigate the hierarchical organization of economic data.

Key endpoints:

  • fred/category - Get a category
  • fred/category/children - Get subcategories
  • fred/category/series - Get series in a category
# Get root categories (category_id=0)
root = fred.get_category()

# Get Money Banking & Finance category and its series
category = fred.get_category(32991)
series = fred.get_category_series(32991)

Reference: See references/categories.md for all 6 category endpoints

Releases Endpoints

Access data release schedules and publication information.

Key endpoints:

  • fred/releases - Get all releases
  • fred/releases/dates - Get upcoming release dates
  • fred/release/series - Get series in a release
# Get upcoming release dates
upcoming = fred.get_release_dates()

# Get GDP release info
gdp_release = fred.get_release(53)

Reference: See references/releases.md for all 9 release endpoints

Tags Endpoints

Discover and filter series using FRED tags.

# Find series with multiple tags
series = fred.get_series_by_tags(["gdp", "quarterly", "usa"])

# Get related tags
related = fred.get_related_tags("inflation")

Reference: See references/tags.md for all 3 tag endpoints

Sources Endpoints

Get information about data sources (BLS, BEA, Census, etc.).

# Get all sources
sources = fred.get_sources()

# Get Federal Reserve releases
fed_releases = fred.get_source_releases(source_id=1)

Reference: See references/sources.md for all 3 source endpoints

GeoFRED Endpoints

Access geographic/regional economic data for mapping.

# Get state unemployment data
regional = fred.get_regional_data(
    series_group="1220",  # Unemployment rate
    region_type="state",
    date="2023-01-01",
    units="Percent",
    season="NSA"
)

# Get GeoJSON shapes
shapes = fred.get_shapes("state")

Reference: See references/geofred.md for all 4 GeoFRED endpoints

Data Transformations

Apply transformations when fetching observations:

ValueDescription
linLevels (no transformation)
chgChange from previous period
ch1Change from year ago
pchPercent change from previous period
pc1Percent change from year ago
pcaCompounded annual rate of change
cchContinuously compounded rate of change
ccaContinuously compounded annual rate of change
logNatural log
# Get GDP percent change from year ago
gdp_growth = fred.get_observations("GDP", units="pc1")

Frequency Aggregation

Aggregate data to different frequencies:

CodeFrequency
dDaily
wWeekly
mMonthly
qQuarterly
aAnnual

Aggregation methods: avg (average), sum, eop (end of period)

# Convert daily to monthly average
monthly = fred.get_observations(
    "DGS10",
    frequency="m",
    aggregation_method="avg"
)

Real-Time (Vintage) Data

Access historical vintages of data via ALFRED:

# Get GDP as it was reported on a specific date
vintage_gdp = fred.get_observations(
    "GDP",
    realtime_start="2020-01-01",
    realtime_end="2020-01-01"
)

# Get all vintage dates for a series
vintages = fred.get_vintage_dates("GDP")

Common Patterns

Pattern 1: Economic Dashboard

def get_economic_snapshot(fred):
    """Get current values of key indicators."""
    indicators = ["GDP", "UNRATE", "CPIAUCSL", "FEDFUNDS", "DGS10"]
    snapshot = {}

    for series_id in indicators:
        obs = fred.get_observations(series_id, limit=1, sort_order="desc")
        if obs.get("observations"):
            latest = obs["observations"][0]
            snapshot[series_id] = {
                "value": latest["value"],
                "date": latest["date"]
            }

    return snapshot

Pattern 2: Time Series Comparison

def compare_series(fred, series_ids, start_date):
    """Compare multiple series over time."""
    import pandas as pd

    data = {}
    for sid in series_ids:
        obs = fred.get_observations(
            sid,
            observation_start=start_date,
            units="pc1"  # Normalize as percent change
        )
        data[sid] = {
            o["date"]: float(o["value"])
            for o in obs["observations"]
            if o["value"] != "."
        }

    return pd.DataFrame(data)

Pattern 3: Release Calendar

def get_upcoming_releases(fred, days=7):
    """Get data releases in next N days."""
    from datetime import datetime, timedelta

    end_date = datetime.now() + timedelta(days=days)

    releases = fred.get_release_dates(
        realtime_start=datetime.now().strftime("%Y-%m-%d"),
        realtime_end=end_date.strftime("%Y-%m-%d"),
        include_release_dates_with_no_data="true"
    )

    return releases

Pattern 4: Regional Analysis

def map_state_unemployment(fred, date):
    """Get unemployment by state for mapping."""
    data = fred.get_regional_data(
        series_group="1220",
        region_type="state",
        date=date,
        units="Percent",
        frequency="a",
        season="NSA"
    )

    # Get GeoJSON for mapping
    shapes = fred.get_shapes("state")

    return data, shapes

Error Handling

result = fred.get_observations("INVALID_SERIES")

if "error" in result:
    print(f"Error {result['error']['code']}: {result['error']['message']}")
elif not result.get("observations"):
    print("No data available")
else:
    # Process data
    for obs in result["observations"]:
        if obs["value"] != ".":  # Handle missing values
            print(f"{obs['date']}: {obs['value']}")

Rate Limits

  • API implements rate limiting
  • HTTP 429 returned when exceeded
  • Use caching for frequently accessed data
  • The FREDQuery class includes automatic retry with backoff

Reference Documentation

For detailed endpoint documentation:

  • Series endpoints - See references/series.md
  • Categories endpoints - See references/categories.md
  • Releases endpoints - See references/releases.md
  • Tags endpoints - See references/tags.md
  • Sources endpoints - See references/sources.md
  • GeoFRED endpoints - See references/geofred.md
  • API basics - See references/api_basics.md

Scripts

scripts/fred_query.py

Main query module with FREDQuery class providing:

  • Unified interface to all FRED endpoints
  • Automatic rate limiting and caching
  • Error handling and retry logic
  • Type hints and documentation

scripts/fred_examples.py

Comprehensive examples demonstrating:

  • Economic indicator retrieval
  • Time series analysis
  • Release calendar monitoring
  • Regional data mapping
  • Data transformation and aggregation

Run examples:

uv run python scripts/fred_examples.py

Additional Resources

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

adaptyv

무료

Support experimental validation of designed proteins through a cloud laboratory. Prepare and optimize sequences, submit tests for binding, expression, thermal stability, or enzyme activity, track experiment progress, and retrieve results through the API.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Submit designed proteins for binding tests
  • Request expression, thermal stability, or enzyme activity tests
  • Optimize sequences for solubility before experiments
foryourhealth111-pixel/Vibe-Skills3.8천2026년 10월 23일 업데이트

aeon

무료

Analyze time series, observations ordered over time, using aeon in Python. Build classification, prediction, and clustering workflows, detect unusual patterns or changes, and compare methods through an interface compatible with scikit-learn.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Classifying time series by their patterns
  • Forecasting future values from past observations
  • Detecting anomalies and change points
foryourhealth111-pixel/Vibe-Skills3.8천2026년 10월 23일 업데이트

Create original generative art with p5.js, using code to produce patterns and motion. Receive a written artistic concept and an interactive HTML viewer with adjustable parameters, reproducible random variations, seed navigation, and PNG downloads.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Create art from particle motion and flow fields
  • Explore patterns by adjusting sliders
  • Reproduce a favorite variation with the same seed
foryourhealth111-pixel/Vibe-Skills3.8천2026년 10월 23일 업데이트

Retrieve stock prices, exchange rates, cryptocurrency prices, company financial statements, and economic indicators through the Alpha Vantage API. It also covers historical data, news sentiment, and technical indicators, which summarize price and trading patterns.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Retrieve historical stock prices and trading volumes
  • Collect company financial statements and earnings data
  • Check foreign exchange and cryptocurrency prices
foryourhealth111-pixel/Vibe-Skills3.8천2026년 10월 23일 업데이트

Design backend systems with clear boundaries between business rules, databases, and external services. Use Clean Architecture, Hexagonal Architecture, and Domain-Driven Design to organize new applications, refactor existing code, and make core logic easier to test.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Planning the structure of a new backend
  • Refactoring tightly coupled applications
  • Testing business rules independently of external services
foryourhealth111-pixel/Vibe-Skills3.8천2026년 10월 23일 업데이트

astropy

무료

Helps process astronomical data in Python by converting coordinates, units, and time scales, working with FITS observation files, matching object catalogs, and calculating distances using cosmological models.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Converting celestial coordinates
  • Reading and editing FITS observation files
  • Matching objects across astronomical catalogs
foryourhealth111-pixel/Vibe-Skills3.8천2026년 10월 23일 업데이트

foryourhealth111-pixel의 스킬 모두 보기

이 스킬의 문제 신고