mirror of
https://github.com/OpenBB-finance/OpenBB.git
synced 2026-10-27 04:31:13 +00:00
[Enhancement] Fixed Income Enhancements (#6490)
* improve effr and move sofr to fixedincome.rate * federal_reserve default start date * fred cassette * commercial paper * cp series map * update sofr and add federal_reserve to endpoint * examples * update ameribor * maturity_dict * add overnight bank funding rate * add federal reserve to obfr * pop footnoteId * central bank holdings descriptions * move moody's bond indices to the bond_indices endpoint * add it to the INDEX_CHOICES * improve hqm * handle none * add treasury minus fed funds to yield curve * static assets * estr * description * missed file in commit * second return statement
This commit is contained in:
@@ -13,7 +13,7 @@ from openbb_core.provider.utils.descriptions import (
|
||||
)
|
||||
|
||||
|
||||
class AMERIBORQueryParams(QueryParams):
|
||||
class AmeriborQueryParams(QueryParams):
|
||||
"""AMERIBOR Query."""
|
||||
|
||||
start_date: Optional[dateType] = Field(
|
||||
@@ -26,8 +26,19 @@ class AMERIBORQueryParams(QueryParams):
|
||||
)
|
||||
|
||||
|
||||
class AMERIBORData(Data):
|
||||
class AmeriborData(Data):
|
||||
"""AMERIBOR Data."""
|
||||
|
||||
date: dateType = Field(description=DATA_DESCRIPTIONS.get("date", ""))
|
||||
rate: Optional[float] = Field(description="AMERIBOR rate.")
|
||||
symbol: Optional[str] = Field(
|
||||
default=None, description=DATA_DESCRIPTIONS.get("symbol", "")
|
||||
)
|
||||
maturity: str = Field(description="Maturity length of the item.")
|
||||
rate: float = Field(
|
||||
description="Interest rate.",
|
||||
json_schema_extra={"x-unit_measurement": "percent", "x-frontend_multiply": 100},
|
||||
)
|
||||
title: Optional[str] = Field(
|
||||
default=None,
|
||||
description="Title of the series.",
|
||||
)
|
||||
@@ -3,9 +3,9 @@
|
||||
from datetime import (
|
||||
date as dateType,
|
||||
)
|
||||
from typing import Literal, Optional
|
||||
from typing import Optional
|
||||
|
||||
from pydantic import Field, field_validator
|
||||
from pydantic import Field
|
||||
|
||||
from openbb_core.provider.abstract.data import Data
|
||||
from openbb_core.provider.abstract.query_params import QueryParams
|
||||
@@ -26,28 +26,21 @@ class CommercialPaperParams(QueryParams):
|
||||
default=None,
|
||||
description=QUERY_DESCRIPTIONS.get("end_date", ""),
|
||||
)
|
||||
maturity: Literal["overnight", "7d", "15d", "30d", "60d", "90d"] = Field(
|
||||
default="30d",
|
||||
description="The maturity.",
|
||||
)
|
||||
category: Literal["asset_backed", "financial", "nonfinancial"] = Field(
|
||||
default="financial",
|
||||
description="The category.",
|
||||
)
|
||||
grade: Literal["aa", "a2_p2"] = Field(
|
||||
default="aa",
|
||||
description="The grade.",
|
||||
)
|
||||
|
||||
@field_validator("maturity", "category", "grade", mode="before", check_fields=False)
|
||||
@classmethod
|
||||
def to_lower(cls, v: Optional[str]) -> Optional[str]:
|
||||
"""Convert field to lowercase."""
|
||||
return v.lower() if v else v
|
||||
|
||||
|
||||
class CommercialPaperData(Data):
|
||||
"""Commercial Paper Data."""
|
||||
|
||||
date: dateType = Field(description=DATA_DESCRIPTIONS.get("date", ""))
|
||||
rate: Optional[float] = Field(description="Commercial Paper Rate.")
|
||||
symbol: Optional[str] = Field(
|
||||
default=None, description=DATA_DESCRIPTIONS.get("symbol", "")
|
||||
)
|
||||
maturity: str = Field(description="Maturity length of the item.")
|
||||
rate: float = Field(
|
||||
description="Interest rate.",
|
||||
json_schema_extra={"x-unit_measurement": "percent", "x-frontend_multiply": 100},
|
||||
)
|
||||
title: Optional[str] = Field(
|
||||
default=None,
|
||||
description="Title of the series.",
|
||||
)
|
||||
@@ -1,33 +0,0 @@
|
||||
"""ESTR Standard Model."""
|
||||
|
||||
from datetime import date as dateType
|
||||
from typing import Optional
|
||||
|
||||
from pydantic import Field
|
||||
|
||||
from openbb_core.provider.abstract.data import Data
|
||||
from openbb_core.provider.abstract.query_params import QueryParams
|
||||
from openbb_core.provider.utils.descriptions import (
|
||||
DATA_DESCRIPTIONS,
|
||||
QUERY_DESCRIPTIONS,
|
||||
)
|
||||
|
||||
|
||||
class ESTRQueryParams(QueryParams):
|
||||
"""ESTR Query."""
|
||||
|
||||
start_date: Optional[dateType] = Field(
|
||||
default=None,
|
||||
description=QUERY_DESCRIPTIONS.get("start_date", ""),
|
||||
)
|
||||
end_date: Optional[dateType] = Field(
|
||||
default=None,
|
||||
description=QUERY_DESCRIPTIONS.get("end_date", ""),
|
||||
)
|
||||
|
||||
|
||||
class ESTRData(Data):
|
||||
"""ESTR Data."""
|
||||
|
||||
date: dateType = Field(description=DATA_DESCRIPTIONS.get("date", ""))
|
||||
rate: Optional[float] = Field(description="ESTR rate.")
|
||||
@@ -0,0 +1,67 @@
|
||||
"""Euro Short Term Rate Standard Model."""
|
||||
|
||||
from datetime import date as dateType
|
||||
from typing import Optional
|
||||
|
||||
from pydantic import Field
|
||||
|
||||
from openbb_core.provider.abstract.data import Data
|
||||
from openbb_core.provider.abstract.query_params import QueryParams
|
||||
from openbb_core.provider.utils.descriptions import (
|
||||
DATA_DESCRIPTIONS,
|
||||
QUERY_DESCRIPTIONS,
|
||||
)
|
||||
|
||||
|
||||
class EuroShortTermRateQueryParams(QueryParams):
|
||||
"""Euro Short Term Rate Query."""
|
||||
|
||||
start_date: Optional[dateType] = Field(
|
||||
default=None,
|
||||
description=QUERY_DESCRIPTIONS.get("start_date", ""),
|
||||
)
|
||||
end_date: Optional[dateType] = Field(
|
||||
default=None,
|
||||
description=QUERY_DESCRIPTIONS.get("end_date", ""),
|
||||
)
|
||||
|
||||
|
||||
class EuroShortTermRateData(Data):
|
||||
"""Euro Short Term Rate Data."""
|
||||
|
||||
date: dateType = Field(description=DATA_DESCRIPTIONS.get("date", ""))
|
||||
rate: float = Field(
|
||||
description="Volume-weighted trimmed mean rate.",
|
||||
json_schema_extra={"x-unit_measurement": "percent", "x-frontend_multiply": 100},
|
||||
)
|
||||
percentile_25: Optional[float] = Field(
|
||||
default=None,
|
||||
description="Rate at 25th percentile of volume.",
|
||||
json_schema_extra={"x-unit_measurement": "percent", "x-frontend_multiply": 100},
|
||||
)
|
||||
percentile_75: Optional[float] = Field(
|
||||
default=None,
|
||||
description="Rate at 75th percentile of volume.",
|
||||
json_schema_extra={"x-unit_measurement": "percent", "x-frontend_multiply": 100},
|
||||
)
|
||||
volume: Optional[float] = Field(
|
||||
default=None,
|
||||
description=DATA_DESCRIPTIONS.get("volume", "")+ " (Millions of €EUR).",
|
||||
json_schema_extra={
|
||||
"x-unit_measurement": "currency",
|
||||
"x-frontend_multiply": 1e6,
|
||||
},
|
||||
)
|
||||
transactions: Optional[int] = Field(
|
||||
default=None,
|
||||
description="Number of transactions.",
|
||||
)
|
||||
number_of_banks: Optional[int] = Field(
|
||||
default=None,
|
||||
description="Number of active banks.",
|
||||
)
|
||||
large_bank_share_of_volume: Optional[float] = Field(
|
||||
default=None,
|
||||
description="The percent of volume attributable to the 5 largest active banks.",
|
||||
json_schema_extra={"x-unit_measurement": "percent", "x-frontend_multiply": 100},
|
||||
)
|
||||
@@ -1,33 +0,0 @@
|
||||
"""FED Standard Model."""
|
||||
|
||||
from datetime import date as dateType
|
||||
from typing import Optional
|
||||
|
||||
from pydantic import Field
|
||||
|
||||
from openbb_core.provider.abstract.data import Data
|
||||
from openbb_core.provider.abstract.query_params import QueryParams
|
||||
from openbb_core.provider.utils.descriptions import (
|
||||
DATA_DESCRIPTIONS,
|
||||
QUERY_DESCRIPTIONS,
|
||||
)
|
||||
|
||||
|
||||
class FEDQueryParams(QueryParams):
|
||||
"""FED Query."""
|
||||
|
||||
start_date: Optional[dateType] = Field(
|
||||
default=None,
|
||||
description=QUERY_DESCRIPTIONS.get("start_date", ""),
|
||||
)
|
||||
end_date: Optional[dateType] = Field(
|
||||
default=None,
|
||||
description=QUERY_DESCRIPTIONS.get("end_date", ""),
|
||||
)
|
||||
|
||||
|
||||
class FEDData(Data):
|
||||
"""FED Data."""
|
||||
|
||||
date: dateType = Field(description=DATA_DESCRIPTIONS.get("date", ""))
|
||||
rate: Optional[float] = Field(description="FED rate.")
|
||||
@@ -0,0 +1,75 @@
|
||||
"""Federal Funds Rate Standard Model."""
|
||||
|
||||
from datetime import date as dateType
|
||||
from typing import Optional
|
||||
|
||||
from pydantic import Field
|
||||
|
||||
from openbb_core.provider.abstract.data import Data
|
||||
from openbb_core.provider.abstract.query_params import QueryParams
|
||||
from openbb_core.provider.utils.descriptions import (
|
||||
DATA_DESCRIPTIONS,
|
||||
QUERY_DESCRIPTIONS,
|
||||
)
|
||||
|
||||
|
||||
class FederalFundsRateQueryParams(QueryParams):
|
||||
"""Federal Funds Rate Query."""
|
||||
|
||||
start_date: Optional[dateType] = Field(
|
||||
default=None,
|
||||
description=QUERY_DESCRIPTIONS.get("start_date", ""),
|
||||
)
|
||||
end_date: Optional[dateType] = Field(
|
||||
default=None,
|
||||
description=QUERY_DESCRIPTIONS.get("end_date", ""),
|
||||
)
|
||||
|
||||
|
||||
class FederalFundsRateData(Data):
|
||||
"""Federal Funds Rate Data."""
|
||||
|
||||
date: dateType = Field(description=DATA_DESCRIPTIONS.get("date", ""))
|
||||
rate: float = Field(
|
||||
description="Effective federal funds rate.",
|
||||
json_schema_extra={"x-unit_measurement": "percent", "x-frontend_multiply": 100},
|
||||
)
|
||||
target_range_upper: Optional[float] = Field(
|
||||
default=None,
|
||||
description="Upper bound of the target range.",
|
||||
json_schema_extra={"x-unit_measurement": "percent", "x-frontend_multiply": 100},
|
||||
)
|
||||
target_range_lower: Optional[float] = Field(
|
||||
default=None,
|
||||
description="Lower bound of the target range.",
|
||||
json_schema_extra={"x-unit_measurement": "percent", "x-frontend_multiply": 100},
|
||||
)
|
||||
percentile_1: Optional[float] = Field(
|
||||
default=None,
|
||||
description="1st percentile of the distribution.",
|
||||
json_schema_extra={"x-unit_measurement": "percent", "x-frontend_multiply": 100},
|
||||
)
|
||||
percentile_25: Optional[float] = Field(
|
||||
default=None,
|
||||
description="25th percentile of the distribution.",
|
||||
json_schema_extra={"x-unit_measurement": "percent", "x-frontend_multiply": 100},
|
||||
)
|
||||
percentile_75: Optional[float] = Field(
|
||||
default=None,
|
||||
description="75th percentile of the distribution.",
|
||||
json_schema_extra={"x-unit_measurement": "percent", "x-frontend_multiply": 100},
|
||||
)
|
||||
percentile_99: Optional[float] = Field(
|
||||
default=None,
|
||||
description="99th percentile of the distribution.",
|
||||
json_schema_extra={"x-unit_measurement": "percent", "x-frontend_multiply": 100},
|
||||
)
|
||||
volume: Optional[float] = Field(
|
||||
default=None,
|
||||
description=DATA_DESCRIPTIONS.get("volume", "")
|
||||
+ "The notional volume of transactions (Billions of $).",
|
||||
json_schema_extra={
|
||||
"x-unit_measurement": "currency",
|
||||
"x-frontend_multiply": 1e9,
|
||||
},
|
||||
)
|
||||
@@ -3,9 +3,9 @@
|
||||
from datetime import (
|
||||
date as dateType,
|
||||
)
|
||||
from typing import Literal, Optional
|
||||
from typing import Optional, Union
|
||||
|
||||
from pydantic import Field, field_validator
|
||||
from pydantic import Field
|
||||
|
||||
from openbb_core.provider.abstract.data import Data
|
||||
from openbb_core.provider.abstract.query_params import QueryParams
|
||||
@@ -18,26 +18,18 @@ from openbb_core.provider.utils.descriptions import (
|
||||
class HighQualityMarketCorporateBondQueryParams(QueryParams):
|
||||
"""High Quality Market Corporate Bond Query."""
|
||||
|
||||
date: Optional[dateType] = Field(
|
||||
date: Optional[Union[dateType, str]] = Field(
|
||||
default=None,
|
||||
description=QUERY_DESCRIPTIONS.get("date", ""),
|
||||
)
|
||||
yield_curve: Literal["spot", "par"] = Field(
|
||||
default="spot",
|
||||
description="The yield curve type.",
|
||||
)
|
||||
|
||||
@field_validator("yield_curve", mode="before", check_fields=False)
|
||||
@classmethod
|
||||
def to_lower(cls, v: Optional[str]) -> Optional[str]:
|
||||
"""Convert field to lowercase."""
|
||||
return v.lower() if v else v
|
||||
|
||||
|
||||
class HighQualityMarketCorporateBondData(Data):
|
||||
"""High Quality Market Corporate Bond Data."""
|
||||
|
||||
date: dateType = Field(description=DATA_DESCRIPTIONS.get("date", ""))
|
||||
rate: Optional[float] = Field(description="HighQualityMarketCorporateBond Rate.")
|
||||
rate: float = Field(
|
||||
description="Interest rate.",
|
||||
json_schema_extra={"x-unit_measurement": "percent", "x-frontend_multiply": 100},
|
||||
)
|
||||
maturity: str = Field(description="Maturity.")
|
||||
yield_curve: Literal["spot", "par"] = Field(description="The yield curve type.")
|
||||
@@ -0,0 +1,65 @@
|
||||
"""Overnight Bank Funding Rate Standard Model."""
|
||||
|
||||
from datetime import date as dateType
|
||||
from typing import Optional
|
||||
|
||||
from pydantic import Field
|
||||
|
||||
from openbb_core.provider.abstract.data import Data
|
||||
from openbb_core.provider.abstract.query_params import QueryParams
|
||||
from openbb_core.provider.utils.descriptions import (
|
||||
DATA_DESCRIPTIONS,
|
||||
QUERY_DESCRIPTIONS,
|
||||
)
|
||||
|
||||
|
||||
class OvernightBankFundingRateQueryParams(QueryParams):
|
||||
"""Overnight Bank Funding Rate Query."""
|
||||
|
||||
start_date: Optional[dateType] = Field(
|
||||
default=None,
|
||||
description=QUERY_DESCRIPTIONS.get("start_date", ""),
|
||||
)
|
||||
end_date: Optional[dateType] = Field(
|
||||
default=None,
|
||||
description=QUERY_DESCRIPTIONS.get("end_date", ""),
|
||||
)
|
||||
|
||||
|
||||
class OvernightBankFundingRateData(Data):
|
||||
"""Overnight Bank Funding Rate Data."""
|
||||
|
||||
date: dateType = Field(description=DATA_DESCRIPTIONS.get("date", ""))
|
||||
rate: float = Field(
|
||||
description="Overnight Bank Funding Rate.",
|
||||
json_schema_extra={"x-unit_measurement": "percent", "x-frontend_multiply": 100},
|
||||
)
|
||||
percentile_1: Optional[float] = Field(
|
||||
default=None,
|
||||
description="1st percentile of the distribution.",
|
||||
json_schema_extra={"x-unit_measurement": "percent", "x-frontend_multiply": 100},
|
||||
)
|
||||
percentile_25: Optional[float] = Field(
|
||||
default=None,
|
||||
description="25th percentile of the distribution.",
|
||||
json_schema_extra={"x-unit_measurement": "percent", "x-frontend_multiply": 100},
|
||||
)
|
||||
percentile_75: Optional[float] = Field(
|
||||
default=None,
|
||||
description="75th percentile of the distribution.",
|
||||
json_schema_extra={"x-unit_measurement": "percent", "x-frontend_multiply": 100},
|
||||
)
|
||||
percentile_99: Optional[float] = Field(
|
||||
default=None,
|
||||
description="99th percentile of the distribution.",
|
||||
json_schema_extra={"x-unit_measurement": "percent", "x-frontend_multiply": 100},
|
||||
)
|
||||
volume: Optional[float] = Field(
|
||||
default=None,
|
||||
description=DATA_DESCRIPTIONS.get("volume", "")
|
||||
+ "The notional volume of transactions (Billions of $).",
|
||||
json_schema_extra={
|
||||
"x-unit_measurement": "currency",
|
||||
"x-frontend_multiply": 1e9,
|
||||
},
|
||||
)
|
||||
@@ -0,0 +1,65 @@
|
||||
"""Secured Overnight Financing Rate Standard Model."""
|
||||
|
||||
from datetime import date as dateType
|
||||
from typing import Optional
|
||||
|
||||
from pydantic import Field
|
||||
|
||||
from openbb_core.provider.abstract.data import Data
|
||||
from openbb_core.provider.abstract.query_params import QueryParams
|
||||
from openbb_core.provider.utils.descriptions import (
|
||||
DATA_DESCRIPTIONS,
|
||||
QUERY_DESCRIPTIONS,
|
||||
)
|
||||
|
||||
|
||||
class SOFRQueryParams(QueryParams):
|
||||
"""Secured Overnight Financing Rate Query."""
|
||||
|
||||
start_date: Optional[dateType] = Field(
|
||||
default=None,
|
||||
description=QUERY_DESCRIPTIONS.get("start_date", ""),
|
||||
)
|
||||
end_date: Optional[dateType] = Field(
|
||||
default=None,
|
||||
description=QUERY_DESCRIPTIONS.get("end_date", ""),
|
||||
)
|
||||
|
||||
|
||||
class SOFRData(Data):
|
||||
"""SOFR Data."""
|
||||
|
||||
date: dateType = Field(description=DATA_DESCRIPTIONS.get("date", ""))
|
||||
rate: float = Field(
|
||||
description="Effective federal funds rate.",
|
||||
json_schema_extra={"x-unit_measurement": "percent", "x-frontend_multiply": 100},
|
||||
)
|
||||
percentile_1: Optional[float] = Field(
|
||||
default=None,
|
||||
description="1st percentile of the distribution.",
|
||||
json_schema_extra={"x-unit_measurement": "percent", "x-frontend_multiply": 100},
|
||||
)
|
||||
percentile_25: Optional[float] = Field(
|
||||
default=None,
|
||||
description="25th percentile of the distribution.",
|
||||
json_schema_extra={"x-unit_measurement": "percent", "x-frontend_multiply": 100},
|
||||
)
|
||||
percentile_75: Optional[float] = Field(
|
||||
default=None,
|
||||
description="75th percentile of the distribution.",
|
||||
json_schema_extra={"x-unit_measurement": "percent", "x-frontend_multiply": 100},
|
||||
)
|
||||
percentile_99: Optional[float] = Field(
|
||||
default=None,
|
||||
description="99th percentile of the distribution.",
|
||||
json_schema_extra={"x-unit_measurement": "percent", "x-frontend_multiply": 100},
|
||||
)
|
||||
volume: Optional[float] = Field(
|
||||
default=None,
|
||||
description=DATA_DESCRIPTIONS.get("volume", "")
|
||||
+ "The notional volume of transactions (Billions of $).",
|
||||
json_schema_extra={
|
||||
"x-unit_measurement": "currency",
|
||||
"x-frontend_multiply": 1e9,
|
||||
},
|
||||
)
|
||||
@@ -1,33 +0,0 @@
|
||||
"""SOFR Standard Model."""
|
||||
|
||||
from datetime import date as dateType
|
||||
from typing import Optional
|
||||
|
||||
from pydantic import Field
|
||||
|
||||
from openbb_core.provider.abstract.data import Data
|
||||
from openbb_core.provider.abstract.query_params import QueryParams
|
||||
from openbb_core.provider.utils.descriptions import (
|
||||
DATA_DESCRIPTIONS,
|
||||
QUERY_DESCRIPTIONS,
|
||||
)
|
||||
|
||||
|
||||
class SOFRQueryParams(QueryParams):
|
||||
"""SOFR Query."""
|
||||
|
||||
start_date: Optional[dateType] = Field(
|
||||
default=None,
|
||||
description=QUERY_DESCRIPTIONS.get("start_date", ""),
|
||||
)
|
||||
end_date: Optional[dateType] = Field(
|
||||
default=None,
|
||||
description=QUERY_DESCRIPTIONS.get("end_date", ""),
|
||||
)
|
||||
|
||||
|
||||
class SOFRData(Data):
|
||||
"""SOFR Data."""
|
||||
|
||||
date: dateType = Field(description=DATA_DESCRIPTIONS.get("date", ""))
|
||||
rate: Optional[float] = Field(description="SOFR rate.")
|
||||
@@ -60,10 +60,18 @@ def test_fixedincome_government_us_yield_curve(params, headers):
|
||||
@parametrize(
|
||||
"params",
|
||||
[
|
||||
({"start_date": "2023-01-01", "end_date": "2023-06-06"}),
|
||||
(
|
||||
{
|
||||
"period": "overnight",
|
||||
"start_date": "2023-01-01",
|
||||
"end_date": "2023-06-06",
|
||||
"provider": "federal_reserve",
|
||||
}
|
||||
),
|
||||
(
|
||||
{
|
||||
"frequency": None,
|
||||
"transform": None,
|
||||
"aggregation_method": None,
|
||||
"provider": "fred",
|
||||
"start_date": "2023-01-01",
|
||||
"end_date": "2023-06-06",
|
||||
@@ -86,10 +94,18 @@ def test_fixedincome_sofr(params, headers):
|
||||
@parametrize(
|
||||
"params",
|
||||
[
|
||||
({"start_date": "2023-01-01", "end_date": "2023-06-06"}),
|
||||
(
|
||||
{
|
||||
"parameter": "volume_weighted_trimmed_mean_rate",
|
||||
"start_date": "2023-01-01",
|
||||
"end_date": "2023-06-06",
|
||||
"provider": "federal_reserve",
|
||||
}
|
||||
),
|
||||
(
|
||||
{
|
||||
"frequency": None,
|
||||
"transform": None,
|
||||
"aggregation_method": None,
|
||||
"provider": "fred",
|
||||
"start_date": "2023-01-01",
|
||||
"end_date": "2023-06-06",
|
||||
@@ -98,6 +114,33 @@ def test_fixedincome_sofr(params, headers):
|
||||
],
|
||||
)
|
||||
@pytest.mark.integration
|
||||
def test_fixedincome_rate_sofr(params, headers):
|
||||
"""Test the SOFR endpoint."""
|
||||
params = {p: v for p, v in params.items() if v}
|
||||
|
||||
query_str = get_querystring(params, [])
|
||||
url = f"http://0.0.0.0:8000/api/v1/fixedincome/rate/sofr?{query_str}"
|
||||
result = requests.get(url, headers=headers, timeout=10)
|
||||
assert isinstance(result, requests.Response)
|
||||
assert result.status_code == 200
|
||||
|
||||
|
||||
@parametrize(
|
||||
"params",
|
||||
[
|
||||
(
|
||||
{
|
||||
"provider": "fred",
|
||||
"start_date": "2023-01-01",
|
||||
"end_date": "2023-06-06",
|
||||
"transform": None,
|
||||
"aggregation_method": None,
|
||||
"frequency": None,
|
||||
}
|
||||
),
|
||||
],
|
||||
)
|
||||
@pytest.mark.integration
|
||||
def test_fixedincome_rate_estr(params, headers):
|
||||
"""Test the ESTR rate endpoint."""
|
||||
params = {p: v for p, v in params.items() if v}
|
||||
@@ -138,13 +181,15 @@ def test_fixedincome_rate_sonia(params, headers):
|
||||
@parametrize(
|
||||
"params",
|
||||
[
|
||||
({"start_date": "2023-01-01", "end_date": "2023-06-06"}),
|
||||
(
|
||||
{
|
||||
"parameter": "overnight",
|
||||
"maturity": "overnight",
|
||||
"provider": "fred",
|
||||
"start_date": "2023-01-01",
|
||||
"end_date": "2023-06-06",
|
||||
"transform": None,
|
||||
"aggregation_method": None,
|
||||
"frequency": None,
|
||||
}
|
||||
),
|
||||
],
|
||||
@@ -166,7 +211,10 @@ def test_fixedincome_rate_ameribor(params, headers):
|
||||
[
|
||||
(
|
||||
{
|
||||
"parameter": "weekly",
|
||||
"frequency": "w",
|
||||
"transform": None,
|
||||
"aggregation_method": "avg",
|
||||
"effr_only": False,
|
||||
"provider": "fred",
|
||||
"start_date": "2023-01-01",
|
||||
"end_date": "2023-06-06",
|
||||
@@ -328,9 +376,11 @@ def test_fixedincome_corporate_moody(params, headers):
|
||||
{
|
||||
"start_date": "2023-01-01",
|
||||
"end_date": "2023-06-06",
|
||||
"maturity": "30d",
|
||||
"maturity": "overnight",
|
||||
"category": "financial",
|
||||
"grade": "aa",
|
||||
"transform": None,
|
||||
"aggregation_method": None,
|
||||
"frequency": None,
|
||||
"provider": "fred",
|
||||
}
|
||||
)
|
||||
@@ -720,3 +770,37 @@ def test_fixedincome_mortgage_indices(params, headers):
|
||||
result = requests.get(url, headers=headers, timeout=10)
|
||||
assert isinstance(result, requests.Response)
|
||||
assert result.status_code == 200
|
||||
|
||||
|
||||
@parametrize(
|
||||
"params",
|
||||
[
|
||||
(
|
||||
{
|
||||
"start_date": "2023-01-01",
|
||||
"end_date": "2023-06-06",
|
||||
"transform": None,
|
||||
"aggregation_method": None,
|
||||
"frequency": None,
|
||||
"provider": "fred",
|
||||
}
|
||||
),
|
||||
(
|
||||
{
|
||||
"start_date": "2023-01-01",
|
||||
"end_date": "2023-06-06",
|
||||
"provider": "federal_reserve",
|
||||
}
|
||||
),
|
||||
],
|
||||
)
|
||||
@pytest.mark.integration
|
||||
def test_fixedincome_rate_overnight_bank_funding(params, headers):
|
||||
"""Test the Overnight Bank Funding Rate endpoint."""
|
||||
params = {p: v for p, v in params.items() if v}
|
||||
|
||||
query_str = get_querystring(params, [])
|
||||
url = f"http://0.0.0.0:8000/api/v1/fixedincome/rate/overnight_bank_funding?{query_str}"
|
||||
result = requests.get(url, headers=headers, timeout=10)
|
||||
assert isinstance(result, requests.Response)
|
||||
assert result.status_code == 200
|
||||
|
||||
@@ -51,10 +51,18 @@ def test_fixedincome_government_us_yield_curve(params, obb):
|
||||
@parametrize(
|
||||
"params",
|
||||
[
|
||||
({"start_date": "2023-01-01", "end_date": "2023-06-06"}),
|
||||
(
|
||||
{
|
||||
"period": "overnight",
|
||||
"start_date": "2023-01-01",
|
||||
"end_date": "2023-06-06",
|
||||
"provider": "federal_reserve",
|
||||
}
|
||||
),
|
||||
(
|
||||
{
|
||||
"frequency": None,
|
||||
"transform": None,
|
||||
"aggregation_method": None,
|
||||
"provider": "fred",
|
||||
"start_date": "2023-01-01",
|
||||
"end_date": "2023-06-06",
|
||||
@@ -74,10 +82,18 @@ def test_fixedincome_sofr(params, obb):
|
||||
@parametrize(
|
||||
"params",
|
||||
[
|
||||
({"start_date": "2023-01-01", "end_date": "2023-06-06"}),
|
||||
(
|
||||
{
|
||||
"parameter": "volume_weighted_trimmed_mean_rate",
|
||||
"start_date": "2023-01-01",
|
||||
"end_date": "2023-06-06",
|
||||
"provider": "federal_reserve",
|
||||
}
|
||||
),
|
||||
(
|
||||
{
|
||||
"frequency": None,
|
||||
"transform": None,
|
||||
"aggregation_method": None,
|
||||
"provider": "fred",
|
||||
"start_date": "2023-01-01",
|
||||
"end_date": "2023-06-06",
|
||||
@@ -86,6 +102,30 @@ def test_fixedincome_sofr(params, obb):
|
||||
],
|
||||
)
|
||||
@pytest.mark.integration
|
||||
def test_fixedincome_rate_sofr(params, obb):
|
||||
"""Test the fixedincome rate sofr endpoint."""
|
||||
result = obb.fixedincome.rate.sofr(**params)
|
||||
assert result
|
||||
assert isinstance(result, OBBject)
|
||||
assert len(result.results) > 0
|
||||
|
||||
|
||||
@parametrize(
|
||||
"params",
|
||||
[
|
||||
(
|
||||
{
|
||||
"provider": "fred",
|
||||
"start_date": "2023-01-01",
|
||||
"end_date": "2023-06-06",
|
||||
"transform": None,
|
||||
"aggregation_method": None,
|
||||
"frequency": None,
|
||||
}
|
||||
),
|
||||
],
|
||||
)
|
||||
@pytest.mark.integration
|
||||
def test_fixedincome_rate_estr(params, obb):
|
||||
"""Test the ESTR endpoint."""
|
||||
result = obb.fixedincome.rate.estr(**params)
|
||||
@@ -120,13 +160,15 @@ def test_fixedincome_rate_sonia(params, obb):
|
||||
@parametrize(
|
||||
"params",
|
||||
[
|
||||
({"start_date": "2023-01-01", "end_date": "2023-06-06"}),
|
||||
(
|
||||
{
|
||||
"parameter": "overnight",
|
||||
"maturity": "overnight",
|
||||
"provider": "fred",
|
||||
"start_date": "2023-01-01",
|
||||
"end_date": "2023-06-06",
|
||||
"transform": None,
|
||||
"aggregation_method": None,
|
||||
"frequency": None,
|
||||
}
|
||||
),
|
||||
],
|
||||
@@ -145,7 +187,10 @@ def test_fixedincome_rate_ameribor(params, obb):
|
||||
[
|
||||
(
|
||||
{
|
||||
"parameter": "weekly",
|
||||
"frequency": "w",
|
||||
"transform": None,
|
||||
"aggregation_method": "avg",
|
||||
"effr_only": False,
|
||||
"provider": "fred",
|
||||
"start_date": "2023-01-01",
|
||||
"end_date": "2023-06-06",
|
||||
@@ -153,9 +198,9 @@ def test_fixedincome_rate_ameribor(params, obb):
|
||||
),
|
||||
(
|
||||
{
|
||||
"provider": "federal_reserve",
|
||||
"start_date": "2023-01-01",
|
||||
"end_date": "2023-06-06",
|
||||
"provider": "federal_reserve",
|
||||
}
|
||||
),
|
||||
],
|
||||
@@ -299,9 +344,11 @@ def test_fixedincome_corporate_moody(params, obb):
|
||||
{
|
||||
"start_date": "2023-01-01",
|
||||
"end_date": "2023-06-06",
|
||||
"maturity": "30d",
|
||||
"maturity": "overnight",
|
||||
"category": "financial",
|
||||
"grade": "aa",
|
||||
"transform": None,
|
||||
"aggregation_method": None,
|
||||
"frequency": None,
|
||||
"provider": "fred",
|
||||
}
|
||||
)
|
||||
@@ -672,3 +719,34 @@ def test_fixedincome_mortgage_indices(params, obb):
|
||||
assert result
|
||||
assert isinstance(result, OBBject)
|
||||
assert len(result.results) > 0
|
||||
|
||||
|
||||
@parametrize(
|
||||
"params",
|
||||
[
|
||||
(
|
||||
{
|
||||
"start_date": "2023-01-01",
|
||||
"end_date": "2023-06-06",
|
||||
"transform": None,
|
||||
"aggregation_method": None,
|
||||
"frequency": None,
|
||||
"provider": "fred",
|
||||
}
|
||||
),
|
||||
(
|
||||
{
|
||||
"start_date": "2023-01-01",
|
||||
"end_date": "2023-06-06",
|
||||
"provider": "federal_reserve",
|
||||
}
|
||||
),
|
||||
],
|
||||
)
|
||||
@pytest.mark.integration
|
||||
def test_fixedincome_rate_overnight_bank_funding(params, obb):
|
||||
"""Test the Overnight Bank Funding Rate endpoint."""
|
||||
result = obb.fixedincome.rate.overnight_bank_funding(**params)
|
||||
assert result
|
||||
assert isinstance(result, OBBject)
|
||||
assert len(result.results) > 0
|
||||
|
||||
@@ -48,6 +48,13 @@ async def ice_bofa(
|
||||
|
||||
|
||||
@router.command(
|
||||
deprecated=True,
|
||||
deprecation=OpenBBDeprecationWarning(
|
||||
message="This endpoint is deprecated; use `/fixedincome/bond_indices` instead."
|
||||
+ " Set `category` to `us` and `index` to `seasoned_corporate`.",
|
||||
since=(4, 2),
|
||||
expected_removal=(4, 5),
|
||||
),
|
||||
model="MoodyCorporateBondIndex",
|
||||
examples=[
|
||||
APIEx(parameters={"provider": "fred"}),
|
||||
@@ -120,7 +127,7 @@ async def spot_rates(
|
||||
model="CommercialPaper",
|
||||
examples=[
|
||||
APIEx(parameters={"provider": "fred"}),
|
||||
APIEx(parameters={"maturity": "15d", "provider": "fred"}),
|
||||
APIEx(parameters={"category": "all", "maturity": "15d", "provider": "fred"}),
|
||||
],
|
||||
)
|
||||
async def commercial_paper(
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
# pylint: disable=W0613:unused-argument
|
||||
|
||||
from openbb_core.app.deprecation import OpenBBDeprecationWarning
|
||||
from openbb_core.app.model.command_context import CommandContext
|
||||
from openbb_core.app.model.example import APIEx
|
||||
from openbb_core.app.model.obbject import OBBject
|
||||
@@ -29,8 +30,13 @@ router.include_router(corporate_router)
|
||||
model="SOFR",
|
||||
examples=[
|
||||
APIEx(parameters={"provider": "fred"}),
|
||||
APIEx(parameters={"period": "overnight", "provider": "fred"}),
|
||||
],
|
||||
deprecated=True,
|
||||
deprecation=OpenBBDeprecationWarning(
|
||||
message="This endpoint is deprecated; use `/fixedincome/rate/sofr` instead.",
|
||||
since=(4, 2),
|
||||
expected_removal=(4, 5),
|
||||
),
|
||||
)
|
||||
async def sofr(
|
||||
cc: CommandContext,
|
||||
|
||||
@@ -17,10 +17,13 @@ router = Router(prefix="/rate")
|
||||
|
||||
|
||||
@router.command(
|
||||
model="AMERIBOR",
|
||||
model="Ameribor",
|
||||
examples=[
|
||||
APIEx(parameters={"provider": "fred"}),
|
||||
APIEx(parameters={"parameter": "30_day_ma", "provider": "fred"}),
|
||||
APIEx(
|
||||
description="The change from one year ago is applied with the transform parameter.",
|
||||
parameters={"maturity": "all", "transform": "pc1", "provider": "fred"},
|
||||
),
|
||||
],
|
||||
)
|
||||
async def ameribor(
|
||||
@@ -29,9 +32,9 @@ async def ameribor(
|
||||
standard_params: StandardParams,
|
||||
extra_params: ExtraParams,
|
||||
) -> OBBject: # type: ignore
|
||||
"""Ameribor.
|
||||
"""AMERIBOR.
|
||||
|
||||
Ameribor (short for the American interbank offered rate) is a benchmark interest rate that reflects the true cost of
|
||||
AMERIBOR (short for the American interbank offered rate) is a benchmark interest rate that reflects the true cost of
|
||||
short-term interbank borrowing. This rate is based on transactions in overnight unsecured loans conducted on the
|
||||
American Financial Exchange (AFX).
|
||||
"""
|
||||
@@ -60,6 +63,26 @@ async def sonia(
|
||||
return await OBBject.from_query(Query(**locals()))
|
||||
|
||||
|
||||
@router.command(
|
||||
model="SOFR",
|
||||
examples=[
|
||||
APIEx(parameters={"provider": "fred"}),
|
||||
],
|
||||
)
|
||||
async def sofr(
|
||||
cc: CommandContext,
|
||||
provider_choices: ProviderChoices,
|
||||
standard_params: StandardParams,
|
||||
extra_params: ExtraParams,
|
||||
) -> OBBject: # type: ignore
|
||||
"""Secured Overnight Financing Rate.
|
||||
|
||||
The Secured Overnight Financing Rate (SOFR) is a broad measure of the cost of
|
||||
borrowing cash overnight collateralizing by Treasury securities.
|
||||
"""
|
||||
return await OBBject.from_query(Query(**locals()))
|
||||
|
||||
|
||||
@router.command(
|
||||
model="IORB",
|
||||
examples=[APIEx(parameters={"provider": "fred"})],
|
||||
@@ -80,10 +103,10 @@ async def iorb(
|
||||
|
||||
|
||||
@router.command(
|
||||
model="FEDFUNDS",
|
||||
model="FederalFundsRate",
|
||||
examples=[
|
||||
APIEx(parameters={"provider": "fred"}),
|
||||
APIEx(parameters={"parameter": "daily", "provider": "fred"}),
|
||||
APIEx(parameters={"effr_only": True, "provider": "fred"}),
|
||||
],
|
||||
)
|
||||
async def effr(
|
||||
@@ -95,8 +118,7 @@ async def effr(
|
||||
"""Fed Funds Rate.
|
||||
|
||||
Get Effective Federal Funds Rate data. A bank rate is the interest rate a nation's central bank charges to its
|
||||
domestic banks to borrow money. The rates central banks charge are set to stabilize the economy. In the
|
||||
United States, the Federal Reserve System's Board of Governors set the bank rate, also known as the discount rate.
|
||||
domestic banks to borrow money. The rates central banks charge are set to stabilize the economy.
|
||||
"""
|
||||
return await OBBject.from_query(Query(**locals()))
|
||||
|
||||
@@ -125,10 +147,10 @@ async def effr_forecast(
|
||||
|
||||
|
||||
@router.command(
|
||||
model="ESTR",
|
||||
model="EuroShortTermRate",
|
||||
examples=[
|
||||
APIEx(parameters={"provider": "fred"}),
|
||||
APIEx(parameters={"parameter": "number_of_active_banks", "provider": "fred"}),
|
||||
APIEx(parameters={"transform": "ch1", "provider": "fred"}),
|
||||
],
|
||||
)
|
||||
async def estr(
|
||||
@@ -142,7 +164,7 @@ async def estr(
|
||||
The euro short-term rate (€STR) reflects the wholesale euro unsecured overnight borrowing costs of banks located in
|
||||
the euro area. The €STR is published on each TARGET2 business day based on transactions conducted and settled on
|
||||
the previous TARGET2 business day (the reporting date “T”) with a maturity date of T+1 which are deemed to have been
|
||||
executed at arm’s length and thus reflect market rates in an unbiased way.
|
||||
executed at arm's length and thus reflect market rates in an unbiased way.
|
||||
"""
|
||||
return await OBBject.from_query(Query(**locals()))
|
||||
|
||||
@@ -199,3 +221,22 @@ async def dpcredit(
|
||||
also known as the discount rate.
|
||||
"""
|
||||
return await OBBject.from_query(Query(**locals()))
|
||||
|
||||
|
||||
@router.command(
|
||||
model="OvernightBankFundingRate",
|
||||
examples=[APIEx(parameters={"provider": "fred"})],
|
||||
)
|
||||
async def overnight_bank_funding(
|
||||
cc: CommandContext,
|
||||
provider_choices: ProviderChoices,
|
||||
standard_params: StandardParams,
|
||||
extra_params: ExtraParams,
|
||||
) -> OBBject: # type: ignore
|
||||
"""Overnight Bank Funding.
|
||||
|
||||
For the United States, the overnight bank funding rate (OBFR) is calculated as a volume-weighted median of
|
||||
overnight federal funds transactions and Eurodollar transactions reported in the
|
||||
FR 2420 Report of Selected Money Market Rates.
|
||||
"""
|
||||
return await OBBject.from_query(Query(**locals()))
|
||||
|
||||
1165
openbb_platform/openbb/assets/reference.json
vendored
1165
openbb_platform/openbb/assets/reference.json
vendored
File diff suppressed because it is too large
Load Diff
@@ -440,9 +440,9 @@ class ROUTER_economy(Container):
|
||||
term : Optional[str]
|
||||
Term of the security. Only returned for Agency securities. (provider: federal_reserve)
|
||||
face_value : Optional[float]
|
||||
Current face value of the security (Thousands). Current face value of the securities, which is the remaining principal balance of the securities. (provider: federal_reserve)
|
||||
Current face value of the security (Thousands of $USD). Current face value of the securities, which is the remaining principal balance of the securities. (provider: federal_reserve)
|
||||
par_value : Optional[float]
|
||||
Par value of the security (Thousands). Changes in par may reflect primary and secondary market transactions and/or custodial account activity. (provider: federal_reserve)
|
||||
Par value of the security (Thousands of $USD). Changes in par may reflect primary and secondary market transactions and/or custodial account activity. (provider: federal_reserve)
|
||||
coupon : Optional[float]
|
||||
Coupon rate of the security. (provider: federal_reserve)
|
||||
spread : Optional[float]
|
||||
@@ -450,27 +450,27 @@ class ROUTER_economy(Container):
|
||||
percent_outstanding : Optional[float]
|
||||
Total percent of the outstanding CUSIP issuance. (provider: federal_reserve)
|
||||
bills : Optional[float]
|
||||
Treasury bills amount (Thousands). Only returned when 'summary' is True. (provider: federal_reserve)
|
||||
Treasury bills amount (Thousands of $USD). Only returned when 'summary' is True. (provider: federal_reserve)
|
||||
frn : Optional[float]
|
||||
Floating rate Treasury notes amount (Thousands). Only returned when 'summary' is True. (provider: federal_reserve)
|
||||
Floating rate Treasury notes amount (Thousands of $USD). Only returned when 'summary' is True. (provider: federal_reserve)
|
||||
notes_and_bonds : Optional[float]
|
||||
Treasuy Notes and bonds amount (Thousands). Only returned when 'summary' is True. (provider: federal_reserve)
|
||||
Treasuy Notes and bonds amount (Thousands of $USD). Only returned when 'summary' is True. (provider: federal_reserve)
|
||||
tips : Optional[float]
|
||||
Treasury inflation-protected securities amount (Thousands). Only returned when 'summary' is True. (provider: federal_reserve)
|
||||
Treasury inflation-protected securities amount (Thousands of $USD). Only returned when 'summary' is True. (provider: federal_reserve)
|
||||
mbs : Optional[float]
|
||||
Mortgage-backed securities amount (Thousands). Only returned when 'summary' is True. (provider: federal_reserve)
|
||||
Mortgage-backed securities amount (Thousands of $USD). Only returned when 'summary' is True. (provider: federal_reserve)
|
||||
cmbs : Optional[float]
|
||||
Commercial mortgage-backed securities amount (Thousands). Only returned when 'summary' is True. (provider: federal_reserve)
|
||||
Commercial mortgage-backed securities amount (Thousands of $USD). Only returned when 'summary' is True. (provider: federal_reserve)
|
||||
agencies : Optional[float]
|
||||
Agency securities amount (Thousands). Only returned when 'summary' is True. (provider: federal_reserve)
|
||||
Agency securities amount (Thousands of $USD). Only returned when 'summary' is True. (provider: federal_reserve)
|
||||
total : Optional[float]
|
||||
Total SOMA holdings amount (Thousands). Only returned when 'summary' is True. (provider: federal_reserve)
|
||||
Total SOMA holdings amount (Thousands of $USD). Only returned when 'summary' is True. (provider: federal_reserve)
|
||||
tips_inflation_compensation : Optional[float]
|
||||
Treasury inflation-protected securities inflation compensation amount (Thousands). Only returned when 'summary' is True. (provider: federal_reserve)
|
||||
Treasury inflation-protected securities inflation compensation amount (Thousands of $USD). Only returned when 'summary' is True. (provider: federal_reserve)
|
||||
change_prior_week : Optional[float]
|
||||
Change in SOMA holdings from the prior week (Thousands). (provider: federal_reserve)
|
||||
Change in SOMA holdings from the prior week (Thousands of $USD). (provider: federal_reserve)
|
||||
change_prior_year : Optional[float]
|
||||
Change in SOMA holdings from the prior year (Thousands). (provider: federal_reserve)
|
||||
Change in SOMA holdings from the prior year (Thousands of $USD). (provider: federal_reserve)
|
||||
|
||||
Examples
|
||||
--------
|
||||
|
||||
@@ -2,13 +2,15 @@
|
||||
|
||||
import datetime
|
||||
from typing import Literal, Optional, Union
|
||||
from warnings import simplefilter, warn
|
||||
|
||||
from openbb_core.app.deprecation import OpenBBDeprecationWarning
|
||||
from openbb_core.app.model.field import OpenBBField
|
||||
from openbb_core.app.model.obbject import OBBject
|
||||
from openbb_core.app.static.container import Container
|
||||
from openbb_core.app.static.utils.decorators import exception_handler, validate
|
||||
from openbb_core.app.static.utils.filters import filter_inputs
|
||||
from typing_extensions import Annotated
|
||||
from typing_extensions import Annotated, deprecated
|
||||
|
||||
|
||||
class ROUTER_fixedincome(Container):
|
||||
@@ -322,6 +324,10 @@ class ROUTER_fixedincome(Container):
|
||||
|
||||
@exception_handler
|
||||
@validate
|
||||
@deprecated(
|
||||
"This endpoint is deprecated; use `/fixedincome/rate/sofr` instead. Deprecated in OpenBB Platform V4.2 to be removed in V4.5.",
|
||||
category=OpenBBDeprecationWarning,
|
||||
)
|
||||
def sofr(
|
||||
self,
|
||||
start_date: Annotated[
|
||||
@@ -333,9 +339,9 @@ class ROUTER_fixedincome(Container):
|
||||
OpenBBField(description="End date of the data, in YYYY-MM-DD format."),
|
||||
] = None,
|
||||
provider: Annotated[
|
||||
Optional[Literal["fred"]],
|
||||
Optional[Literal["federal_reserve", "fred"]],
|
||||
OpenBBField(
|
||||
description="The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: fred."
|
||||
description="The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: federal_reserve, fred."
|
||||
),
|
||||
] = None,
|
||||
**kwargs
|
||||
@@ -352,17 +358,52 @@ class ROUTER_fixedincome(Container):
|
||||
Start date of the data, in YYYY-MM-DD format.
|
||||
end_date : Union[datetime.date, None, str]
|
||||
End date of the data, in YYYY-MM-DD format.
|
||||
provider : Optional[Literal['fred']]
|
||||
The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: fred.
|
||||
period : Literal['overnight', '30_day', '90_day', '180_day', 'index']
|
||||
Period of SOFR rate. (provider: fred)
|
||||
provider : Optional[Literal['federal_reserve', 'fred']]
|
||||
The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: federal_reserve, fred.
|
||||
frequency : Optional[Literal['a', 'q', 'm', 'w', 'wef', 'weth', 'wew', 'wetu', 'wem', 'wesu', 'wesa', 'bwew', 'bwem']]
|
||||
|
||||
Frequency aggregation to convert daily data to lower frequency.
|
||||
a = Annual
|
||||
q = Quarterly
|
||||
m = Monthly
|
||||
w = Weekly
|
||||
wef = Weekly, Ending Friday
|
||||
weth = Weekly, Ending Thursday
|
||||
wew = Weekly, Ending Wednesday
|
||||
wetu = Weekly, Ending Tuesday
|
||||
wem = Weekly, Ending Monday
|
||||
wesu = Weekly, Ending Sunday
|
||||
wesa = Weekly, Ending Saturday
|
||||
bwew = Biweekly, Ending Wednesday
|
||||
bwem = Biweekly, Ending Monday
|
||||
(provider: fred)
|
||||
aggregation_method : Optional[Literal['avg', 'sum', 'eop']]
|
||||
|
||||
A key that indicates the aggregation method used for frequency aggregation.
|
||||
avg = Average
|
||||
sum = Sum
|
||||
eop = End of Period
|
||||
(provider: fred)
|
||||
transform : Optional[Literal['chg', 'ch1', 'pch', 'pc1', 'pca', 'cch', 'cca', 'log']]
|
||||
|
||||
Transformation type
|
||||
None = No transformation
|
||||
chg = Change
|
||||
ch1 = Change from Year Ago
|
||||
pch = Percent Change
|
||||
pc1 = Percent Change from Year Ago
|
||||
pca = Compounded Annual Rate of Change
|
||||
cch = Continuously Compounded Rate of Change
|
||||
cca = Continuously Compounded Annual Rate of Change
|
||||
log = Natural Log
|
||||
(provider: fred)
|
||||
|
||||
Returns
|
||||
-------
|
||||
OBBject
|
||||
results : List[SOFR]
|
||||
Serializable results.
|
||||
provider : Optional[Literal['fred']]
|
||||
provider : Optional[Literal['federal_reserve', 'fred']]
|
||||
Provider name.
|
||||
warnings : Optional[List[Warning_]]
|
||||
List of warnings.
|
||||
@@ -375,16 +416,40 @@ class ROUTER_fixedincome(Container):
|
||||
----
|
||||
date : date
|
||||
The date of the data.
|
||||
rate : Optional[float]
|
||||
SOFR rate.
|
||||
rate : float
|
||||
Effective federal funds rate.
|
||||
percentile_1 : Optional[float]
|
||||
1st percentile of the distribution.
|
||||
percentile_25 : Optional[float]
|
||||
25th percentile of the distribution.
|
||||
percentile_75 : Optional[float]
|
||||
75th percentile of the distribution.
|
||||
percentile_99 : Optional[float]
|
||||
99th percentile of the distribution.
|
||||
volume : Optional[float]
|
||||
The trading volume.The notional volume of transactions (Billions of $).
|
||||
average_30d : Optional[float]
|
||||
30-Day Average SOFR (provider: fred)
|
||||
average_90d : Optional[float]
|
||||
90-Day Average SOFR (provider: fred)
|
||||
average_180d : Optional[float]
|
||||
180-Day Average SOFR (provider: fred)
|
||||
index : Optional[float]
|
||||
SOFR index as 2018-04-02 = 1 (provider: fred)
|
||||
|
||||
Examples
|
||||
--------
|
||||
>>> from openbb import obb
|
||||
>>> obb.fixedincome.sofr(provider='fred')
|
||||
>>> obb.fixedincome.sofr(period='overnight', provider='fred')
|
||||
""" # noqa: E501
|
||||
|
||||
simplefilter("always", DeprecationWarning)
|
||||
warn(
|
||||
"This endpoint is deprecated; use `/fixedincome/rate/sofr` instead. Deprecated in OpenBB Platform V4.2 to be removed in V4.5.",
|
||||
category=DeprecationWarning,
|
||||
stacklevel=2,
|
||||
)
|
||||
|
||||
return self._run(
|
||||
"/fixedincome/sofr",
|
||||
**filter_inputs(
|
||||
@@ -392,7 +457,7 @@ class ROUTER_fixedincome(Container):
|
||||
"provider": self._get_provider(
|
||||
provider,
|
||||
"fixedincome.sofr",
|
||||
("fred",),
|
||||
("federal_reserve", "fred"),
|
||||
)
|
||||
},
|
||||
standard_params={
|
||||
|
||||
@@ -37,17 +37,6 @@ class ROUTER_fixedincome_corporate(Container):
|
||||
Union[datetime.date, None, str],
|
||||
OpenBBField(description="End date of the data, in YYYY-MM-DD format."),
|
||||
] = None,
|
||||
maturity: Annotated[
|
||||
Literal["overnight", "7d", "15d", "30d", "60d", "90d"],
|
||||
OpenBBField(description="The maturity."),
|
||||
] = "30d",
|
||||
category: Annotated[
|
||||
Literal["asset_backed", "financial", "nonfinancial"],
|
||||
OpenBBField(description="The category."),
|
||||
] = "financial",
|
||||
grade: Annotated[
|
||||
Literal["aa", "a2_p2"], OpenBBField(description="The grade.")
|
||||
] = "aa",
|
||||
provider: Annotated[
|
||||
Optional[Literal["fred"]],
|
||||
OpenBBField(
|
||||
@@ -70,14 +59,49 @@ class ROUTER_fixedincome_corporate(Container):
|
||||
Start date of the data, in YYYY-MM-DD format.
|
||||
end_date : Union[datetime.date, None, str]
|
||||
End date of the data, in YYYY-MM-DD format.
|
||||
maturity : Literal['overnight', '7d', '15d', '30d', '60d', '90d']
|
||||
The maturity.
|
||||
category : Literal['asset_backed', 'financial', 'nonfinancial']
|
||||
The category.
|
||||
grade : Literal['aa', 'a2_p2']
|
||||
The grade.
|
||||
provider : Optional[Literal['fred']]
|
||||
The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: fred.
|
||||
maturity : Union[str, Literal['all', 'overnight', '7d', '15d', '30d', '60d', '90d']]
|
||||
A target maturity. Multiple comma separated items allowed. (provider: fred)
|
||||
category : Union[str, Literal['all', 'asset_backed', 'financial', 'nonfinancial', 'a2p2']]
|
||||
The category of asset. Multiple comma separated items allowed. (provider: fred)
|
||||
frequency : Optional[Literal['a', 'q', 'm', 'w', 'wef', 'weth', 'wew', 'wetu', 'wem', 'wesu', 'wesa', 'bwew', 'bwem']]
|
||||
|
||||
Frequency aggregation to convert daily data to lower frequency.
|
||||
a = Annual
|
||||
q = Quarterly
|
||||
m = Monthly
|
||||
w = Weekly
|
||||
wef = Weekly, Ending Friday
|
||||
weth = Weekly, Ending Thursday
|
||||
wew = Weekly, Ending Wednesday
|
||||
wetu = Weekly, Ending Tuesday
|
||||
wem = Weekly, Ending Monday
|
||||
wesu = Weekly, Ending Sunday
|
||||
wesa = Weekly, Ending Saturday
|
||||
bwew = Biweekly, Ending Wednesday
|
||||
bwem = Biweekly, Ending Monday
|
||||
(provider: fred)
|
||||
aggregation_method : Optional[Literal['avg', 'sum', 'eop']]
|
||||
|
||||
A key that indicates the aggregation method used for frequency aggregation.
|
||||
avg = Average
|
||||
sum = Sum
|
||||
eop = End of Period
|
||||
(provider: fred)
|
||||
transform : Optional[Literal['chg', 'ch1', 'pch', 'pc1', 'pca', 'cch', 'cca', 'log']]
|
||||
|
||||
Transformation type
|
||||
None = No transformation
|
||||
chg = Change
|
||||
ch1 = Change from Year Ago
|
||||
pch = Percent Change
|
||||
pc1 = Percent Change from Year Ago
|
||||
pca = Compounded Annual Rate of Change
|
||||
cch = Continuously Compounded Rate of Change
|
||||
cca = Continuously Compounded Annual Rate of Change
|
||||
log = Natural Log
|
||||
(provider: fred)
|
||||
|
||||
Returns
|
||||
-------
|
||||
@@ -97,14 +121,22 @@ class ROUTER_fixedincome_corporate(Container):
|
||||
---------------
|
||||
date : date
|
||||
The date of the data.
|
||||
rate : Optional[float]
|
||||
Commercial Paper Rate.
|
||||
symbol : Optional[str]
|
||||
Symbol representing the entity requested in the data.
|
||||
maturity : str
|
||||
Maturity length of the item.
|
||||
rate : float
|
||||
Interest rate.
|
||||
title : Optional[str]
|
||||
Title of the series.
|
||||
asset_type : Optional[Literal['asset_backed', 'financial', 'nonfinancial', 'a2p2']]
|
||||
The category of asset. (provider: fred)
|
||||
|
||||
Examples
|
||||
--------
|
||||
>>> from openbb import obb
|
||||
>>> obb.fixedincome.corporate.commercial_paper(provider='fred')
|
||||
>>> obb.fixedincome.corporate.commercial_paper(maturity='15d', provider='fred')
|
||||
>>> obb.fixedincome.corporate.commercial_paper(category='all', maturity='15d', provider='fred')
|
||||
""" # noqa: E501
|
||||
|
||||
return self._run(
|
||||
@@ -120,11 +152,12 @@ class ROUTER_fixedincome_corporate(Container):
|
||||
standard_params={
|
||||
"start_date": start_date,
|
||||
"end_date": end_date,
|
||||
"maturity": maturity,
|
||||
"category": category,
|
||||
"grade": grade,
|
||||
},
|
||||
extra_params=kwargs,
|
||||
info={
|
||||
"maturity": {"fred": {"multiple_items_allowed": True}},
|
||||
"category": {"fred": {"multiple_items_allowed": True}},
|
||||
},
|
||||
)
|
||||
)
|
||||
|
||||
@@ -133,12 +166,11 @@ class ROUTER_fixedincome_corporate(Container):
|
||||
def hqm(
|
||||
self,
|
||||
date: Annotated[
|
||||
Union[datetime.date, None, str],
|
||||
OpenBBField(description="A specific date to get data for."),
|
||||
Union[str, datetime.date, None, List[Union[str, datetime.date, None]]],
|
||||
OpenBBField(
|
||||
description="A specific date to get data for. Multiple comma separated items allowed for provider(s): fred."
|
||||
),
|
||||
] = None,
|
||||
yield_curve: Annotated[
|
||||
Literal["spot", "par"], OpenBBField(description="The yield curve type.")
|
||||
] = "spot",
|
||||
provider: Annotated[
|
||||
Optional[Literal["fred"]],
|
||||
OpenBBField(
|
||||
@@ -157,12 +189,12 @@ class ROUTER_fixedincome_corporate(Container):
|
||||
|
||||
Parameters
|
||||
----------
|
||||
date : Union[datetime.date, None, str]
|
||||
A specific date to get data for.
|
||||
yield_curve : Literal['spot', 'par']
|
||||
The yield curve type.
|
||||
date : Union[str, datetime.date, None, List[Union[str, datetime.d...
|
||||
A specific date to get data for. Multiple comma separated items allowed for provider(s): fred.
|
||||
provider : Optional[Literal['fred']]
|
||||
The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: fred.
|
||||
yield_curve : Literal['spot', 'par']
|
||||
The yield curve type. (provider: fred)
|
||||
|
||||
Returns
|
||||
-------
|
||||
@@ -182,14 +214,10 @@ class ROUTER_fixedincome_corporate(Container):
|
||||
------------------------------
|
||||
date : date
|
||||
The date of the data.
|
||||
rate : Optional[float]
|
||||
HighQualityMarketCorporateBond Rate.
|
||||
rate : float
|
||||
Interest rate.
|
||||
maturity : str
|
||||
Maturity.
|
||||
yield_curve : Literal['spot', 'par']
|
||||
The yield curve type.
|
||||
series_id : Optional[str]
|
||||
FRED series id. (provider: fred)
|
||||
|
||||
Examples
|
||||
--------
|
||||
@@ -210,9 +238,9 @@ class ROUTER_fixedincome_corporate(Container):
|
||||
},
|
||||
standard_params={
|
||||
"date": date,
|
||||
"yield_curve": yield_curve,
|
||||
},
|
||||
extra_params=kwargs,
|
||||
info={"date": {"fred": {"multiple_items_allowed": True}}},
|
||||
)
|
||||
)
|
||||
|
||||
@@ -328,6 +356,10 @@ class ROUTER_fixedincome_corporate(Container):
|
||||
|
||||
@exception_handler
|
||||
@validate
|
||||
@deprecated(
|
||||
"This endpoint is deprecated; use `/fixedincome/bond_indices` instead. Set `category` to `us` and `index` to `seasoned_corporate`. Deprecated in OpenBB Platform V4.2 to be removed in V4.5.",
|
||||
category=OpenBBDeprecationWarning,
|
||||
)
|
||||
def moody(
|
||||
self,
|
||||
start_date: Annotated[
|
||||
@@ -398,6 +430,13 @@ class ROUTER_fixedincome_corporate(Container):
|
||||
>>> obb.fixedincome.corporate.moody(index_type='baa', provider='fred')
|
||||
""" # noqa: E501
|
||||
|
||||
simplefilter("always", DeprecationWarning)
|
||||
warn(
|
||||
"This endpoint is deprecated; use `/fixedincome/bond_indices` instead. Set `category` to `us` and `index` to `seasoned_corporate`. Deprecated in OpenBB Platform V4.2 to be removed in V4.5.",
|
||||
category=DeprecationWarning,
|
||||
stacklevel=2,
|
||||
)
|
||||
|
||||
return self._run(
|
||||
"/fixedincome/corporate/moody",
|
||||
**filter_inputs(
|
||||
|
||||
@@ -242,7 +242,7 @@ class ROUTER_fixedincome_government(Container):
|
||||
The country to get data. New Zealand, Mexico, Singapore, and Thailand have only monthly data. The nearest date to the requested one will be used. (provider: econdb)
|
||||
use_cache : bool
|
||||
If true, cache the request for four hours. (provider: econdb)
|
||||
yield_curve_type : Literal['nominal', 'real', 'breakeven', 'corporate_spot', 'corporate_par']
|
||||
yield_curve_type : Literal['nominal', 'real', 'breakeven', 'treasury_minus_fed_funds', 'corporate_spot', 'corporate_par']
|
||||
Yield curve type. Nominal and Real Rates are available daily, others are monthly. The closest date to the requested date will be returned. (provider: fred)
|
||||
|
||||
Returns
|
||||
|
||||
@@ -20,6 +20,8 @@ class ROUTER_fixedincome_rate(Container):
|
||||
effr_forecast
|
||||
estr
|
||||
iorb
|
||||
overnight_bank_funding
|
||||
sofr
|
||||
sonia
|
||||
"""
|
||||
|
||||
@@ -46,9 +48,9 @@ class ROUTER_fixedincome_rate(Container):
|
||||
] = None,
|
||||
**kwargs
|
||||
) -> OBBject:
|
||||
"""Ameribor.
|
||||
"""AMERIBOR.
|
||||
|
||||
Ameribor (short for the American interbank offered rate) is a benchmark interest rate that reflects the true cost of
|
||||
AMERIBOR (short for the American interbank offered rate) is a benchmark interest rate that reflects the true cost of
|
||||
short-term interbank borrowing. This rate is based on transactions in overnight unsecured loans conducted on the
|
||||
American Financial Exchange (AFX).
|
||||
|
||||
@@ -61,13 +63,50 @@ class ROUTER_fixedincome_rate(Container):
|
||||
End date of the data, in YYYY-MM-DD format.
|
||||
provider : Optional[Literal['fred']]
|
||||
The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: fred.
|
||||
parameter : Literal['overnight', 'term_30', 'term_90', '1_week_term_structure', '1_month_term_structure', '3_month_term_structure', '6_month_term_structure', '1_year_term_structure', '2_year_term_structure', '30_day_ma', '90_day_ma']
|
||||
Period of AMERIBOR rate. (provider: fred)
|
||||
maturity : Union[Literal['all', 'overnight', 'average_30d', 'average_90d', 'term_30d', 'term_90d'], str]
|
||||
Period of AMERIBOR rate. Multiple comma separated items allowed. (provider: fred)
|
||||
frequency : Optional[Literal['a', 'q', 'm', 'w', 'wef', 'weth', 'wew', 'wetu', 'wem', 'wesu', 'wesa', 'bwew', 'bwem']]
|
||||
|
||||
Frequency aggregation to convert daily data to lower frequency.
|
||||
a = Annual
|
||||
q = Quarterly
|
||||
m = Monthly
|
||||
w = Weekly
|
||||
wef = Weekly, Ending Friday
|
||||
weth = Weekly, Ending Thursday
|
||||
wew = Weekly, Ending Wednesday
|
||||
wetu = Weekly, Ending Tuesday
|
||||
wem = Weekly, Ending Monday
|
||||
wesu = Weekly, Ending Sunday
|
||||
wesa = Weekly, Ending Saturday
|
||||
bwew = Biweekly, Ending Wednesday
|
||||
bwem = Biweekly, Ending Monday
|
||||
(provider: fred)
|
||||
aggregation_method : Optional[Literal['avg', 'sum', 'eop']]
|
||||
|
||||
A key that indicates the aggregation method used for frequency aggregation.
|
||||
avg = Average
|
||||
sum = Sum
|
||||
eop = End of Period
|
||||
(provider: fred)
|
||||
transform : Optional[Literal['chg', 'ch1', 'pch', 'pc1', 'pca', 'cch', 'cca', 'log']]
|
||||
|
||||
Transformation type
|
||||
None = No transformation
|
||||
chg = Change
|
||||
ch1 = Change from Year Ago
|
||||
pch = Percent Change
|
||||
pc1 = Percent Change from Year Ago
|
||||
pca = Compounded Annual Rate of Change
|
||||
cch = Continuously Compounded Rate of Change
|
||||
cca = Continuously Compounded Annual Rate of Change
|
||||
log = Natural Log
|
||||
(provider: fred)
|
||||
|
||||
Returns
|
||||
-------
|
||||
OBBject
|
||||
results : List[AMERIBOR]
|
||||
results : List[Ameribor]
|
||||
Serializable results.
|
||||
provider : Optional[Literal['fred']]
|
||||
Provider name.
|
||||
@@ -78,18 +117,25 @@ class ROUTER_fixedincome_rate(Container):
|
||||
extra : Dict[str, Any]
|
||||
Extra info.
|
||||
|
||||
AMERIBOR
|
||||
Ameribor
|
||||
--------
|
||||
date : date
|
||||
The date of the data.
|
||||
rate : Optional[float]
|
||||
AMERIBOR rate.
|
||||
symbol : Optional[str]
|
||||
Symbol representing the entity requested in the data.
|
||||
maturity : str
|
||||
Maturity length of the item.
|
||||
rate : float
|
||||
Interest rate.
|
||||
title : Optional[str]
|
||||
Title of the series.
|
||||
|
||||
Examples
|
||||
--------
|
||||
>>> from openbb import obb
|
||||
>>> obb.fixedincome.rate.ameribor(provider='fred')
|
||||
>>> obb.fixedincome.rate.ameribor(parameter='30_day_ma', provider='fred')
|
||||
>>> # The change from one year ago is applied with the transform parameter.
|
||||
>>> obb.fixedincome.rate.ameribor(maturity='all', transform='pc1', provider='fred')
|
||||
""" # noqa: E501
|
||||
|
||||
return self._run(
|
||||
@@ -107,6 +153,7 @@ class ROUTER_fixedincome_rate(Container):
|
||||
"end_date": end_date,
|
||||
},
|
||||
extra_params=kwargs,
|
||||
info={"maturity": {"fred": {"multiple_items_allowed": True}}},
|
||||
)
|
||||
)
|
||||
|
||||
@@ -310,8 +357,7 @@ class ROUTER_fixedincome_rate(Container):
|
||||
"""Fed Funds Rate.
|
||||
|
||||
Get Effective Federal Funds Rate data. A bank rate is the interest rate a nation's central bank charges to its
|
||||
domestic banks to borrow money. The rates central banks charge are set to stabilize the economy. In the
|
||||
United States, the Federal Reserve System's Board of Governors set the bank rate, also known as the discount rate.
|
||||
domestic banks to borrow money. The rates central banks charge are set to stabilize the economy.
|
||||
|
||||
|
||||
Parameters
|
||||
@@ -322,13 +368,50 @@ class ROUTER_fixedincome_rate(Container):
|
||||
End date of the data, in YYYY-MM-DD format.
|
||||
provider : Optional[Literal['federal_reserve', 'fred']]
|
||||
The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: federal_reserve, fred.
|
||||
parameter : Literal['monthly', 'daily', 'weekly', 'daily_excl_weekend', 'annual', 'biweekly', 'volume']
|
||||
Period of FED rate. (provider: fred)
|
||||
frequency : Optional[Literal['a', 'q', 'm', 'w', 'wef', 'weth', 'wew', 'wetu', 'wem', 'wesu', 'wesa', 'bwew', 'bwem']]
|
||||
|
||||
Frequency aggregation to convert daily data to lower frequency.
|
||||
a = Annual
|
||||
q = Quarterly
|
||||
m = Monthly
|
||||
w = Weekly
|
||||
wef = Weekly, Ending Friday
|
||||
weth = Weekly, Ending Thursday
|
||||
wew = Weekly, Ending Wednesday
|
||||
wetu = Weekly, Ending Tuesday
|
||||
wem = Weekly, Ending Monday
|
||||
wesu = Weekly, Ending Sunday
|
||||
wesa = Weekly, Ending Saturday
|
||||
bwew = Biweekly, Ending Wednesday
|
||||
bwem = Biweekly, Ending Monday
|
||||
(provider: fred)
|
||||
aggregation_method : Optional[Literal['avg', 'sum', 'eop']]
|
||||
|
||||
A key that indicates the aggregation method used for frequency aggregation.
|
||||
avg = Average
|
||||
sum = Sum
|
||||
eop = End of Period
|
||||
(provider: fred)
|
||||
transform : Optional[Literal['chg', 'ch1', 'pch', 'pc1', 'pca', 'cch', 'cca', 'log']]
|
||||
|
||||
Transformation type
|
||||
None = No transformation
|
||||
chg = Change
|
||||
ch1 = Change from Year Ago
|
||||
pch = Percent Change
|
||||
pc1 = Percent Change from Year Ago
|
||||
pca = Compounded Annual Rate of Change
|
||||
cch = Continuously Compounded Rate of Change
|
||||
cca = Continuously Compounded Annual Rate of Change
|
||||
log = Natural Log
|
||||
(provider: fred)
|
||||
effr_only : bool
|
||||
Return data without quantiles, target ranges, and volume. (provider: fred)
|
||||
|
||||
Returns
|
||||
-------
|
||||
OBBject
|
||||
results : List[FEDFUNDS]
|
||||
results : List[FederalFundsRate]
|
||||
Serializable results.
|
||||
provider : Optional[Literal['federal_reserve', 'fred']]
|
||||
Provider name.
|
||||
@@ -339,18 +422,40 @@ class ROUTER_fixedincome_rate(Container):
|
||||
extra : Dict[str, Any]
|
||||
Extra info.
|
||||
|
||||
FEDFUNDS
|
||||
--------
|
||||
FederalFundsRate
|
||||
----------------
|
||||
date : date
|
||||
The date of the data.
|
||||
rate : Optional[float]
|
||||
FED rate.
|
||||
rate : float
|
||||
Effective federal funds rate.
|
||||
target_range_upper : Optional[float]
|
||||
Upper bound of the target range.
|
||||
target_range_lower : Optional[float]
|
||||
Lower bound of the target range.
|
||||
percentile_1 : Optional[float]
|
||||
1st percentile of the distribution.
|
||||
percentile_25 : Optional[float]
|
||||
25th percentile of the distribution.
|
||||
percentile_75 : Optional[float]
|
||||
75th percentile of the distribution.
|
||||
percentile_99 : Optional[float]
|
||||
99th percentile of the distribution.
|
||||
volume : Optional[float]
|
||||
The trading volume.The notional volume of transactions (Billions of $).
|
||||
intraday_low : Optional[float]
|
||||
Intraday low. This field is only present for data before 2016. (provider: federal_reserve)
|
||||
intraday_high : Optional[float]
|
||||
Intraday high. This field is only present for data before 2016. (provider: federal_reserve)
|
||||
standard_deviation : Optional[float]
|
||||
Standard deviation. This field is only present for data before 2016. (provider: federal_reserve)
|
||||
revision_indicator : Optional[str]
|
||||
Indicates a revision of the data for that date. (provider: federal_reserve)
|
||||
|
||||
Examples
|
||||
--------
|
||||
>>> from openbb import obb
|
||||
>>> obb.fixedincome.rate.effr(provider='fred')
|
||||
>>> obb.fixedincome.rate.effr(parameter='daily', provider='fred')
|
||||
>>> obb.fixedincome.rate.effr(effr_only=True, provider='fred')
|
||||
""" # noqa: E501
|
||||
|
||||
return self._run(
|
||||
@@ -478,7 +583,7 @@ class ROUTER_fixedincome_rate(Container):
|
||||
The euro short-term rate (€STR) reflects the wholesale euro unsecured overnight borrowing costs of banks located in
|
||||
the euro area. The €STR is published on each TARGET2 business day based on transactions conducted and settled on
|
||||
the previous TARGET2 business day (the reporting date “T”) with a maturity date of T+1 which are deemed to have been
|
||||
executed at arm’s length and thus reflect market rates in an unbiased way.
|
||||
executed at arm's length and thus reflect market rates in an unbiased way.
|
||||
|
||||
|
||||
Parameters
|
||||
@@ -489,13 +594,48 @@ class ROUTER_fixedincome_rate(Container):
|
||||
End date of the data, in YYYY-MM-DD format.
|
||||
provider : Optional[Literal['fred']]
|
||||
The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: fred.
|
||||
parameter : Literal['volume_weighted_trimmed_mean_rate', 'number_of_transactions', 'number_of_active_banks', 'total_volume', 'share_of_volume_of_the_5_largest_active_banks', 'rate_at_75th_percentile_of_volume', 'rate_at_25th_percentile_of_volume']
|
||||
Period of ESTR rate. (provider: fred)
|
||||
frequency : Optional[Literal['a', 'q', 'm', 'w', 'wef', 'weth', 'wew', 'wetu', 'wem', 'wesu', 'wesa', 'bwew', 'bwem']]
|
||||
|
||||
Frequency aggregation to convert daily data to lower frequency.
|
||||
a = Annual
|
||||
q = Quarterly
|
||||
m = Monthly
|
||||
w = Weekly
|
||||
wef = Weekly, Ending Friday
|
||||
weth = Weekly, Ending Thursday
|
||||
wew = Weekly, Ending Wednesday
|
||||
wetu = Weekly, Ending Tuesday
|
||||
wem = Weekly, Ending Monday
|
||||
wesu = Weekly, Ending Sunday
|
||||
wesa = Weekly, Ending Saturday
|
||||
bwew = Biweekly, Ending Wednesday
|
||||
bwem = Biweekly, Ending Monday
|
||||
(provider: fred)
|
||||
aggregation_method : Optional[Literal['avg', 'sum', 'eop']]
|
||||
|
||||
A key that indicates the aggregation method used for frequency aggregation.
|
||||
avg = Average
|
||||
sum = Sum
|
||||
eop = End of Period
|
||||
(provider: fred)
|
||||
transform : Optional[Literal['chg', 'ch1', 'pch', 'pc1', 'pca', 'cch', 'cca', 'log']]
|
||||
|
||||
Transformation type
|
||||
None = No transformation
|
||||
chg = Change
|
||||
ch1 = Change from Year Ago
|
||||
pch = Percent Change
|
||||
pc1 = Percent Change from Year Ago
|
||||
pca = Compounded Annual Rate of Change
|
||||
cch = Continuously Compounded Rate of Change
|
||||
cca = Continuously Compounded Annual Rate of Change
|
||||
log = Natural Log
|
||||
(provider: fred)
|
||||
|
||||
Returns
|
||||
-------
|
||||
OBBject
|
||||
results : List[ESTR]
|
||||
results : List[EuroShortTermRate]
|
||||
Serializable results.
|
||||
provider : Optional[Literal['fred']]
|
||||
Provider name.
|
||||
@@ -506,18 +646,30 @@ class ROUTER_fixedincome_rate(Container):
|
||||
extra : Dict[str, Any]
|
||||
Extra info.
|
||||
|
||||
ESTR
|
||||
----
|
||||
EuroShortTermRate
|
||||
-----------------
|
||||
date : date
|
||||
The date of the data.
|
||||
rate : Optional[float]
|
||||
ESTR rate.
|
||||
rate : float
|
||||
Volume-weighted trimmed mean rate.
|
||||
percentile_25 : Optional[float]
|
||||
Rate at 25th percentile of volume.
|
||||
percentile_75 : Optional[float]
|
||||
Rate at 75th percentile of volume.
|
||||
volume : Optional[float]
|
||||
Volume (Millions of €EUR).
|
||||
transactions : Optional[int]
|
||||
Number of transactions.
|
||||
number_of_banks : Optional[int]
|
||||
Number of active banks.
|
||||
large_bank_share_of_volume : Optional[float]
|
||||
The percent of volume attributable to the 5 largest active banks.
|
||||
|
||||
Examples
|
||||
--------
|
||||
>>> from openbb import obb
|
||||
>>> obb.fixedincome.rate.estr(provider='fred')
|
||||
>>> obb.fixedincome.rate.estr(parameter='number_of_active_banks', provider='fred')
|
||||
>>> obb.fixedincome.rate.estr(transform='ch1', provider='fred')
|
||||
""" # noqa: E501
|
||||
|
||||
return self._run(
|
||||
@@ -619,6 +771,271 @@ class ROUTER_fixedincome_rate(Container):
|
||||
)
|
||||
)
|
||||
|
||||
@exception_handler
|
||||
@validate
|
||||
def overnight_bank_funding(
|
||||
self,
|
||||
start_date: Annotated[
|
||||
Union[datetime.date, None, str],
|
||||
OpenBBField(description="Start date of the data, in YYYY-MM-DD format."),
|
||||
] = None,
|
||||
end_date: Annotated[
|
||||
Union[datetime.date, None, str],
|
||||
OpenBBField(description="End date of the data, in YYYY-MM-DD format."),
|
||||
] = None,
|
||||
provider: Annotated[
|
||||
Optional[Literal["federal_reserve", "fred"]],
|
||||
OpenBBField(
|
||||
description="The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: federal_reserve, fred."
|
||||
),
|
||||
] = None,
|
||||
**kwargs
|
||||
) -> OBBject:
|
||||
"""Overnight Bank Funding.
|
||||
|
||||
For the United States, the overnight bank funding rate (OBFR) is calculated as a volume-weighted median of
|
||||
overnight federal funds transactions and Eurodollar transactions reported in the
|
||||
FR 2420 Report of Selected Money Market Rates.
|
||||
|
||||
|
||||
Parameters
|
||||
----------
|
||||
start_date : Union[datetime.date, None, str]
|
||||
Start date of the data, in YYYY-MM-DD format.
|
||||
end_date : Union[datetime.date, None, str]
|
||||
End date of the data, in YYYY-MM-DD format.
|
||||
provider : Optional[Literal['federal_reserve', 'fred']]
|
||||
The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: federal_reserve, fred.
|
||||
frequency : Optional[Literal['a', 'q', 'm', 'w', 'wef', 'weth', 'wew', 'wetu', 'wem', 'wesu', 'wesa', 'bwew', 'bwem']]
|
||||
|
||||
Frequency aggregation to convert daily data to lower frequency.
|
||||
a = Annual
|
||||
q = Quarterly
|
||||
m = Monthly
|
||||
w = Weekly
|
||||
wef = Weekly, Ending Friday
|
||||
weth = Weekly, Ending Thursday
|
||||
wew = Weekly, Ending Wednesday
|
||||
wetu = Weekly, Ending Tuesday
|
||||
wem = Weekly, Ending Monday
|
||||
wesu = Weekly, Ending Sunday
|
||||
wesa = Weekly, Ending Saturday
|
||||
bwew = Biweekly, Ending Wednesday
|
||||
bwem = Biweekly, Ending Monday
|
||||
(provider: fred)
|
||||
aggregation_method : Optional[Literal['avg', 'sum', 'eop']]
|
||||
|
||||
A key that indicates the aggregation method used for frequency aggregation.
|
||||
avg = Average
|
||||
sum = Sum
|
||||
eop = End of Period
|
||||
(provider: fred)
|
||||
transform : Optional[Literal['chg', 'ch1', 'pch', 'pc1', 'pca', 'cch', 'cca', 'log']]
|
||||
|
||||
Transformation type
|
||||
None = No transformation
|
||||
chg = Change
|
||||
ch1 = Change from Year Ago
|
||||
pch = Percent Change
|
||||
pc1 = Percent Change from Year Ago
|
||||
pca = Compounded Annual Rate of Change
|
||||
cch = Continuously Compounded Rate of Change
|
||||
cca = Continuously Compounded Annual Rate of Change
|
||||
log = Natural Log
|
||||
(provider: fred)
|
||||
|
||||
Returns
|
||||
-------
|
||||
OBBject
|
||||
results : List[OvernightBankFundingRate]
|
||||
Serializable results.
|
||||
provider : Optional[Literal['federal_reserve', 'fred']]
|
||||
Provider name.
|
||||
warnings : Optional[List[Warning_]]
|
||||
List of warnings.
|
||||
chart : Optional[Chart]
|
||||
Chart object.
|
||||
extra : Dict[str, Any]
|
||||
Extra info.
|
||||
|
||||
OvernightBankFundingRate
|
||||
------------------------
|
||||
date : date
|
||||
The date of the data.
|
||||
rate : float
|
||||
Overnight Bank Funding Rate.
|
||||
percentile_1 : Optional[float]
|
||||
1st percentile of the distribution.
|
||||
percentile_25 : Optional[float]
|
||||
25th percentile of the distribution.
|
||||
percentile_75 : Optional[float]
|
||||
75th percentile of the distribution.
|
||||
percentile_99 : Optional[float]
|
||||
99th percentile of the distribution.
|
||||
volume : Optional[float]
|
||||
The trading volume.The notional volume of transactions (Billions of $).
|
||||
revision_indicator : Optional[str]
|
||||
Indicates a revision of the data for that date. (provider: federal_reserve)
|
||||
|
||||
Examples
|
||||
--------
|
||||
>>> from openbb import obb
|
||||
>>> obb.fixedincome.rate.overnight_bank_funding(provider='fred')
|
||||
""" # noqa: E501
|
||||
|
||||
return self._run(
|
||||
"/fixedincome/rate/overnight_bank_funding",
|
||||
**filter_inputs(
|
||||
provider_choices={
|
||||
"provider": self._get_provider(
|
||||
provider,
|
||||
"fixedincome.rate.overnight_bank_funding",
|
||||
("federal_reserve", "fred"),
|
||||
)
|
||||
},
|
||||
standard_params={
|
||||
"start_date": start_date,
|
||||
"end_date": end_date,
|
||||
},
|
||||
extra_params=kwargs,
|
||||
)
|
||||
)
|
||||
|
||||
@exception_handler
|
||||
@validate
|
||||
def sofr(
|
||||
self,
|
||||
start_date: Annotated[
|
||||
Union[datetime.date, None, str],
|
||||
OpenBBField(description="Start date of the data, in YYYY-MM-DD format."),
|
||||
] = None,
|
||||
end_date: Annotated[
|
||||
Union[datetime.date, None, str],
|
||||
OpenBBField(description="End date of the data, in YYYY-MM-DD format."),
|
||||
] = None,
|
||||
provider: Annotated[
|
||||
Optional[Literal["federal_reserve", "fred"]],
|
||||
OpenBBField(
|
||||
description="The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: federal_reserve, fred."
|
||||
),
|
||||
] = None,
|
||||
**kwargs
|
||||
) -> OBBject:
|
||||
"""Secured Overnight Financing Rate.
|
||||
|
||||
The Secured Overnight Financing Rate (SOFR) is a broad measure of the cost of
|
||||
borrowing cash overnight collateralizing by Treasury securities.
|
||||
|
||||
|
||||
Parameters
|
||||
----------
|
||||
start_date : Union[datetime.date, None, str]
|
||||
Start date of the data, in YYYY-MM-DD format.
|
||||
end_date : Union[datetime.date, None, str]
|
||||
End date of the data, in YYYY-MM-DD format.
|
||||
provider : Optional[Literal['federal_reserve', 'fred']]
|
||||
The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: federal_reserve, fred.
|
||||
frequency : Optional[Literal['a', 'q', 'm', 'w', 'wef', 'weth', 'wew', 'wetu', 'wem', 'wesu', 'wesa', 'bwew', 'bwem']]
|
||||
|
||||
Frequency aggregation to convert daily data to lower frequency.
|
||||
a = Annual
|
||||
q = Quarterly
|
||||
m = Monthly
|
||||
w = Weekly
|
||||
wef = Weekly, Ending Friday
|
||||
weth = Weekly, Ending Thursday
|
||||
wew = Weekly, Ending Wednesday
|
||||
wetu = Weekly, Ending Tuesday
|
||||
wem = Weekly, Ending Monday
|
||||
wesu = Weekly, Ending Sunday
|
||||
wesa = Weekly, Ending Saturday
|
||||
bwew = Biweekly, Ending Wednesday
|
||||
bwem = Biweekly, Ending Monday
|
||||
(provider: fred)
|
||||
aggregation_method : Optional[Literal['avg', 'sum', 'eop']]
|
||||
|
||||
A key that indicates the aggregation method used for frequency aggregation.
|
||||
avg = Average
|
||||
sum = Sum
|
||||
eop = End of Period
|
||||
(provider: fred)
|
||||
transform : Optional[Literal['chg', 'ch1', 'pch', 'pc1', 'pca', 'cch', 'cca', 'log']]
|
||||
|
||||
Transformation type
|
||||
None = No transformation
|
||||
chg = Change
|
||||
ch1 = Change from Year Ago
|
||||
pch = Percent Change
|
||||
pc1 = Percent Change from Year Ago
|
||||
pca = Compounded Annual Rate of Change
|
||||
cch = Continuously Compounded Rate of Change
|
||||
cca = Continuously Compounded Annual Rate of Change
|
||||
log = Natural Log
|
||||
(provider: fred)
|
||||
|
||||
Returns
|
||||
-------
|
||||
OBBject
|
||||
results : List[SOFR]
|
||||
Serializable results.
|
||||
provider : Optional[Literal['federal_reserve', 'fred']]
|
||||
Provider name.
|
||||
warnings : Optional[List[Warning_]]
|
||||
List of warnings.
|
||||
chart : Optional[Chart]
|
||||
Chart object.
|
||||
extra : Dict[str, Any]
|
||||
Extra info.
|
||||
|
||||
SOFR
|
||||
----
|
||||
date : date
|
||||
The date of the data.
|
||||
rate : float
|
||||
Effective federal funds rate.
|
||||
percentile_1 : Optional[float]
|
||||
1st percentile of the distribution.
|
||||
percentile_25 : Optional[float]
|
||||
25th percentile of the distribution.
|
||||
percentile_75 : Optional[float]
|
||||
75th percentile of the distribution.
|
||||
percentile_99 : Optional[float]
|
||||
99th percentile of the distribution.
|
||||
volume : Optional[float]
|
||||
The trading volume.The notional volume of transactions (Billions of $).
|
||||
average_30d : Optional[float]
|
||||
30-Day Average SOFR (provider: fred)
|
||||
average_90d : Optional[float]
|
||||
90-Day Average SOFR (provider: fred)
|
||||
average_180d : Optional[float]
|
||||
180-Day Average SOFR (provider: fred)
|
||||
index : Optional[float]
|
||||
SOFR index as 2018-04-02 = 1 (provider: fred)
|
||||
|
||||
Examples
|
||||
--------
|
||||
>>> from openbb import obb
|
||||
>>> obb.fixedincome.rate.sofr(provider='fred')
|
||||
""" # noqa: E501
|
||||
|
||||
return self._run(
|
||||
"/fixedincome/rate/sofr",
|
||||
**filter_inputs(
|
||||
provider_choices={
|
||||
"provider": self._get_provider(
|
||||
provider,
|
||||
"fixedincome.rate.sofr",
|
||||
("federal_reserve", "fred"),
|
||||
)
|
||||
},
|
||||
standard_params={
|
||||
"start_date": start_date,
|
||||
"end_date": end_date,
|
||||
},
|
||||
extra_params=kwargs,
|
||||
)
|
||||
)
|
||||
|
||||
@exception_handler
|
||||
@validate
|
||||
def sonia(
|
||||
|
||||
@@ -4,10 +4,16 @@ from openbb_core.provider.abstract.provider import Provider
|
||||
from openbb_federal_reserve.models.central_bank_holdings import (
|
||||
FederalReserveCentralBankHoldingsFetcher,
|
||||
)
|
||||
from openbb_federal_reserve.models.fed_rates import FederalReserveFEDFetcher
|
||||
from openbb_federal_reserve.models.federal_funds_rate import (
|
||||
FederalReserveFederalFundsRateFetcher,
|
||||
)
|
||||
from openbb_federal_reserve.models.money_measures import (
|
||||
FederalReserveMoneyMeasuresFetcher,
|
||||
)
|
||||
from openbb_federal_reserve.models.overnight_bank_funding_rate import (
|
||||
FederalReserveOvernightBankFundingRateFetcher,
|
||||
)
|
||||
from openbb_federal_reserve.models.sofr import FederalReserveSOFRFetcher
|
||||
from openbb_federal_reserve.models.treasury_rates import (
|
||||
FederalReserveTreasuryRatesFetcher,
|
||||
)
|
||||
@@ -21,7 +27,9 @@ federal_reserve_provider = Provider(
|
||||
"CentralBankHoldings": FederalReserveCentralBankHoldingsFetcher,
|
||||
"TreasuryRates": FederalReserveTreasuryRatesFetcher,
|
||||
"MoneyMeasures": FederalReserveMoneyMeasuresFetcher,
|
||||
"FEDFUNDS": FederalReserveFEDFetcher,
|
||||
"OvernightBankFundingRate": FederalReserveOvernightBankFundingRateFetcher,
|
||||
"FederalFundsRate": FederalReserveFederalFundsRateFetcher,
|
||||
"SOFR": FederalReserveSOFRFetcher,
|
||||
"YieldCurve": FederalReserveYieldCurveFetcher,
|
||||
},
|
||||
repr_name="Federal Reserve (FED)",
|
||||
|
||||
@@ -111,15 +111,21 @@ class FederalReserveCentralBankHoldingsData(CentralBankHoldingsData):
|
||||
)
|
||||
face_value: Optional[float] = Field(
|
||||
default=None,
|
||||
description="Current face value of the security (Thousands)."
|
||||
description="Current face value of the security (Thousands of $USD)."
|
||||
+ " Current face value of the securities, which is the remaining principal balance of the securities.",
|
||||
json_schema_extra={"x-unit_measurement": "usd", "x-frontend_multiply": 1000},
|
||||
json_schema_extra={
|
||||
"x-unit_measurement": "currency",
|
||||
"x-frontend_multiply": 1000,
|
||||
},
|
||||
)
|
||||
par_value: Optional[float] = Field(
|
||||
default=None,
|
||||
description="Par value of the security (Thousands)."
|
||||
description="Par value of the security (Thousands of $USD)."
|
||||
+ " Changes in par may reflect primary and secondary market transactions and/or custodial account activity.",
|
||||
json_schema_extra={"x-unit_measurement": "usd", "x-frontend_multiply": 1000},
|
||||
json_schema_extra={
|
||||
"x-unit_measurement": "currency",
|
||||
"x-frontend_multiply": 1000,
|
||||
},
|
||||
)
|
||||
coupon: Optional[float] = Field(
|
||||
default=None,
|
||||
@@ -138,68 +144,101 @@ class FederalReserveCentralBankHoldingsData(CentralBankHoldingsData):
|
||||
)
|
||||
bills: Optional[float] = Field(
|
||||
default=None,
|
||||
description="Treasury bills amount (Thousands)."
|
||||
description="Treasury bills amount (Thousands of $USD)."
|
||||
+ " Only returned when 'summary' is True.",
|
||||
json_schema_extra={"x-unit_measurement": "usd", "x-frontend_multiply": 1000},
|
||||
json_schema_extra={
|
||||
"x-unit_measurement": "currency",
|
||||
"x-frontend_multiply": 1000,
|
||||
},
|
||||
)
|
||||
frn: Optional[float] = Field(
|
||||
default=None,
|
||||
description="Floating rate Treasury notes amount (Thousands)."
|
||||
description="Floating rate Treasury notes amount (Thousands of $USD)."
|
||||
+ " Only returned when 'summary' is True.",
|
||||
json_schema_extra={"x-unit_measurement": "usd", "x-frontend_multiply": 1000},
|
||||
json_schema_extra={
|
||||
"x-unit_measurement": "currency",
|
||||
"x-frontend_multiply": 1000,
|
||||
},
|
||||
)
|
||||
notes_and_bonds: Optional[float] = Field(
|
||||
default=None,
|
||||
description="Treasuy Notes and bonds amount (Thousands)."
|
||||
description="Treasuy Notes and bonds amount (Thousands of $USD)."
|
||||
+ " Only returned when 'summary' is True.",
|
||||
json_schema_extra={"x-unit_measurement": "usd", "x-frontend_multiply": 1000},
|
||||
json_schema_extra={
|
||||
"x-unit_measurement": "currency",
|
||||
"x-frontend_multiply": 1000,
|
||||
},
|
||||
)
|
||||
tips: Optional[float] = Field(
|
||||
default=None,
|
||||
description="Treasury inflation-protected securities amount (Thousands)."
|
||||
description="Treasury inflation-protected securities amount (Thousands of $USD)."
|
||||
+ " Only returned when 'summary' is True.",
|
||||
json_schema_extra={"x-unit_measurement": "usd", "x-frontend_multiply": 1000},
|
||||
json_schema_extra={
|
||||
"x-unit_measurement": "currency",
|
||||
"x-frontend_multiply": 1000,
|
||||
},
|
||||
)
|
||||
mbs: Optional[float] = Field(
|
||||
default=None,
|
||||
description="Mortgage-backed securities amount (Thousands)."
|
||||
description="Mortgage-backed securities amount (Thousands of $USD)."
|
||||
+ " Only returned when 'summary' is True.",
|
||||
json_schema_extra={"x-unit_measurement": "usd", "x-frontend_multiply": 1000},
|
||||
json_schema_extra={
|
||||
"x-unit_measurement": "currency",
|
||||
"x-frontend_multiply": 1000,
|
||||
},
|
||||
)
|
||||
cmbs: Optional[float] = Field(
|
||||
default=None,
|
||||
description="Commercial mortgage-backed securities amount (Thousands)."
|
||||
description="Commercial mortgage-backed securities amount (Thousands of $USD)."
|
||||
+ " Only returned when 'summary' is True.",
|
||||
json_schema_extra={"x-unit_measurement": "usd", "x-frontend_multiply": 1000},
|
||||
json_schema_extra={
|
||||
"x-unit_measurement": "currency",
|
||||
"x-frontend_multiply": 1000,
|
||||
},
|
||||
)
|
||||
agencies: Optional[float] = Field(
|
||||
default=None,
|
||||
description="Agency securities amount (Thousands)."
|
||||
description="Agency securities amount (Thousands of $USD)."
|
||||
+ " Only returned when 'summary' is True.",
|
||||
json_schema_extra={"x-unit_measurement": "usd", "x-frontend_multiply": 1000},
|
||||
json_schema_extra={
|
||||
"x-unit_measurement": "currency",
|
||||
"x-frontend_multiply": 1000,
|
||||
},
|
||||
)
|
||||
total: Optional[float] = Field(
|
||||
default=None,
|
||||
description="Total SOMA holdings amount (Thousands)."
|
||||
description="Total SOMA holdings amount (Thousands of $USD)."
|
||||
+ " Only returned when 'summary' is True.",
|
||||
json_schema_extra={"x-unit_measurement": "usd", "x-frontend_multiply": 1000},
|
||||
json_schema_extra={
|
||||
"x-unit_measurement": "currency",
|
||||
"x-frontend_multiply": 1000,
|
||||
},
|
||||
)
|
||||
tips_inflation_compensation: Optional[float] = Field(
|
||||
default=None,
|
||||
description="Treasury inflation-protected securities inflation compensation amount (Thousands)."
|
||||
description="Treasury inflation-protected securities inflation compensation amount (Thousands of $USD)."
|
||||
+ " Only returned when 'summary' is True.",
|
||||
json_schema_extra={"x-unit_measurement": "usd", "x-frontend_multiply": 1000},
|
||||
json_schema_extra={
|
||||
"x-unit_measurement": "currency",
|
||||
"x-frontend_multiply": 1000,
|
||||
},
|
||||
alias="inflationCompensation",
|
||||
)
|
||||
change_prior_week: Optional[float] = Field(
|
||||
default=None,
|
||||
description="Change in SOMA holdings from the prior week (Thousands).",
|
||||
json_schema_extra={"x-unit_measurement": "usd", "x-frontend_multiply": 1000},
|
||||
description="Change in SOMA holdings from the prior week (Thousands of $USD).",
|
||||
json_schema_extra={
|
||||
"x-unit_measurement": "currency",
|
||||
"x-frontend_multiply": 1000,
|
||||
},
|
||||
)
|
||||
change_prior_year: Optional[float] = Field(
|
||||
default=None,
|
||||
description="Change in SOMA holdings from the prior year (Thousands).",
|
||||
json_schema_extra={"x-unit_measurement": "usd", "x-frontend_multiply": 1000},
|
||||
description="Change in SOMA holdings from the prior year (Thousands of $USD).",
|
||||
json_schema_extra={
|
||||
"x-unit_measurement": "currency",
|
||||
"x-frontend_multiply": 1000,
|
||||
},
|
||||
)
|
||||
|
||||
@field_validator("security_type", mode="before", check_fields=False)
|
||||
|
||||
@@ -1,83 +0,0 @@
|
||||
"""Federal Reserve FED Model."""
|
||||
|
||||
from datetime import datetime, timedelta
|
||||
from io import BytesIO
|
||||
from typing import Any, Dict, List, Optional
|
||||
|
||||
import pandas as pd
|
||||
from openbb_core.provider.abstract.fetcher import Fetcher
|
||||
from openbb_core.provider.standard_models.fed_rates import (
|
||||
FEDData,
|
||||
FEDQueryParams,
|
||||
)
|
||||
from openbb_core.provider.utils.helpers import make_request
|
||||
from pydantic import field_validator
|
||||
|
||||
|
||||
class FederalReserveFEDQueryParams(FEDQueryParams):
|
||||
"""FederalReserve FED Query."""
|
||||
|
||||
|
||||
class FederalReserveFEDData(FEDData):
|
||||
"""FederalReserve FED Data."""
|
||||
|
||||
@field_validator("rate", mode="before", check_fields=False)
|
||||
@classmethod
|
||||
def value_validate(cls, v):
|
||||
"""Validate rate."""
|
||||
try:
|
||||
return float(v)
|
||||
except ValueError:
|
||||
return None
|
||||
|
||||
|
||||
class FederalReserveFEDFetcher(
|
||||
Fetcher[FederalReserveFEDQueryParams, List[Dict[str, List[FederalReserveFEDData]]]]
|
||||
):
|
||||
"""FederalReserve FED Model."""
|
||||
|
||||
data_type = FederalReserveFEDData
|
||||
|
||||
@staticmethod
|
||||
def transform_query(params: Dict[str, Any]) -> FederalReserveFEDQueryParams:
|
||||
"""Transform query."""
|
||||
transformed_params = params
|
||||
now = datetime.now().date()
|
||||
if params.get("start_date") is None:
|
||||
transformed_params["start_date"] = now - timedelta(days=10 * 365)
|
||||
|
||||
if params.get("end_date") is None:
|
||||
transformed_params["end_date"] = now
|
||||
|
||||
return FederalReserveFEDQueryParams(**transformed_params)
|
||||
|
||||
# pylint: disable=unused-argument
|
||||
@staticmethod
|
||||
def extract_data(
|
||||
query: FederalReserveFEDQueryParams,
|
||||
credentials: Optional[Dict[str, str]],
|
||||
**kwargs: Any
|
||||
) -> dict:
|
||||
"""Extract data."""
|
||||
url = (
|
||||
"https://www.federalreserve.gov/datadownload/Output.aspx?rel=H15&series=c5025f4bbbed155a6f17c587772ed69e"
|
||||
"&lastobs=&from=01/01/1938&to=12/31/3023&filetype=csv&label=include&layout=seriescolumn"
|
||||
)
|
||||
r = make_request(url, **kwargs)
|
||||
df = pd.read_csv(BytesIO(r.content), header=5, index_col=None, parse_dates=True)
|
||||
df.columns = ["date", "rate"]
|
||||
df = df[
|
||||
(pd.to_datetime(df.date) >= pd.to_datetime(query.start_date))
|
||||
& (pd.to_datetime(df.date) <= pd.to_datetime(query.end_date))
|
||||
]
|
||||
|
||||
return df.to_dict(orient="records")
|
||||
|
||||
# pylint: disable=unused-argument
|
||||
@staticmethod
|
||||
def transform_data(
|
||||
query: FederalReserveFEDQueryParams, data: dict, **kwargs: Any
|
||||
) -> List[Dict[str, List[FederalReserveFEDData]]]:
|
||||
"""Transform data."""
|
||||
|
||||
return [FederalReserveFEDData.model_validate(d) for d in data]
|
||||
@@ -0,0 +1,139 @@
|
||||
"""Federal Reserve Federal Funds Rate Model."""
|
||||
|
||||
# pylint: disable=unused-argument
|
||||
|
||||
from datetime import datetime
|
||||
from typing import Any, Dict, List, Optional
|
||||
|
||||
from openbb_core.provider.abstract.fetcher import Fetcher
|
||||
from openbb_core.provider.standard_models.federal_funds_rate import (
|
||||
FederalFundsRateData,
|
||||
FederalFundsRateQueryParams,
|
||||
)
|
||||
from openbb_core.provider.utils.errors import EmptyDataError
|
||||
from openbb_core.provider.utils.helpers import amake_request
|
||||
from pydantic import Field, field_validator
|
||||
|
||||
|
||||
class FederalReserveFederalFundsRateQueryParams(FederalFundsRateQueryParams):
|
||||
"""FederalReserve FED Query."""
|
||||
|
||||
|
||||
class FederalReserveFederalFundsRateData(FederalFundsRateData):
|
||||
"""FederalReserve FED Data."""
|
||||
|
||||
__alias_dict__ = {
|
||||
"date": "effectiveDate",
|
||||
"rate": "percentRate",
|
||||
"target_range_upper": "targetRateTo",
|
||||
"target_range_lower": "targetRateFrom",
|
||||
"percentile_1": "percentPercentile1",
|
||||
"percentile_25": "percentPercentile25",
|
||||
"percentile_75": "percentPercentile75",
|
||||
"percentile_99": "percentPercentile99",
|
||||
"volume": "volumeInBillions",
|
||||
"intraday_low": "intraDayLow",
|
||||
"intraday_high": "intraDayHigh",
|
||||
"standard_deviation": "stdDeviation",
|
||||
"revision_indicator": "revisionIndicator",
|
||||
}
|
||||
|
||||
intraday_low: Optional[float] = Field(
|
||||
default=None,
|
||||
description="Intraday low. This field is only present for data before 2016.",
|
||||
)
|
||||
intraday_high: Optional[float] = Field(
|
||||
default=None,
|
||||
description="Intraday high. This field is only present for data before 2016.",
|
||||
)
|
||||
standard_deviation: Optional[float] = Field(
|
||||
default=None,
|
||||
description="Standard deviation. This field is only present for data before 2016.",
|
||||
)
|
||||
revision_indicator: Optional[str] = Field(
|
||||
default=None,
|
||||
description="Indicates a revision of the data for that date.",
|
||||
)
|
||||
|
||||
@field_validator("revision_indicator", mode="before", check_fields=False)
|
||||
@classmethod
|
||||
def validate_revision_indicator(cls, v):
|
||||
"""Validate revision indicator."""
|
||||
return None if v in ("", "''") else v
|
||||
|
||||
@field_validator(
|
||||
"rate",
|
||||
"target_range_upper",
|
||||
"target_range_lower",
|
||||
"percentile_1",
|
||||
"percentile_25",
|
||||
"percentile_75",
|
||||
"percentile_99",
|
||||
"intraday_high",
|
||||
"intraday_low",
|
||||
mode="before",
|
||||
check_fields=False,
|
||||
)
|
||||
@classmethod
|
||||
def normalize_percent(cls, v):
|
||||
"""Normalize percent."""
|
||||
if v is not None:
|
||||
return v / 100 if v != 0 else 0
|
||||
return None
|
||||
|
||||
|
||||
class FederalReserveFederalFundsRateFetcher(
|
||||
Fetcher[
|
||||
FederalReserveFederalFundsRateQueryParams,
|
||||
List[FederalReserveFederalFundsRateData],
|
||||
]
|
||||
):
|
||||
"""Federal Reserve Federal Funds Fetcher."""
|
||||
|
||||
@staticmethod
|
||||
def transform_query(
|
||||
params: Dict[str, Any]
|
||||
) -> FederalReserveFederalFundsRateQueryParams:
|
||||
"""Transform query."""
|
||||
transformed_params = params.copy()
|
||||
now = datetime.now().date()
|
||||
if params.get("start_date") is None:
|
||||
transformed_params["start_date"] = datetime(2016, 3, 1).date()
|
||||
if params.get("end_date") is None:
|
||||
transformed_params["end_date"] = now
|
||||
|
||||
return FederalReserveFederalFundsRateQueryParams(**transformed_params)
|
||||
|
||||
@staticmethod
|
||||
async def aextract_data(
|
||||
query: FederalReserveFederalFundsRateQueryParams,
|
||||
credentials: Optional[Dict[str, str]],
|
||||
**kwargs: Any,
|
||||
) -> List[Dict]:
|
||||
"""Extract the raw data."""
|
||||
url = (
|
||||
"https://markets.newyorkfed.org/api/rates/unsecured/effr/search.json?"
|
||||
+ f"startDate={query.start_date}&endDate={query.end_date}"
|
||||
)
|
||||
results: List[Dict] = []
|
||||
response = await amake_request(url, **kwargs)
|
||||
if response.get("refRates"):
|
||||
results = response["refRates"]
|
||||
if not results:
|
||||
raise EmptyDataError()
|
||||
return results
|
||||
|
||||
@staticmethod
|
||||
def transform_data(
|
||||
query: FederalReserveFederalFundsRateQueryParams,
|
||||
data: List[Dict],
|
||||
**kwargs: Any,
|
||||
) -> List[FederalReserveFederalFundsRateData]:
|
||||
"""Transform data."""
|
||||
results: List[FederalReserveFederalFundsRateData] = []
|
||||
for d in data.copy():
|
||||
_ = d.pop("type", None)
|
||||
_ = d.pop("footnoteId", None)
|
||||
results.append(FederalReserveFederalFundsRateData.model_validate(d))
|
||||
|
||||
return results
|
||||
@@ -0,0 +1,120 @@
|
||||
"""Federal Reserve Federal Funds Rate Model."""
|
||||
|
||||
# pylint: disable=unused-argument
|
||||
|
||||
from datetime import datetime
|
||||
from typing import Any, Dict, List, Optional
|
||||
|
||||
from openbb_core.provider.abstract.fetcher import Fetcher
|
||||
from openbb_core.provider.standard_models.overnight_bank_funding_rate import (
|
||||
OvernightBankFundingRateData,
|
||||
OvernightBankFundingRateQueryParams,
|
||||
)
|
||||
from openbb_core.provider.utils.errors import EmptyDataError
|
||||
from openbb_core.provider.utils.helpers import amake_request
|
||||
from pydantic import Field, field_validator
|
||||
|
||||
|
||||
class FederalReserveOvernightBankFundingRateQueryParams(
|
||||
OvernightBankFundingRateQueryParams
|
||||
):
|
||||
"""FederalReserve Overnight Bank Funding Rate Query."""
|
||||
|
||||
|
||||
class FederalReserveOvernightBankFundingRateData(OvernightBankFundingRateData):
|
||||
"""FederalReserve Overnight Bank Funding Rate Data."""
|
||||
|
||||
__alias_dict__ = {
|
||||
"date": "effectiveDate",
|
||||
"rate": "percentRate",
|
||||
"percentile_1": "percentPercentile1",
|
||||
"percentile_25": "percentPercentile25",
|
||||
"percentile_75": "percentPercentile75",
|
||||
"percentile_99": "percentPercentile99",
|
||||
"volume": "volumeInBillions",
|
||||
}
|
||||
|
||||
revision_indicator: Optional[str] = Field(
|
||||
default=None,
|
||||
description="Indicates a revision of the data for that date.",
|
||||
)
|
||||
|
||||
@field_validator("revision_indicator", mode="before", check_fields=False)
|
||||
@classmethod
|
||||
def validate_revision_indicator(cls, v):
|
||||
"""Validate revision indicator."""
|
||||
return None if v in ("", "''") else v
|
||||
|
||||
@field_validator(
|
||||
"rate",
|
||||
"percentile_1",
|
||||
"percentile_25",
|
||||
"percentile_75",
|
||||
"percentile_99",
|
||||
mode="before",
|
||||
check_fields=False,
|
||||
)
|
||||
@classmethod
|
||||
def normalize_percent(cls, v):
|
||||
"""Normalize percent."""
|
||||
if v is not None:
|
||||
return v / 100 if v != 0 else 0
|
||||
return None
|
||||
|
||||
|
||||
class FederalReserveOvernightBankFundingRateFetcher(
|
||||
Fetcher[
|
||||
FederalReserveOvernightBankFundingRateQueryParams,
|
||||
List[FederalReserveOvernightBankFundingRateData],
|
||||
]
|
||||
):
|
||||
"""Federal Reserve Federal Funds Fetcher."""
|
||||
|
||||
@staticmethod
|
||||
def transform_query(
|
||||
params: Dict[str, Any]
|
||||
) -> FederalReserveOvernightBankFundingRateQueryParams:
|
||||
"""Transform query."""
|
||||
transformed_params = params.copy()
|
||||
now = datetime.now().date()
|
||||
if params.get("start_date") is None:
|
||||
transformed_params["start_date"] = datetime(2016, 3, 1).date()
|
||||
if params.get("end_date") is None:
|
||||
transformed_params["end_date"] = now
|
||||
|
||||
return FederalReserveOvernightBankFundingRateQueryParams(**transformed_params)
|
||||
|
||||
@staticmethod
|
||||
async def aextract_data(
|
||||
query: FederalReserveOvernightBankFundingRateQueryParams,
|
||||
credentials: Optional[Dict[str, str]],
|
||||
**kwargs: Any,
|
||||
) -> List[Dict]:
|
||||
"""Extract the raw data."""
|
||||
url = (
|
||||
"https://markets.newyorkfed.org/api/rates/unsecured/obfr/search.json?"
|
||||
+ f"startDate={query.start_date}&endDate={query.end_date}"
|
||||
)
|
||||
results: List[Dict] = []
|
||||
response = await amake_request(url, **kwargs)
|
||||
if response.get("refRates"):
|
||||
results = response["refRates"]
|
||||
if not results:
|
||||
raise EmptyDataError()
|
||||
return results
|
||||
|
||||
@staticmethod
|
||||
def transform_data(
|
||||
query: FederalReserveOvernightBankFundingRateQueryParams,
|
||||
data: List[Dict],
|
||||
**kwargs: Any,
|
||||
) -> List[FederalReserveOvernightBankFundingRateData]:
|
||||
"""Transform data."""
|
||||
results: List[FederalReserveOvernightBankFundingRateData] = []
|
||||
for d in data.copy():
|
||||
_ = d.pop("type", None)
|
||||
_ = d.pop("revisionIndicator", None)
|
||||
_ = d.pop("footnoteId", None)
|
||||
results.append(FederalReserveOvernightBankFundingRateData.model_validate(d))
|
||||
|
||||
return results
|
||||
@@ -0,0 +1,107 @@
|
||||
"""Federal Reserve SOFR Model."""
|
||||
|
||||
# pylint: disable=unused-argument
|
||||
|
||||
from datetime import datetime
|
||||
from typing import Any, Dict, List, Optional
|
||||
|
||||
from openbb_core.provider.abstract.fetcher import Fetcher
|
||||
from openbb_core.provider.standard_models.sofr import (
|
||||
SOFRData,
|
||||
SOFRQueryParams,
|
||||
)
|
||||
from openbb_core.provider.utils.errors import EmptyDataError
|
||||
from openbb_core.provider.utils.helpers import amake_request
|
||||
from pydantic import field_validator
|
||||
|
||||
|
||||
class FederalReserveSOFRQueryParams(SOFRQueryParams):
|
||||
"""FederalReserve FED Query."""
|
||||
|
||||
|
||||
class FederalReserveSOFRData(SOFRData):
|
||||
"""FederalReserve FED Data."""
|
||||
|
||||
__alias_dict__ = {
|
||||
"date": "effectiveDate",
|
||||
"rate": "percentRate",
|
||||
"percentile_1": "percentPercentile1",
|
||||
"percentile_25": "percentPercentile25",
|
||||
"percentile_75": "percentPercentile75",
|
||||
"percentile_99": "percentPercentile99",
|
||||
"volume": "volumeInBillions",
|
||||
}
|
||||
|
||||
@field_validator(
|
||||
"rate",
|
||||
"target_range_upper",
|
||||
"target_range_lower",
|
||||
"percentile_1",
|
||||
"percentile_25",
|
||||
"percentile_75",
|
||||
"percentile_99",
|
||||
mode="before",
|
||||
check_fields=False,
|
||||
)
|
||||
@classmethod
|
||||
def normalize_percent(cls, v):
|
||||
"""Normalize percent."""
|
||||
if v not in (None, "", "''", "NA"):
|
||||
return float(v) / 100 if v != 0 else 0
|
||||
return None
|
||||
|
||||
|
||||
class FederalReserveSOFRFetcher(
|
||||
Fetcher[
|
||||
FederalReserveSOFRQueryParams,
|
||||
List[FederalReserveSOFRData],
|
||||
]
|
||||
):
|
||||
"""Federal Reserve Federal Funds Fetcher."""
|
||||
|
||||
@staticmethod
|
||||
def transform_query(params: Dict[str, Any]) -> FederalReserveSOFRQueryParams:
|
||||
"""Transform query."""
|
||||
transformed_params = params.copy()
|
||||
now = datetime.now().date()
|
||||
if params.get("start_date") is None:
|
||||
transformed_params["start_date"] = datetime(2018, 4, 2).date()
|
||||
if params.get("end_date") is None:
|
||||
transformed_params["end_date"] = now
|
||||
|
||||
return FederalReserveSOFRQueryParams(**transformed_params)
|
||||
|
||||
@staticmethod
|
||||
async def aextract_data(
|
||||
query: FederalReserveSOFRQueryParams,
|
||||
credentials: Optional[Dict[str, str]],
|
||||
**kwargs: Any,
|
||||
) -> List[Dict]:
|
||||
"""Extract the raw data."""
|
||||
url = (
|
||||
"https://markets.newyorkfed.org/api/rates/secured/sofr/search.json?"
|
||||
+ f"startDate={query.start_date}&endDate={query.end_date}"
|
||||
)
|
||||
results: List[Dict] = []
|
||||
response = await amake_request(url, **kwargs)
|
||||
if response.get("refRates"):
|
||||
results = response["refRates"]
|
||||
if not results:
|
||||
raise EmptyDataError()
|
||||
return results
|
||||
|
||||
@staticmethod
|
||||
def transform_data(
|
||||
query: FederalReserveSOFRQueryParams,
|
||||
data: List[Dict],
|
||||
**kwargs: Any,
|
||||
) -> List[FederalReserveSOFRData]:
|
||||
"""Transform data."""
|
||||
results: List[FederalReserveSOFRData] = []
|
||||
for d in data.copy():
|
||||
_ = d.pop("type", None)
|
||||
_ = d.pop("footnoteId", None)
|
||||
_ = d.pop("revisionIndicator", None)
|
||||
results.append(FederalReserveSOFRData.model_validate(d))
|
||||
|
||||
return results
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,92 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
method: GET
|
||||
uri: https://markets.newyorkfed.org/api/rates/unsecured/effr/search.json?startDate=2023-01-01&endDate=2023-06-06
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAEA6pWUCpKTQtKLEktVrJSiFaoVlBKTUtLTS7JLEt1SSxJVbJSUDIyMDLWNTDTNTBT
|
||||
0lFQKqksAIu6urkFKSnoKBWkFiWn5pWAjFCyUjDVM7BACAZA5DJzUg0hcqbY5IxMIZJm2CTNoZJY
|
||||
TbW0BOs0NlDQUSpJLEpPBTvDrSg/FyxugCoekg8WNQI5oiw/pzQ31TPPKTMnJzM/D+R5QxMTBR2l
|
||||
otSyzOLM/DzPvJTM5MSS/CJQCCgp1OrgDxrT4R00xqC4ITNojIZ30JgYkp9qDAdr0ICyCOUZypjc
|
||||
oDHVNR6sQWOCWqaQW9YYgsozcjKUqa6xwfBONUbmZGYoU12jQVtDUSlDkVsMm+oaDdoaikpBQ35Z
|
||||
Y2QyzDMUBanGeACDxhJbexDW5KNOqjGiIGgGsl1Dj6AhtzVsqmtoOYCpBlSxQvskiO4HdVONsRHZ
|
||||
NZShxfAOGgoqb0Nz2gYNqFmBkTCI6l5Sp6wB91LJa/IZ0rhdM9BBY0RBWUPjds2ABw35NZQhjWso
|
||||
vEEzyGsoGncvyQ4aanUvQQ4gs6yhcfcS5DKyimEqBY0RqANPXtAY0Lhdgzdo8GUoKgWNIfntGgMa
|
||||
t2sGPGjI714aDGQNNchTzUD2vOkRNOS3awyI6Hmb6FkYY+sjgyZbTPQsQAUdRkkLnmwx0bMAZXUM
|
||||
SXBr2ETPAuRsDEloH8oQa2vYRM8cVRw62QKegsE22QI2hsximIh2DSVBA8rqGL6nZ9CAurBkBg0R
|
||||
7ZohHTSgeoCcoDHRNSKihqIkaAY8Q4GKAjKDhoieNyVBM+AZClTUkxk0RPS8KQmaAU81oFKbzKAh
|
||||
ol0zpIMGFDdkBg0R7RpKgmbAMxSoaUFm0NC4hgJF2oBW3qC2E5lBQ0TPm5JUM+BBQ35ZQ8yMwlAO
|
||||
GgPyayhiZhSGctCQPShhokvMjMJQDhoDcseGTXQNaVxDDXhZQ35r2HCY97wpKWto3PMe8FRDfuVt
|
||||
OMzbNeBlveS1awyHebuGgmLYgMY974HOUODhP/JSDTGrzYdw5W1J7iCfiS4xEwpDOGQMDUCplsxE
|
||||
M8ybNQbkN2uG+4SCAbm9S2OiFpsP4QxlQW43wZioteZDOGQsyU8zRkSsBaAkZEAZfQDHsSzJnWgx
|
||||
pvlEy0CHDLkVt7GuEY1bewMdMuTW28a6xCzBH8q5iYKQofFoxBBOM0QNRpiCsitGQQpZIWEKKv4x
|
||||
5KArJLBrhC4DMAWN12LoBK+QMNGzBM2OYOyeM9EzRRUHr5CArpvAtkKC7L6Tsa4RUYMR2H04BILG
|
||||
koLsRNRYxEgMGeIGy4dsyFiA8jo5nUpjXWJW35voDd2QAVUBZIYMUUsAhm7IgEp5MkOGqIGIIRsy
|
||||
5hSEDFENmiEbMmQfB2CsS9w4uSmoZ4bR9CCm1gYNA2BopF+DxsKQzF1zxrrELLw30RuyIWNI9mJY
|
||||
Y11iFt7TLGiwtq2p3AoGJXfyymDiJldolGroEDRknyFhTNRRPjRLNaC6A6Mcom6qMSR3ItdYl7hx
|
||||
cvJTDSg9Y/iefqWwISVBQ1yPG6sPiamgsGqkY9CQPcdtrGtA4x433qChR1kDcgA5xbARkePBeDMU
|
||||
KDdj5BnYOA3IZRiS9Ew15PafjIgcEMYbNKBuLYbvB03QgFImmamGxh2oAU81oFqQzKChcQ9qwIMG
|
||||
1FEhM2iIq6FAyRIj0wyJGoqCVDOQNRTI2RgBTt0mH9nD5UZErhMmf0hiwDMUyAHkZShaj32CXIaR
|
||||
MIipvMHjuVSYZAHVn2QGDY0HPwc6aAzJHa8xInJ1+QBkqEGQagZr5U2toAElWzIzFI3n5kAuG8iy
|
||||
huydLEY0HwAd8KAhv6whcgCU/k0+amUo8lvDRA6ADt2gIb/nTdzq8iFbQ1mCGtzklcJEjn/SP9FQ
|
||||
a1kNaDCJzKAZ3r1LShINUZ1LY1B+xaiBIf1u8OmIGHLQgSzwgZsYktBugjEoQjEkoZ1LM1D7Hks3
|
||||
AXwJAEIcuhYLvEIL61oscgthQyIXl+MLGiNQZsbw4CAJGrL3sRgSubgcX8hQkGiwJkUqJxpQvJFT
|
||||
0hgSOTA8dIOG7EP4DIk6491Ej0ZBQ4eixhCUMslMNUSNSAzhoCG3l2BI5ALzoRs0BqCUSWaqIWpE
|
||||
YsgGjSX5VbcRUQMSQzdkyK+fiDuPZSBCBlR6Itp10OtZTPRIbe8ZkLlWzVCXuPNYBiJojLDdkkV6
|
||||
0JCfn4hbYk5+0ICqB4x2MlG9BJBOilONJfllMHFnjpAfMqCoJy9kQBmB4pAxNAQZQ171RMwp5gPT
|
||||
3qNKojE0AI29khk0A9nrBhW0GEkK1oECRffAppqBrLrpEDRkH+JjSORcwtAta8g+jsWQyGWxNAoa
|
||||
OqQastd+GhJ56MjQDRoKimEDopaqDUTQUGnwEzTWT14NRdxkwkAEDXVqKLyHjgCmEKtQCwAKQ4fm
|
||||
YHcAAA==
|
||||
headers:
|
||||
Access-Control-Allow-Headers:
|
||||
- Content-Type,Content-Disposition
|
||||
Access-Control-Allow-Methods:
|
||||
- OPTIONS,GET
|
||||
Access-Control-Allow-Origin:
|
||||
- '*'
|
||||
Access-Control-Expose-Headers:
|
||||
- Content-Disposition
|
||||
Cache-Control:
|
||||
- no-store
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '1828'
|
||||
Content-Type:
|
||||
- application/json; charset=utf-8
|
||||
Date:
|
||||
- Thu, 06 Jun 2024 20:57:40 GMT
|
||||
Pragma:
|
||||
- no-cache
|
||||
Set-Cookie:
|
||||
- ak_bmsc=708282FD0DF0D37D7B8EEC7F6E7FE0D5~000000000000000000000000000000~YAAQ1pUeuGBXpLmPAQAAQ9BX7xhONWLFcCw0okbGYS1e9pk21yRgiUPaNTZNMp5Sv9xCMmLwMKLdnw8O6Hc7zrRz89eYCSlfosascqu+Yqns9+dnqyMafbNYXR1i4J9ECjdQLp8lM2L6xh8gQsdf6ZZVkGVSqC5IDB3Pi1i4wvt78Ceorh+Mf4dGp/TidQtDSRT6Ed4NntmHOWnqzNYlBqwdeijotrIOFBRsrkEbmcsTX+4Ohj+5tKKfXG9+EdvLCrb2eJvB7+U9cthYZec/uWt5lDrA7WEnXvXskwrJFBCOTrHgZnk6pJQtGhkE9oewQLQl0h0gV7izDf/SYN64eCW7wHrSnKgkOj4nXN4Zj0ZdDBdI1o+h6pD9xB1d7PiDHAtWWuMlPcqXReNef/lMse81AoQXJSvvXB4=;
|
||||
Domain=.newyorkfed.org; Path=/; Expires=Thu, 06 Jun 2024 22:57:40 GMT; Max-Age=7200
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
strict-transport-security:
|
||||
- max-age=31536000; includeSubDomains
|
||||
x-amz-apigw-id:
|
||||
- Y9pewFa8CYcFueA=
|
||||
x-amzn-requestid:
|
||||
- 6cc5ccab-5d40-4dfc-a97f-37ab9cdd7ef5
|
||||
x-amzn-trace-id:
|
||||
- Root=1-666222c4-11bb458333c0ee1d7b67d155;Parent=42d70ec18dfba284;Sampled=0;lineage=e7c0e2ee:0
|
||||
x-frame-options:
|
||||
- SAMEORIGIN
|
||||
x-xss-protection:
|
||||
- 1; mode=block
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
version: 1
|
||||
@@ -0,0 +1,63 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
method: GET
|
||||
uri: https://markets.newyorkfed.org/api/rates/unsecured/obfr/search.json?startDate=2024-06-01&endDate=2024-06-06
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAEA6pWUCpKTQtKLEktVrJSiFaoVlBKTUtLTS7JLEt1SSxJVbJSUDIyMDLRNTDTNTBT
|
||||
0lFQKqksAIv6O7kFKSnoKBWkFiWn5pWAjFCyUjDVMzZCCAZA5DJzUg3Bckam2OSMTMGSxobYJM2h
|
||||
ksbYJC0tITotFXSUyvJzSnNTPfOcMnNyMvPzQN4xsgDZV5RallmcmZ/nmZeSmZxYkl8E8pOSQq0O
|
||||
fs+aDlbPWuDwrDlIgkzPmgw1z1oYKOgokelZ46HmWXN8yRgwhViFWgD5Rz99xgMAAA==
|
||||
headers:
|
||||
Access-Control-Allow-Headers:
|
||||
- Content-Type,Content-Disposition
|
||||
Access-Control-Allow-Methods:
|
||||
- OPTIONS,GET
|
||||
Access-Control-Allow-Origin:
|
||||
- '*'
|
||||
Access-Control-Expose-Headers:
|
||||
- Content-Disposition
|
||||
Cache-Control:
|
||||
- no-store
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '220'
|
||||
Content-Type:
|
||||
- application/json; charset=utf-8
|
||||
Date:
|
||||
- Tue, 11 Jun 2024 02:34:03 GMT
|
||||
Pragma:
|
||||
- no-cache
|
||||
Set-Cookie:
|
||||
- cookiesession1=678A3E0EE607407E823ED4EA4F0C28B9;Expires=Wed, 11 Jun 2025 02:34:03
|
||||
GMT;Path=/;Secure;HttpOnly
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
strict-transport-security:
|
||||
- max-age=31536000; includeSubDomains
|
||||
x-amz-apigw-id:
|
||||
- ZLmgUG4BCYcFe8Q=
|
||||
x-amzn-requestid:
|
||||
- b77d47db-cd3e-492d-a63f-1ab9a17c16f8
|
||||
x-amzn-trace-id:
|
||||
- Root=1-6667b79b-358f5ab1a50c2313c1e18089;Parent=15119c60494acd17;Sampled=0;lineage=e7c0e2ee:0
|
||||
x-frame-options:
|
||||
- SAMEORIGIN
|
||||
x-xss-protection:
|
||||
- 1; mode=block
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
version: 1
|
||||
@@ -0,0 +1,64 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
method: GET
|
||||
uri: https://markets.newyorkfed.org/api/rates/secured/sofr/search.json?startDate=2024-06-01&endDate=2024-06-06
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAEA6pWUCpKTQtKLEktVrJSiFaoVlBKTUtLTS7JLEt1SSxJVbJSUDIyMDLRNTDTNTBT
|
||||
0lFQKqksAIsG+7sFKSnoKBWkFiWn5pWAjFCyUjDVMzZGCAZA5DJzUg3BckaW2OSMTMGSxkbYJM0h
|
||||
kiYG2CQtLcE6TUwUdJTK8nNKc1M985wyc3Iy8/NA3jEyMLBQ0FEqSi3LLM7Mz/PMS8lMTizJLwJ5
|
||||
SkmhVge/b00p9a0xVjcT41tjrOEE8y0ogLH41tDSAqSNTN+aUOpbusetJSi9kOlbY6J8a4otzQ1I
|
||||
Sja0NMTnW8AUYhVqAQ8xhrzKAwAA
|
||||
headers:
|
||||
Access-Control-Allow-Headers:
|
||||
- Content-Type,Content-Disposition
|
||||
Access-Control-Allow-Methods:
|
||||
- OPTIONS,GET
|
||||
Access-Control-Allow-Origin:
|
||||
- '*'
|
||||
Access-Control-Expose-Headers:
|
||||
- Content-Disposition
|
||||
Cache-Control:
|
||||
- no-store
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '249'
|
||||
Content-Type:
|
||||
- application/json; charset=utf-8
|
||||
Date:
|
||||
- Sat, 08 Jun 2024 05:59:35 GMT
|
||||
Pragma:
|
||||
- no-cache
|
||||
Set-Cookie:
|
||||
- cookiesession1=678A3E0EBA19E6E38D9D5186C73F260F;Expires=Sun, 08 Jun 2025 05:59:35
|
||||
GMT;Path=/;Secure;HttpOnly
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
strict-transport-security:
|
||||
- max-age=31536000; includeSubDomains
|
||||
x-amz-apigw-id:
|
||||
- ZCLzNFtZiYcFmHQ=
|
||||
x-amzn-requestid:
|
||||
- 67713ca6-2c16-438f-a2a5-fd48b4fb02a1
|
||||
x-amzn-trace-id:
|
||||
- Root=1-6663f347-775ee28c7594e08357ca5722;Parent=7fe874cce0755572;Sampled=0;lineage=e7c0e2ee:0
|
||||
x-frame-options:
|
||||
- SAMEORIGIN
|
||||
x-xss-protection:
|
||||
- 1; mode=block
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
version: 1
|
||||
@@ -7,10 +7,16 @@ from openbb_core.app.service.user_service import UserService
|
||||
from openbb_federal_reserve.models.central_bank_holdings import (
|
||||
FederalReserveCentralBankHoldingsFetcher,
|
||||
)
|
||||
from openbb_federal_reserve.models.fed_rates import FederalReserveFEDFetcher
|
||||
from openbb_federal_reserve.models.federal_funds_rate import (
|
||||
FederalReserveFederalFundsRateFetcher,
|
||||
)
|
||||
from openbb_federal_reserve.models.money_measures import (
|
||||
FederalReserveMoneyMeasuresFetcher,
|
||||
)
|
||||
from openbb_federal_reserve.models.overnight_bank_funding_rate import (
|
||||
FederalReserveOvernightBankFundingRateFetcher,
|
||||
)
|
||||
from openbb_federal_reserve.models.sofr import FederalReserveSOFRFetcher
|
||||
from openbb_federal_reserve.models.treasury_rates import (
|
||||
FederalReserveTreasuryRatesFetcher,
|
||||
)
|
||||
@@ -51,11 +57,11 @@ def test_federal_reserve_money_measures_fetcher(credentials=test_credentials):
|
||||
|
||||
|
||||
@pytest.mark.record_http
|
||||
def test_federal_reserve_fed_fetcher(credentials=test_credentials):
|
||||
"""Test the Federal Reserve FED fetcher."""
|
||||
def test_federal_reserve_federal_funds_rate_fetcher(credentials=test_credentials):
|
||||
"""Test the Federal Reserve Federal Funds Rate fetcher."""
|
||||
params = {"start_date": date(2023, 1, 1), "end_date": date(2023, 6, 6)}
|
||||
|
||||
fetcher = FederalReserveFEDFetcher()
|
||||
fetcher = FederalReserveFederalFundsRateFetcher()
|
||||
result = fetcher.test(params, credentials)
|
||||
assert result is None
|
||||
|
||||
@@ -78,3 +84,25 @@ def test_federal_reserve_central_bank_holdings_fetcher(credentials=test_credenti
|
||||
fetcher = FederalReserveCentralBankHoldingsFetcher()
|
||||
result = fetcher.test(params, credentials)
|
||||
assert result is None
|
||||
|
||||
|
||||
@pytest.mark.record_http
|
||||
def test_federal_reserve_sofr_fetcher(credentials=test_credentials):
|
||||
"""Test the Federal Reserve SOFR Fetcher."""
|
||||
params = {"start_date": date(2024, 6, 1), "end_date": date(2024, 6, 6)}
|
||||
|
||||
fetcher = FederalReserveSOFRFetcher()
|
||||
result = fetcher.test(params, credentials)
|
||||
assert result is None
|
||||
|
||||
|
||||
@pytest.mark.record_http
|
||||
def test_federal_reserve_overnight_bank_funding_rate_fetcher(
|
||||
credentials=test_credentials,
|
||||
):
|
||||
"""Test the Federal Reserve Overnight Bank Funding Rate Fetcher."""
|
||||
params = {"start_date": date(2024, 6, 1), "end_date": date(2024, 6, 6)}
|
||||
|
||||
fetcher = FederalReserveOvernightBankFundingRateFetcher()
|
||||
result = fetcher.test(params, credentials)
|
||||
assert result is None
|
||||
|
||||
@@ -1,20 +1,22 @@
|
||||
"""FRED provider module."""
|
||||
|
||||
from openbb_core.provider.abstract.provider import Provider
|
||||
from openbb_fred.models.ameribor_rates import FREDAMERIBORFetcher
|
||||
from openbb_fred.models.ameribor import FredAmeriborFetcher
|
||||
from openbb_fred.models.balance_of_payments import FredBalanceOfPaymentsFetcher
|
||||
from openbb_fred.models.bond_indices import FredBondIndicesFetcher
|
||||
from openbb_fred.models.commercial_paper import FREDCommercialPaperFetcher
|
||||
from openbb_fred.models.consumer_price_index import FREDConsumerPriceIndexFetcher
|
||||
from openbb_fred.models.cp import FREDCommercialPaperFetcher
|
||||
from openbb_fred.models.dwpcr_rates import FREDDiscountWindowPrimaryCreditRateFetcher
|
||||
from openbb_fred.models.ecb_interest_rates import (
|
||||
FREDEuropeanCentralBankInterestRatesFetcher,
|
||||
)
|
||||
from openbb_fred.models.estr_rates import FREDESTRFetcher
|
||||
from openbb_fred.models.euro_short_term_rate import FredEuroShortTermRateFetcher
|
||||
from openbb_fred.models.fed_projections import FREDPROJECTIONFetcher
|
||||
from openbb_fred.models.fed_rates import FREDFEDFetcher
|
||||
from openbb_fred.models.federal_funds_rate import FredFederalFundsRateFetcher
|
||||
from openbb_fred.models.ffrmc import FREDSelectedTreasuryConstantMaturityFetcher
|
||||
from openbb_fred.models.hqm import FREDHighQualityMarketCorporateBondFetcher
|
||||
from openbb_fred.models.high_quality_market import (
|
||||
FredHighQualityMarketCorporateBondFetcher,
|
||||
)
|
||||
from openbb_fred.models.ice_bofa import FREDICEBofAFetcher
|
||||
from openbb_fred.models.iorb_rates import FREDIORBFetcher
|
||||
from openbb_fred.models.manufacturing_outlook_texas import (
|
||||
@@ -22,6 +24,9 @@ from openbb_fred.models.manufacturing_outlook_texas import (
|
||||
)
|
||||
from openbb_fred.models.moody import FREDMoodyCorporateBondIndexFetcher
|
||||
from openbb_fred.models.mortgage_indices import FredMortgageIndicesFetcher
|
||||
from openbb_fred.models.overnight_bank_funding_rate import (
|
||||
FredOvernightBankFundingRateFetcher,
|
||||
)
|
||||
from openbb_fred.models.regional import FredRegionalDataFetcher
|
||||
from openbb_fred.models.retail_prices import FredRetailPricesFetcher
|
||||
from openbb_fred.models.search import (
|
||||
@@ -31,7 +36,7 @@ from openbb_fred.models.senior_loan_officer_survey import (
|
||||
FredSeniorLoanOfficerSurveyFetcher,
|
||||
)
|
||||
from openbb_fred.models.series import FredSeriesFetcher
|
||||
from openbb_fred.models.sofr_rates import FREDSOFRFetcher
|
||||
from openbb_fred.models.sofr import FREDSOFRFetcher
|
||||
from openbb_fred.models.sonia_rates import FREDSONIAFetcher
|
||||
from openbb_fred.models.spot import FREDSpotRateFetcher
|
||||
from openbb_fred.models.survey_of_economic_conditions_chicago import (
|
||||
@@ -58,10 +63,10 @@ Research division of the Federal Reserve Bank of St. Louis that has more than
|
||||
"ConsumerPriceIndex": FREDConsumerPriceIndexFetcher,
|
||||
"USYieldCurve": FREDUSYieldCurveFetcher,
|
||||
"SOFR": FREDSOFRFetcher,
|
||||
"ESTR": FREDESTRFetcher,
|
||||
"EuroShortTermRate": FredEuroShortTermRateFetcher,
|
||||
"SONIA": FREDSONIAFetcher,
|
||||
"AMERIBOR": FREDAMERIBORFetcher,
|
||||
"FEDFUNDS": FREDFEDFetcher,
|
||||
"Ameribor": FredAmeriborFetcher,
|
||||
"FederalFundsRate": FredFederalFundsRateFetcher,
|
||||
"PROJECTIONS": FREDPROJECTIONFetcher,
|
||||
"IORB": FREDIORBFetcher,
|
||||
"DiscountWindowPrimaryCreditRate": FREDDiscountWindowPrimaryCreditRateFetcher,
|
||||
@@ -70,6 +75,7 @@ Research division of the Federal Reserve Bank of St. Louis that has more than
|
||||
"ManufacturingOutlookTexas": FredManufacturingOutlookTexasFetcher,
|
||||
"MoodyCorporateBondIndex": FREDMoodyCorporateBondIndexFetcher,
|
||||
"MortgageIndices": FredMortgageIndicesFetcher,
|
||||
"OvernightBankFundingRate": FredOvernightBankFundingRateFetcher,
|
||||
"CommercialPaper": FREDCommercialPaperFetcher,
|
||||
"FredSearch": FredSearchFetcher,
|
||||
"FredSeries": FredSeriesFetcher,
|
||||
@@ -77,7 +83,7 @@ Research division of the Federal Reserve Bank of St. Louis that has more than
|
||||
"RetailPrices": FredRetailPricesFetcher,
|
||||
"SeniorLoanOfficerSurvey": FredSeniorLoanOfficerSurveyFetcher,
|
||||
"SpotRate": FREDSpotRateFetcher,
|
||||
"HighQualityMarketCorporateBond": FREDHighQualityMarketCorporateBondFetcher,
|
||||
"HighQualityMarketCorporateBond": FredHighQualityMarketCorporateBondFetcher,
|
||||
"TreasuryConstantMaturity": FREDTreasuryConstantMaturityFetcher,
|
||||
"SelectedTreasuryConstantMaturity": FREDSelectedTreasuryConstantMaturityFetcher,
|
||||
"SelectedTreasuryBill": FREDSelectedTreasuryBillFetcher,
|
||||
|
||||
227
openbb_platform/providers/fred/openbb_fred/models/ameribor.py
Normal file
227
openbb_platform/providers/fred/openbb_fred/models/ameribor.py
Normal file
@@ -0,0 +1,227 @@
|
||||
"""FRED AMERIBOR Model."""
|
||||
|
||||
# pylint: disable=unused-argument
|
||||
|
||||
from typing import Any, Dict, List, Literal, Optional, Union
|
||||
|
||||
from openbb_core.provider.abstract.annotated_result import AnnotatedResult
|
||||
from openbb_core.provider.abstract.fetcher import Fetcher
|
||||
from openbb_core.provider.standard_models.ameribor import (
|
||||
AmeriborData,
|
||||
AmeriborQueryParams,
|
||||
)
|
||||
from openbb_core.provider.utils.errors import EmptyDataError
|
||||
from openbb_fred.models.series import FredSeriesFetcher
|
||||
from pandas import Categorical, DataFrame
|
||||
from pydantic import Field
|
||||
|
||||
MATURITY_TO_FRED_ID = {
|
||||
"all": "AMERIBOR,AMBOR30,AMBOR90,AMBOR30T,AMBOR90T",
|
||||
"overnight": "AMERIBOR",
|
||||
"average_30d": "AMBOR30",
|
||||
"average_90d": "AMBOR90",
|
||||
"term_30d": "AMBOR30T",
|
||||
"term_90d": "AMBOR90T",
|
||||
}
|
||||
|
||||
|
||||
class FredAmeriborQueryParams(AmeriborQueryParams):
|
||||
"""FRED AMERIBOR Query."""
|
||||
|
||||
__json_schema_extra__ = {"maturity": {"multiple_items_allowed": True}}
|
||||
|
||||
maturity: Union[
|
||||
Literal[
|
||||
"all",
|
||||
"overnight",
|
||||
"average_30d",
|
||||
"average_90d",
|
||||
"term_30d",
|
||||
"term_90d",
|
||||
],
|
||||
str,
|
||||
] = Field(
|
||||
default="all",
|
||||
description="Period of AMERIBOR rate.",
|
||||
json_schema_extra={
|
||||
"choices": [
|
||||
"all",
|
||||
"overnight",
|
||||
"average_30d",
|
||||
"average_90d",
|
||||
"term_30d",
|
||||
"term_90d",
|
||||
]
|
||||
},
|
||||
)
|
||||
frequency: Union[
|
||||
None,
|
||||
Literal[
|
||||
"a",
|
||||
"q",
|
||||
"m",
|
||||
"w",
|
||||
"wef",
|
||||
"weth",
|
||||
"wew",
|
||||
"wetu",
|
||||
"wem",
|
||||
"wesu",
|
||||
"wesa",
|
||||
"bwew",
|
||||
"bwem",
|
||||
],
|
||||
] = Field(
|
||||
default=None,
|
||||
description="""
|
||||
Frequency aggregation to convert daily data to lower frequency.
|
||||
a = Annual
|
||||
q = Quarterly
|
||||
m = Monthly
|
||||
w = Weekly
|
||||
wef = Weekly, Ending Friday
|
||||
weth = Weekly, Ending Thursday
|
||||
wew = Weekly, Ending Wednesday
|
||||
wetu = Weekly, Ending Tuesday
|
||||
wem = Weekly, Ending Monday
|
||||
wesu = Weekly, Ending Sunday
|
||||
wesa = Weekly, Ending Saturday
|
||||
bwew = Biweekly, Ending Wednesday
|
||||
bwem = Biweekly, Ending Monday
|
||||
""",
|
||||
json_schema_extra={
|
||||
"choices": [
|
||||
"a",
|
||||
"q",
|
||||
"m",
|
||||
"w",
|
||||
"wef",
|
||||
"weth",
|
||||
"wew",
|
||||
"wetu",
|
||||
"wem",
|
||||
"wesu",
|
||||
"wesa",
|
||||
"bwew",
|
||||
"bwem",
|
||||
]
|
||||
},
|
||||
)
|
||||
aggregation_method: Union[None, Literal["avg", "sum", "eop"]] = Field(
|
||||
default=None,
|
||||
description="""
|
||||
A key that indicates the aggregation method used for frequency aggregation.
|
||||
avg = Average
|
||||
sum = Sum
|
||||
eop = End of Period
|
||||
""",
|
||||
json_schema_extra={"choices": ["avg", "sum", "eop"]},
|
||||
)
|
||||
transform: Union[
|
||||
None, Literal["chg", "ch1", "pch", "pc1", "pca", "cch", "cca", "log"]
|
||||
] = Field(
|
||||
default=None,
|
||||
description="""
|
||||
Transformation type
|
||||
None = No transformation
|
||||
chg = Change
|
||||
ch1 = Change from Year Ago
|
||||
pch = Percent Change
|
||||
pc1 = Percent Change from Year Ago
|
||||
pca = Compounded Annual Rate of Change
|
||||
cch = Continuously Compounded Rate of Change
|
||||
cca = Continuously Compounded Annual Rate of Change
|
||||
log = Natural Log
|
||||
""",
|
||||
json_schema_extra={
|
||||
"choices": ["chg", "ch1", "pch", "pc1", "pca", "cch", "cca", "log"]
|
||||
},
|
||||
)
|
||||
|
||||
|
||||
class FredAmeriborData(AmeriborData):
|
||||
"""FRED AMERIBOR Data."""
|
||||
|
||||
|
||||
class FredAmeriborFetcher(Fetcher[FredAmeriborQueryParams, List[FredAmeriborData]]):
|
||||
"""FRED Ameribor Fetcher."""
|
||||
|
||||
@staticmethod
|
||||
def transform_query(params: Dict[str, Any]) -> FredAmeriborQueryParams:
|
||||
"""Transform query."""
|
||||
return FredAmeriborQueryParams(**params)
|
||||
|
||||
@staticmethod
|
||||
async def aextract_data(
|
||||
query: FredAmeriborQueryParams,
|
||||
credentials: Optional[Dict[str, str]],
|
||||
**kwargs: Any,
|
||||
) -> Dict:
|
||||
"""Extract data."""
|
||||
maturities = query.maturity.split(",")
|
||||
ids = ""
|
||||
if len(maturities) == 1 or "all" in maturities:
|
||||
ids = MATURITY_TO_FRED_ID[query.maturity]
|
||||
else:
|
||||
ids = ",".join([MATURITY_TO_FRED_ID[m] for m in maturities])
|
||||
|
||||
try:
|
||||
response = await FredSeriesFetcher.fetch_data(
|
||||
dict(
|
||||
symbol=ids,
|
||||
start_date=query.start_date,
|
||||
end_date=query.end_date,
|
||||
frequency=query.frequency,
|
||||
aggregation_method=query.aggregation_method,
|
||||
transform=query.transform,
|
||||
),
|
||||
credentials,
|
||||
)
|
||||
except Exception as e:
|
||||
raise e from e
|
||||
|
||||
return {
|
||||
"metadata": response.metadata,
|
||||
"data": [d.model_dump() for d in response.result],
|
||||
}
|
||||
|
||||
@staticmethod
|
||||
def transform_data(
|
||||
query: FredAmeriborQueryParams,
|
||||
data: Dict,
|
||||
**kwargs: Any,
|
||||
) -> AnnotatedResult[List[FredAmeriborData]]:
|
||||
"""Transform data."""
|
||||
if not data["data"]:
|
||||
raise EmptyDataError("The request was returned with no data.")
|
||||
metadata = data.get("metadata", {})
|
||||
maturity_dict = {
|
||||
"AMERIBOR": "overnight",
|
||||
"AMBOR30": "day_30",
|
||||
"AMBOR90": "day_90",
|
||||
"AMBOR30T": "day_30",
|
||||
"AMBOR90T": "day_90",
|
||||
}
|
||||
|
||||
df = DataFrame(data.get("data", []))
|
||||
# Flatten data
|
||||
df = df.melt(id_vars="date", var_name="symbol", value_name="value").query(
|
||||
"value.notnull()"
|
||||
)
|
||||
df = df.rename(columns={"value": "rate"}).sort_values(by="date")
|
||||
# Normalize percent values
|
||||
df["rate"] = df["rate"].astype(float) / 100
|
||||
|
||||
df["maturity"] = df["symbol"].apply(lambda x: maturity_dict.get(x, x))
|
||||
df["title"] = df["symbol"].apply(lambda x: metadata.get(x, {}).get("title", x))
|
||||
maturity_categories = ["overnight", "day_30", "day_90"]
|
||||
df["maturity"] = Categorical(
|
||||
df["maturity"], categories=maturity_categories, ordered=True
|
||||
)
|
||||
df.sort_values(by=["date", "maturity"], inplace=True)
|
||||
records = df.to_dict(orient="records")
|
||||
|
||||
return AnnotatedResult(
|
||||
result=[FredAmeriborData.model_validate(d) for d in records],
|
||||
metadata=metadata,
|
||||
)
|
||||
@@ -1,92 +0,0 @@
|
||||
"""FRED AMERIBOR Model."""
|
||||
|
||||
from typing import Any, Dict, List, Literal, Optional
|
||||
|
||||
from openbb_core.provider.abstract.fetcher import Fetcher
|
||||
from openbb_core.provider.standard_models.ameribor_rates import (
|
||||
AMERIBORData,
|
||||
AMERIBORQueryParams,
|
||||
)
|
||||
from openbb_fred.utils.fred_base import Fred
|
||||
from pydantic import Field, field_validator
|
||||
|
||||
AMERIBOR_PARAMETER_TO_FRED_ID = {
|
||||
"overnight": "AMERIBOR",
|
||||
"term_30": "AMBOR30T",
|
||||
"term_90": "AMBOR90T",
|
||||
"1_week_term_structure": "AMBOR1W",
|
||||
"1_month_term_structure": "AMBOR1M",
|
||||
"3_month_term_structure": "AMBOR3M",
|
||||
"6_month_term_structure": "AMBOR6M",
|
||||
"1_year_term_structure": "AMBOR1Y",
|
||||
"2_year_term_structure": "AMBOR2Y",
|
||||
"30_day_ma": "AMBOR30",
|
||||
"90_day_ma": "AMBOR90",
|
||||
}
|
||||
|
||||
|
||||
class FREDAMERIBORQueryParams(AMERIBORQueryParams):
|
||||
"""FRED AMERIBOR Query."""
|
||||
|
||||
parameter: Literal[
|
||||
"overnight",
|
||||
"term_30",
|
||||
"term_90",
|
||||
"1_week_term_structure",
|
||||
"1_month_term_structure",
|
||||
"3_month_term_structure",
|
||||
"6_month_term_structure",
|
||||
"1_year_term_structure",
|
||||
"2_year_term_structure",
|
||||
"30_day_ma",
|
||||
"90_day_ma",
|
||||
] = Field(default="overnight", description="Period of AMERIBOR rate.")
|
||||
|
||||
|
||||
class FREDAMERIBORData(AMERIBORData):
|
||||
"""FRED AMERIBOR Data."""
|
||||
|
||||
__alias_dict__ = {"rate": "value"}
|
||||
|
||||
@field_validator("rate", mode="before", check_fields=False)
|
||||
@classmethod
|
||||
def value_validate(cls, v):
|
||||
"""Validate rate."""
|
||||
try:
|
||||
return float(v)
|
||||
except ValueError:
|
||||
return None
|
||||
|
||||
|
||||
class FREDAMERIBORFetcher(
|
||||
Fetcher[FREDAMERIBORQueryParams, List[Dict[str, List[FREDAMERIBORData]]]]
|
||||
):
|
||||
"""Transform the query, extract and transform the data from the FRED endpoints."""
|
||||
|
||||
data_type = FREDAMERIBORData
|
||||
|
||||
@staticmethod
|
||||
def transform_query(params: Dict[str, Any]) -> FREDAMERIBORQueryParams:
|
||||
"""Transform query."""
|
||||
return FREDAMERIBORQueryParams(**params)
|
||||
|
||||
@staticmethod
|
||||
def extract_data(
|
||||
query: FREDAMERIBORQueryParams,
|
||||
credentials: Optional[Dict[str, str]],
|
||||
**kwargs: Any,
|
||||
) -> dict:
|
||||
"""Extract data."""
|
||||
key = credentials.get("fred_api_key") if credentials else ""
|
||||
fred_series = AMERIBOR_PARAMETER_TO_FRED_ID[query.parameter]
|
||||
fred = Fred(key)
|
||||
data = fred.get_series(fred_series, query.start_date, query.end_date, **kwargs)
|
||||
return data
|
||||
|
||||
@staticmethod
|
||||
def transform_data(
|
||||
query: FREDAMERIBORQueryParams, data: dict, **kwargs: Any
|
||||
) -> List[Dict[str, List[FREDAMERIBORData]]]:
|
||||
"""Transform data."""
|
||||
keys = ["date", "value"]
|
||||
return [FREDAMERIBORData(**{k: x[k] for k in keys}) for x in data]
|
||||
@@ -45,6 +45,12 @@ BAML_CATEGORIES = {
|
||||
"oas": "BAMLC0A0CM",
|
||||
"yield_to_worst": "BAMLC0A0CMSYTW",
|
||||
},
|
||||
"seasoned_corporate": {
|
||||
"total_return": "",
|
||||
"yield": "DAAA,AAA10Y,AAAFF,DBAA,BAA10Y,BAAFF",
|
||||
"oas": "",
|
||||
"yield_to_worst": "",
|
||||
},
|
||||
"high_yield": {
|
||||
"total_return": "BAMLHYH0A0HYM2TRIV",
|
||||
"yield": "BAMLH0A0HYM2EY",
|
||||
@@ -259,6 +265,7 @@ BAML_CATEGORIES = {
|
||||
BamlCategories = Literal["high_yield", "us", "emerging_markets"]
|
||||
INDEX_CHOICES = [
|
||||
"corporate",
|
||||
"seasoned_corporate",
|
||||
"liquid_corporate",
|
||||
"yield_curve",
|
||||
"crossover",
|
||||
@@ -449,6 +456,15 @@ class FredBondIndicesFetcher(
|
||||
+ f" Must be one of {','.join(BAML_CATEGORIES.get('us'))}."
|
||||
)
|
||||
messages.append(message)
|
||||
elif (
|
||||
index == "seasoned_corporate"
|
||||
and values["index_type"] != "yield"
|
||||
):
|
||||
message = (
|
||||
"Invalid index_type for index: 'seasoned_corporate'."
|
||||
+ " Must be 'yield'."
|
||||
)
|
||||
messages.append(message)
|
||||
else:
|
||||
new_index.append(index)
|
||||
if values["category"] == "high_yield":
|
||||
|
||||
@@ -0,0 +1,372 @@
|
||||
"""FRED Commercial Paper Model."""
|
||||
|
||||
# pylint: disable=unused-argument
|
||||
|
||||
from typing import Any, Dict, List, Literal, Optional, Union
|
||||
|
||||
from openbb_core.provider.abstract.annotated_result import AnnotatedResult
|
||||
from openbb_core.provider.abstract.fetcher import Fetcher
|
||||
from openbb_core.provider.standard_models.commercial_paper import (
|
||||
CommercialPaperData,
|
||||
CommercialPaperParams,
|
||||
)
|
||||
from openbb_core.provider.utils.errors import EmptyDataError
|
||||
from openbb_fred.models.series import FredSeriesFetcher
|
||||
from pandas import Categorical, DataFrame
|
||||
from pydantic import Field
|
||||
|
||||
CP_SERIES_IDS = {
|
||||
"RIFSPPAAAD01NB": {
|
||||
"maturity": "overnight",
|
||||
"asset": "asset_backed",
|
||||
"title": "Overnight AA Asset-Backed Commercial Paper Interest Rate",
|
||||
},
|
||||
"RIFSPPAAAD07NB": {
|
||||
"maturity": "day_7",
|
||||
"asset": "asset_backed",
|
||||
"title": "7-Day AA Asset-Backed Commercial Paper Interest Rate",
|
||||
},
|
||||
"RIFSPPAAAD15NB": {
|
||||
"maturity": "day_15",
|
||||
"asset": "asset_backed",
|
||||
"title": "15-Day AA Asset-Backed Commercial Paper Interest Rate",
|
||||
},
|
||||
"RIFSPPAAAD30NB": {
|
||||
"maturity": "day_30",
|
||||
"asset": "asset_backed",
|
||||
"title": "30-Day AA Asset-Backed Commercial Paper Interest Rate",
|
||||
},
|
||||
"RIFSPPAAAD60NB": {
|
||||
"maturity": "day_60",
|
||||
"asset": "asset_backed",
|
||||
"title": "60-Day AA Asset-Backed Commercial Paper Interest Rate",
|
||||
},
|
||||
"RIFSPPAAAD90NB": {
|
||||
"maturity": "day_90",
|
||||
"asset": "asset_backed",
|
||||
"title": "90-Day AA Asset-Backed Commercial Paper Interest Rate",
|
||||
},
|
||||
"RIFSPPFAAD01NB": {
|
||||
"maturity": "overnight",
|
||||
"asset": "financial",
|
||||
"title": "Overnight AA Financial Commercial Paper Interest Rate",
|
||||
},
|
||||
"RIFSPPFAAD07NB": {
|
||||
"maturity": "day_7",
|
||||
"asset": "financial",
|
||||
"title": "7-Day AA Financial Commercial Paper Interest Rate",
|
||||
},
|
||||
"RIFSPPFAAD15NB": {
|
||||
"maturity": "day_15",
|
||||
"asset": "financial",
|
||||
"title": "15-Day AA Financial Commercial Paper Interest Rate",
|
||||
},
|
||||
"RIFSPPFAAD30NB": {
|
||||
"maturity": "day_30",
|
||||
"asset": "financial",
|
||||
"title": "30-Day AA Financial Commercial Paper Interest Rate",
|
||||
},
|
||||
"RIFSPPFAAD60NB": {
|
||||
"maturity": "day_60",
|
||||
"asset": "financial",
|
||||
"title": "60-Day AA Financial Commercial Paper Interest Rate",
|
||||
},
|
||||
"RIFSPPFAAD90NB": {
|
||||
"maturity": "day_90",
|
||||
"asset": "financial",
|
||||
"title": "90-Day AA Financial Commercial Paper Interest Rate",
|
||||
},
|
||||
"RIFSPPNAAD01NB": {
|
||||
"maturity": "overnight",
|
||||
"asset": "nonfinancial",
|
||||
"title": "Overnight AA Nonfinancial Commercial Paper Interest Rate",
|
||||
},
|
||||
"RIFSPPNAAD07NB": {
|
||||
"maturity": "day_7",
|
||||
"asset": "nonfinancial",
|
||||
"title": "7-Day AA Nonfinancial Commercial Paper Interest Rate",
|
||||
},
|
||||
"RIFSPPNAAD15NB": {
|
||||
"maturity": "day_15",
|
||||
"asset": "nonfinancial",
|
||||
"title": "15-Day AA Nonfinancial Commercial Paper Interest Rate",
|
||||
},
|
||||
"RIFSPPNAAD30NB": {
|
||||
"maturity": "day_30",
|
||||
"asset": "nonfinancial",
|
||||
"title": "30-Day AA Nonfinancial Commercial Paper Interest Rate",
|
||||
},
|
||||
"RIFSPPNAAD60NB": {
|
||||
"maturity": "day_60",
|
||||
"asset": "nonfinancial",
|
||||
"title": "60-Day AA Nonfinancial Commercial Paper Interest Rate",
|
||||
},
|
||||
"RIFSPPNAAD90NB": {
|
||||
"maturity": "day_90",
|
||||
"asset": "nonfinancial",
|
||||
"title": "90-Day AA Nonfinancial Commercial Paper Interest Rate",
|
||||
},
|
||||
"RIFSPPNA2P2D01NB": {
|
||||
"maturity": "overnight",
|
||||
"asset": "a2p2",
|
||||
"title": "Overnight A2/P2 Nonfinancial Commercial Paper Interest Rate",
|
||||
},
|
||||
"RIFSPPNA2P2D07NB": {
|
||||
"maturity": "day_7",
|
||||
"asset": "a2p2",
|
||||
"title": "7-Day A2/P2 Nonfinancial Commercial Paper Interest Rate",
|
||||
},
|
||||
"RIFSPPNA2P2D15NB": {
|
||||
"maturity": "day_15",
|
||||
"asset": "a2p2",
|
||||
"title": "15-Day A2/P2 Nonfinancial Commercial Paper Interest Rate",
|
||||
},
|
||||
"RIFSPPNA2P2D30NB": {
|
||||
"maturity": "day_30",
|
||||
"asset": "a2p2",
|
||||
"title": "30-Day A2/P2 Nonfinancial Commercial Paper Interest Rate",
|
||||
},
|
||||
"RIFSPPNA2P2D60NB": {
|
||||
"maturity": "day_60",
|
||||
"asset": "a2p2",
|
||||
"title": "60-Day A2/P2 Nonfinancial Commercial Paper Interest Rate",
|
||||
},
|
||||
"RIFSPPNA2P2D90NB": {
|
||||
"maturity": "day_90",
|
||||
"asset": "a2p2",
|
||||
"title": "90-Day A2/P2 Nonfinancial Commercial Paper Interest Rate",
|
||||
},
|
||||
}
|
||||
ALL_IDS = list(CP_SERIES_IDS)
|
||||
|
||||
|
||||
class FREDCommercialPaperParams(CommercialPaperParams):
|
||||
"""FRED Commercial Paper Query."""
|
||||
|
||||
__json_schema_extra__ = {
|
||||
"maturity": {"multiple_items_allowed": True},
|
||||
"category": {"multiple_items_allowed": True},
|
||||
}
|
||||
maturity: Union[
|
||||
str, Literal["all", "overnight", "7d", "15d", "30d", "60d", "90d"]
|
||||
] = Field(
|
||||
default="all",
|
||||
description="A target maturity.",
|
||||
json_schema_extra={
|
||||
"choices": ["all", "overnight", "7d", "15d", "30d", "60d", "90d"]
|
||||
},
|
||||
)
|
||||
category: Union[
|
||||
str, Literal["all", "asset_backed", "financial", "nonfinancial", "a2p2"]
|
||||
] = Field(
|
||||
default="all",
|
||||
description="The category of asset.",
|
||||
json_schema_extra={
|
||||
"choices": ["all", "asset_backed", "financial", "nonfinancial", "a2p2"]
|
||||
},
|
||||
)
|
||||
frequency: Union[
|
||||
None,
|
||||
Literal[
|
||||
"a",
|
||||
"q",
|
||||
"m",
|
||||
"w",
|
||||
"wef",
|
||||
"weth",
|
||||
"wew",
|
||||
"wetu",
|
||||
"wem",
|
||||
"wesu",
|
||||
"wesa",
|
||||
"bwew",
|
||||
"bwem",
|
||||
],
|
||||
] = Field(
|
||||
default=None,
|
||||
description="""
|
||||
Frequency aggregation to convert daily data to lower frequency.
|
||||
a = Annual
|
||||
q = Quarterly
|
||||
m = Monthly
|
||||
w = Weekly
|
||||
wef = Weekly, Ending Friday
|
||||
weth = Weekly, Ending Thursday
|
||||
wew = Weekly, Ending Wednesday
|
||||
wetu = Weekly, Ending Tuesday
|
||||
wem = Weekly, Ending Monday
|
||||
wesu = Weekly, Ending Sunday
|
||||
wesa = Weekly, Ending Saturday
|
||||
bwew = Biweekly, Ending Wednesday
|
||||
bwem = Biweekly, Ending Monday
|
||||
""",
|
||||
json_schema_extra={
|
||||
"choices": [
|
||||
"a",
|
||||
"q",
|
||||
"m",
|
||||
"w",
|
||||
"wef",
|
||||
"weth",
|
||||
"wew",
|
||||
"wetu",
|
||||
"wem",
|
||||
"wesu",
|
||||
"wesa",
|
||||
"bwew",
|
||||
"bwem",
|
||||
]
|
||||
},
|
||||
)
|
||||
aggregation_method: Union[None, Literal["avg", "sum", "eop"]] = Field(
|
||||
default=None,
|
||||
description="""
|
||||
A key that indicates the aggregation method used for frequency aggregation.
|
||||
avg = Average
|
||||
sum = Sum
|
||||
eop = End of Period
|
||||
""",
|
||||
json_schema_extra={"choices": ["avg", "sum", "eop"]},
|
||||
)
|
||||
transform: Union[
|
||||
None, Literal["chg", "ch1", "pch", "pc1", "pca", "cch", "cca", "log"]
|
||||
] = Field(
|
||||
default=None,
|
||||
description="""
|
||||
Transformation type
|
||||
None = No transformation
|
||||
chg = Change
|
||||
ch1 = Change from Year Ago
|
||||
pch = Percent Change
|
||||
pc1 = Percent Change from Year Ago
|
||||
pca = Compounded Annual Rate of Change
|
||||
cch = Continuously Compounded Rate of Change
|
||||
cca = Continuously Compounded Annual Rate of Change
|
||||
log = Natural Log
|
||||
""",
|
||||
json_schema_extra={
|
||||
"choices": ["chg", "ch1", "pch", "pc1", "pca", "cch", "cca", "log"]
|
||||
},
|
||||
)
|
||||
|
||||
|
||||
class FREDCommercialPaperData(CommercialPaperData):
|
||||
"""FRED Commercial Paper Data."""
|
||||
|
||||
asset_type: Literal["asset_backed", "financial", "nonfinancial", "a2p2"] = Field(
|
||||
description="The category of asset."
|
||||
)
|
||||
|
||||
|
||||
class FREDCommercialPaperFetcher(
|
||||
Fetcher[
|
||||
FREDCommercialPaperParams,
|
||||
List[FREDCommercialPaperData],
|
||||
]
|
||||
):
|
||||
"""FRED Commercial Paper Fetcher."""
|
||||
|
||||
@staticmethod
|
||||
def transform_query(params: Dict[str, Any]) -> FREDCommercialPaperParams:
|
||||
"""Transform query."""
|
||||
return FREDCommercialPaperParams(**params)
|
||||
|
||||
@staticmethod
|
||||
async def aextract_data(
|
||||
query: FREDCommercialPaperParams,
|
||||
credentials: Optional[Dict[str, str]],
|
||||
**kwargs: Any,
|
||||
) -> Dict:
|
||||
"""Extract data."""
|
||||
ids: List[str] = []
|
||||
if query.maturity == "all" and query.category == "all":
|
||||
ids = ALL_IDS
|
||||
else:
|
||||
MAT_DICT = {
|
||||
"overnight": "01",
|
||||
"7d": "07",
|
||||
"15d": "15",
|
||||
"30d": "30",
|
||||
"60d": "60",
|
||||
"90d": "90",
|
||||
}
|
||||
CAT_DICT = {
|
||||
"asset_backed": "AAAD",
|
||||
"financial": "FAAD",
|
||||
"nonfinancial": "NAAD",
|
||||
"a2p2": "NA2P2D",
|
||||
}
|
||||
maturities = query.maturity.split(",")
|
||||
categories = query.category.split(",")
|
||||
if "all" in categories:
|
||||
categories = list(CAT_DICT)
|
||||
if "all" in maturities:
|
||||
maturities = list(MAT_DICT)
|
||||
for cat in categories:
|
||||
for mat in maturities:
|
||||
ids.append(f"RIFSPP{CAT_DICT.get(cat)}{MAT_DICT.get(mat)}NB")
|
||||
try:
|
||||
response = await FredSeriesFetcher.fetch_data(
|
||||
dict(
|
||||
symbol=",".join(ids),
|
||||
start_date=query.start_date if query.start_date else "2019-01-01",
|
||||
end_date=query.end_date,
|
||||
frequency=query.frequency,
|
||||
aggregation_method=query.aggregation_method,
|
||||
transform=query.transform,
|
||||
),
|
||||
credentials,
|
||||
)
|
||||
except Exception as e:
|
||||
raise e from e
|
||||
|
||||
return {
|
||||
"metadata": response.metadata,
|
||||
"data": [d.model_dump() for d in response.result],
|
||||
}
|
||||
|
||||
@staticmethod
|
||||
def transform_data(
|
||||
query: FREDCommercialPaperParams,
|
||||
data: Dict,
|
||||
**kwargs: Any,
|
||||
) -> List[FREDCommercialPaperData]:
|
||||
"""Transform data."""
|
||||
if not data:
|
||||
raise EmptyDataError("The request was returned empty.")
|
||||
df = DataFrame(data["data"])
|
||||
metadata = data.get("metadata", {})
|
||||
# Flatten data
|
||||
df = df.melt(id_vars="date", var_name="symbol", value_name="value").query(
|
||||
"value.notnull()"
|
||||
)
|
||||
df = df.rename(columns={"value": "rate"}).sort_values(by="date")
|
||||
# Normalize percent values
|
||||
df["rate"] = df["rate"].astype(float) / 100
|
||||
# Add asset type, maturity, and title
|
||||
df["asset_type"] = df["symbol"].apply(lambda x: CP_SERIES_IDS[x]["asset"])
|
||||
df["title"] = df["symbol"].apply(lambda x: CP_SERIES_IDS[x]["title"])
|
||||
df["maturity"] = df["symbol"].apply(lambda x: CP_SERIES_IDS[x]["maturity"])
|
||||
# Categorize and order.
|
||||
asset_type_categories = ["asset_backed", "financial", "nonfinancial", "a2p2"]
|
||||
maturity_categories = [
|
||||
"overnight",
|
||||
"day_7",
|
||||
"day_15",
|
||||
"day_30",
|
||||
"day_60",
|
||||
"day_90",
|
||||
]
|
||||
df["asset_type"] = Categorical(
|
||||
df["asset_type"], categories=asset_type_categories, ordered=True
|
||||
)
|
||||
df["maturity"] = Categorical(
|
||||
df["maturity"], categories=maturity_categories, ordered=True
|
||||
)
|
||||
df.sort_values(by=["date", "asset_type", "maturity"], inplace=True)
|
||||
records = df.to_dict(orient="records")
|
||||
|
||||
return AnnotatedResult(
|
||||
result=[FREDCommercialPaperData.model_validate(d) for d in records],
|
||||
metadata=metadata,
|
||||
)
|
||||
@@ -1,87 +0,0 @@
|
||||
"""FRED Commercial Paper Model."""
|
||||
|
||||
from typing import Any, Dict, List, Optional
|
||||
|
||||
from openbb_core.provider.abstract.fetcher import Fetcher
|
||||
from openbb_core.provider.standard_models.cp import (
|
||||
CommercialPaperData,
|
||||
CommercialPaperParams,
|
||||
)
|
||||
from openbb_fred.utils.fred_base import Fred
|
||||
from openbb_fred.utils.fred_helpers import get_cp_series_id
|
||||
from pydantic import field_validator
|
||||
|
||||
|
||||
class FREDCommercialPaperParams(CommercialPaperParams):
|
||||
"""FRED Commercial Paper Query."""
|
||||
|
||||
|
||||
class FREDCommercialPaperData(CommercialPaperData):
|
||||
"""FRED Commercial Paper Data."""
|
||||
|
||||
__alias_dict__ = {"rate": "value"}
|
||||
|
||||
@field_validator("rate", mode="before", check_fields=False)
|
||||
@classmethod
|
||||
def value_validate(cls, v):
|
||||
"""Validate rate."""
|
||||
try:
|
||||
return float(v)
|
||||
except ValueError:
|
||||
return None
|
||||
|
||||
|
||||
class FREDCommercialPaperFetcher(
|
||||
Fetcher[
|
||||
FREDCommercialPaperParams,
|
||||
List[FREDCommercialPaperData],
|
||||
]
|
||||
):
|
||||
"""Transform the query, extract and transform the data from the FRED endpoints."""
|
||||
|
||||
data_type = FREDCommercialPaperData
|
||||
|
||||
@staticmethod
|
||||
def transform_query(params: Dict[str, Any]) -> FREDCommercialPaperParams:
|
||||
"""Transform query."""
|
||||
return FREDCommercialPaperParams(**params)
|
||||
|
||||
@staticmethod
|
||||
def extract_data(
|
||||
query: FREDCommercialPaperParams,
|
||||
credentials: Optional[Dict[str, str]],
|
||||
**kwargs: Any
|
||||
) -> list:
|
||||
"""Extract data."""
|
||||
key = credentials.get("fred_api_key") if credentials else ""
|
||||
fred = Fred(key)
|
||||
|
||||
series = get_cp_series_id(
|
||||
maturity=query.maturity,
|
||||
category=query.category,
|
||||
grade=query.grade,
|
||||
)
|
||||
|
||||
data = []
|
||||
|
||||
for s in series:
|
||||
id_ = s["FRED Series ID"]
|
||||
title = s["Title"]
|
||||
d = fred.get_series(
|
||||
series_id=id_,
|
||||
start_date=query.start_date,
|
||||
end_date=query.end_date,
|
||||
**kwargs,
|
||||
)
|
||||
for item in d:
|
||||
item["title"] = title
|
||||
data.extend(d)
|
||||
|
||||
return data
|
||||
|
||||
@staticmethod
|
||||
def transform_data(
|
||||
query: FREDCommercialPaperParams, data: list, **kwargs: Any
|
||||
) -> List[FREDCommercialPaperData]:
|
||||
"""Transform data."""
|
||||
return [FREDCommercialPaperData.model_validate(d) for d in data]
|
||||
@@ -1,81 +0,0 @@
|
||||
"""FRED ESTR Model."""
|
||||
|
||||
from typing import Any, Dict, List, Literal, Optional
|
||||
|
||||
from openbb_core.provider.abstract.fetcher import Fetcher
|
||||
from openbb_core.provider.standard_models.estr_rates import ESTRData, ESTRQueryParams
|
||||
from openbb_fred.utils.fred_base import Fred
|
||||
from pydantic import Field, field_validator
|
||||
|
||||
ESTR_PARAMETER_TO_ID = {
|
||||
"volume_weighted_trimmed_mean_rate": "ECBESTRVOLWGTTRMDMNRT",
|
||||
"number_of_transactions": "ECBESTRNUMTRANS",
|
||||
"number_of_active_banks": "ECBESTRNUMACTBANKS",
|
||||
"total_volume": "ECBESTRTOTVOL",
|
||||
"share_of_volume_of_the_5_largest_active_banks": "ECBESTRSHRVOL5LRGACTBNK",
|
||||
"rate_at_75th_percentile_of_volume": "ECBESTRRT75THPCTVOL",
|
||||
"rate_at_25th_percentile_of_volume": "ECBESTRRT25THPCTVOL",
|
||||
}
|
||||
|
||||
|
||||
class FREDESTRQueryParams(ESTRQueryParams):
|
||||
"""FRED ESTR Query."""
|
||||
|
||||
parameter: Literal[
|
||||
"volume_weighted_trimmed_mean_rate",
|
||||
"number_of_transactions",
|
||||
"number_of_active_banks",
|
||||
"total_volume",
|
||||
"share_of_volume_of_the_5_largest_active_banks",
|
||||
"rate_at_75th_percentile_of_volume",
|
||||
"rate_at_25th_percentile_of_volume",
|
||||
] = Field(
|
||||
default="volume_weighted_trimmed_mean_rate", description="Period of ESTR rate."
|
||||
)
|
||||
|
||||
|
||||
class FREDESTRData(ESTRData):
|
||||
"""FRED ESTR Data."""
|
||||
|
||||
__alias_dict__ = {"rate": "value"}
|
||||
|
||||
@field_validator("rate", mode="before", check_fields=False)
|
||||
@classmethod
|
||||
def value_validate(cls, v):
|
||||
"""Validate rate."""
|
||||
try:
|
||||
return float(v)
|
||||
except ValueError:
|
||||
return None
|
||||
|
||||
|
||||
class FREDESTRFetcher(
|
||||
Fetcher[FREDESTRQueryParams, List[Dict[str, List[FREDESTRData]]]]
|
||||
):
|
||||
"""Transform the query, extract and transform the data from the FRED endpoints."""
|
||||
|
||||
data_type = FREDESTRData
|
||||
|
||||
@staticmethod
|
||||
def transform_query(params: Dict[str, Any]) -> FREDESTRQueryParams:
|
||||
"""Transform query"""
|
||||
return FREDESTRQueryParams(**params)
|
||||
|
||||
@staticmethod
|
||||
def extract_data(
|
||||
query: FREDESTRQueryParams, credentials: Optional[Dict[str, str]], **kwargs: Any
|
||||
) -> dict:
|
||||
"""Extract data"""
|
||||
key = credentials.get("fred_api_key") if credentials else ""
|
||||
fred_series = ESTR_PARAMETER_TO_ID[query.parameter]
|
||||
fred = Fred(key)
|
||||
data = fred.get_series(fred_series, query.start_date, query.end_date, **kwargs)
|
||||
return data
|
||||
|
||||
@staticmethod
|
||||
def transform_data(
|
||||
query: FREDESTRQueryParams, data: dict, **kwargs: Any
|
||||
) -> List[Dict[str, List[FREDESTRData]]]:
|
||||
"""Transform data"""
|
||||
keys = ["date", "value"]
|
||||
return [FREDESTRData(**{k: x[k] for k in keys}) for x in data]
|
||||
@@ -0,0 +1,194 @@
|
||||
"""FRED Euro Short Term Rate Standard Model."""
|
||||
|
||||
from typing import Any, Dict, List, Literal, Optional, Union
|
||||
|
||||
from openbb_core.provider.abstract.annotated_result import AnnotatedResult
|
||||
from openbb_core.provider.abstract.fetcher import Fetcher
|
||||
from openbb_core.provider.standard_models.euro_short_term_rate import (
|
||||
EuroShortTermRateData,
|
||||
EuroShortTermRateQueryParams,
|
||||
)
|
||||
from openbb_core.provider.utils.errors import EmptyDataError
|
||||
from openbb_fred.models.series import FredSeriesFetcher
|
||||
from pydantic import Field, field_validator
|
||||
|
||||
|
||||
class FredEuroShortTermRateQueryParams(EuroShortTermRateQueryParams):
|
||||
"""FRED Euro Short Term Rate Query."""
|
||||
|
||||
frequency: Union[
|
||||
None,
|
||||
Literal[
|
||||
"a",
|
||||
"q",
|
||||
"m",
|
||||
"w",
|
||||
"wef",
|
||||
"weth",
|
||||
"wew",
|
||||
"wetu",
|
||||
"wem",
|
||||
"wesu",
|
||||
"wesa",
|
||||
"bwew",
|
||||
"bwem",
|
||||
],
|
||||
] = Field(
|
||||
default=None,
|
||||
description="""
|
||||
Frequency aggregation to convert daily data to lower frequency.
|
||||
a = Annual
|
||||
q = Quarterly
|
||||
m = Monthly
|
||||
w = Weekly
|
||||
wef = Weekly, Ending Friday
|
||||
weth = Weekly, Ending Thursday
|
||||
wew = Weekly, Ending Wednesday
|
||||
wetu = Weekly, Ending Tuesday
|
||||
wem = Weekly, Ending Monday
|
||||
wesu = Weekly, Ending Sunday
|
||||
wesa = Weekly, Ending Saturday
|
||||
bwew = Biweekly, Ending Wednesday
|
||||
bwem = Biweekly, Ending Monday
|
||||
""",
|
||||
json_schema_extra={
|
||||
"choices": [
|
||||
"a",
|
||||
"q",
|
||||
"m",
|
||||
"w",
|
||||
"wef",
|
||||
"weth",
|
||||
"wew",
|
||||
"wetu",
|
||||
"wem",
|
||||
"wesu",
|
||||
"wesa",
|
||||
"bwew",
|
||||
"bwem",
|
||||
]
|
||||
},
|
||||
)
|
||||
aggregation_method: Union[None, Literal["avg", "sum", "eop"]] = Field(
|
||||
default=None,
|
||||
description="""
|
||||
A key that indicates the aggregation method used for frequency aggregation.
|
||||
avg = Average
|
||||
sum = Sum
|
||||
eop = End of Period
|
||||
""",
|
||||
json_schema_extra={"choices": ["avg", "sum", "eop"]},
|
||||
)
|
||||
transform: Union[
|
||||
None, Literal["chg", "ch1", "pch", "pc1", "pca", "cch", "cca", "log"]
|
||||
] = Field(
|
||||
default=None,
|
||||
description="""
|
||||
Transformation type
|
||||
None = No transformation
|
||||
chg = Change
|
||||
ch1 = Change from Year Ago
|
||||
pch = Percent Change
|
||||
pc1 = Percent Change from Year Ago
|
||||
pca = Compounded Annual Rate of Change
|
||||
cch = Continuously Compounded Rate of Change
|
||||
cca = Continuously Compounded Annual Rate of Change
|
||||
log = Natural Log
|
||||
""",
|
||||
json_schema_extra={
|
||||
"choices": ["chg", "ch1", "pch", "pc1", "pca", "cch", "cca", "log"]
|
||||
},
|
||||
)
|
||||
|
||||
|
||||
class FredEuroShortTermRateData(EuroShortTermRateData):
|
||||
"""FRED Euro Short Term Rate Data."""
|
||||
|
||||
__alias_dict__ = {
|
||||
"rate": "ECBESTRVOLWGTTRMDMNRT",
|
||||
"transactions": "ECBESTRNUMTRANS",
|
||||
"number_of_banks": "ECBESTRNUMACTBANKS",
|
||||
"volume": "ECBESTRTOTVOL",
|
||||
"large_bank_share_of_volume": "ECBESTRSHRVOL5LRGACTBNK",
|
||||
"percentile_75": "ECBESTRRT75THPCTVOL",
|
||||
"percentile_25": "ECBESTRRT25THPCTVOL",
|
||||
}
|
||||
|
||||
@field_validator(
|
||||
"rate",
|
||||
"percentile_25",
|
||||
"percentile_75",
|
||||
"large_bank_share_of_volume",
|
||||
mode="before",
|
||||
check_fields=False,
|
||||
)
|
||||
@classmethod
|
||||
def normalize_percent(cls, v):
|
||||
"""Normalize percent."""
|
||||
return float(v) / 100 if v else None
|
||||
|
||||
|
||||
class FredEuroShortTermRateFetcher(
|
||||
Fetcher[FredEuroShortTermRateQueryParams, List[FredEuroShortTermRateData]]
|
||||
):
|
||||
"""FRED Euro Short Term Rate Fetcher."""
|
||||
|
||||
@staticmethod
|
||||
def transform_query(params: Dict[str, Any]) -> FredEuroShortTermRateQueryParams:
|
||||
"""Transform query"""
|
||||
return FredEuroShortTermRateQueryParams(**params)
|
||||
|
||||
@staticmethod
|
||||
async def aextract_data(
|
||||
query: FredEuroShortTermRateQueryParams,
|
||||
credentials: Optional[Dict[str, str]],
|
||||
**kwargs: Any,
|
||||
) -> Dict:
|
||||
"""Extract data"""
|
||||
|
||||
ids = [
|
||||
"ECBESTRVOLWGTTRMDMNRT",
|
||||
"ECBESTRNUMTRANS",
|
||||
"ECBESTRNUMACTBANKS",
|
||||
"ECBESTRTOTVOL",
|
||||
"ECBESTRSHRVOL5LRGACTBNK",
|
||||
"ECBESTRRT75THPCTVOL",
|
||||
"ECBESTRRT25THPCTVOL",
|
||||
]
|
||||
try:
|
||||
response = await FredSeriesFetcher.fetch_data(
|
||||
dict(
|
||||
symbol=",".join(ids),
|
||||
start_date=query.start_date if query.start_date else "2019-10-02",
|
||||
end_date=query.end_date,
|
||||
frequency=query.frequency,
|
||||
aggregation_method=query.aggregation_method,
|
||||
transform=query.transform,
|
||||
),
|
||||
credentials,
|
||||
)
|
||||
except Exception as e:
|
||||
raise e from e
|
||||
|
||||
return {
|
||||
"metadata": response.metadata,
|
||||
"data": [d.model_dump() for d in response.result],
|
||||
}
|
||||
|
||||
@staticmethod
|
||||
def transform_data(
|
||||
query: FredEuroShortTermRateQueryParams,
|
||||
data: Dict,
|
||||
**kwargs: Any,
|
||||
) -> List[List[FredEuroShortTermRateData]]:
|
||||
"""Transform data"""
|
||||
if not data:
|
||||
raise EmptyDataError("The request was returned empty.")
|
||||
return AnnotatedResult(
|
||||
result=[
|
||||
FredEuroShortTermRateData.model_validate(d)
|
||||
for d in data.get("data", [])
|
||||
if d.get("ECBESTRVOLWGTTRMDMNRT")
|
||||
],
|
||||
metadata=data.get("metadata", {}),
|
||||
)
|
||||
@@ -1,80 +0,0 @@
|
||||
"""FRED FED Model."""
|
||||
|
||||
from typing import Any, Dict, List, Literal, Optional
|
||||
|
||||
from openbb_core.provider.abstract.fetcher import Fetcher
|
||||
from openbb_core.provider.standard_models.fed_rates import (
|
||||
FEDData,
|
||||
FEDQueryParams,
|
||||
)
|
||||
from openbb_fred.utils.fred_base import Fred
|
||||
from pydantic import Field, field_validator
|
||||
|
||||
FED_PARAMETER_TO_FRED_ID = {
|
||||
"monthly": "FEDFUNDS",
|
||||
"daily": "DFF",
|
||||
"weekly": "FF",
|
||||
"daily_excl_weekend": "RIFSPFFNB",
|
||||
"annual": "RIFSPFFNA",
|
||||
"biweekly": "RIFSPFFNBWAW",
|
||||
"volume": "EFFRVOL",
|
||||
}
|
||||
|
||||
|
||||
class FREDFEDQueryParams(FEDQueryParams):
|
||||
"""FRED FED Query."""
|
||||
|
||||
parameter: Literal[
|
||||
"monthly",
|
||||
"daily",
|
||||
"weekly",
|
||||
"daily_excl_weekend",
|
||||
"annual",
|
||||
"biweekly",
|
||||
"volume",
|
||||
] = Field(default="weekly", description="Period of FED rate.")
|
||||
|
||||
|
||||
class FREDFEDData(FEDData):
|
||||
"""FRED FED Data."""
|
||||
|
||||
__alias_dict__ = {"rate": "value"}
|
||||
|
||||
@field_validator("rate", mode="before", check_fields=False)
|
||||
@classmethod
|
||||
def value_validate(cls, v):
|
||||
"""Validate rate."""
|
||||
try:
|
||||
return float(v)
|
||||
except ValueError:
|
||||
return None
|
||||
|
||||
|
||||
class FREDFEDFetcher(Fetcher[FREDFEDQueryParams, List[Dict[str, List[FREDFEDData]]]]):
|
||||
"""FRED FED Model."""
|
||||
|
||||
data_type = FREDFEDData
|
||||
|
||||
@staticmethod
|
||||
def transform_query(params: Dict[str, Any]) -> FREDFEDQueryParams:
|
||||
"""Transform query."""
|
||||
return FREDFEDQueryParams(**params)
|
||||
|
||||
@staticmethod
|
||||
def extract_data(
|
||||
query: FREDFEDQueryParams, credentials: Optional[Dict[str, str]], **kwargs: Any
|
||||
) -> dict:
|
||||
"""Extract data."""
|
||||
key = credentials.get("fred_api_key") if credentials else ""
|
||||
fred_series = FED_PARAMETER_TO_FRED_ID[query.parameter]
|
||||
fred = Fred(key)
|
||||
data = fred.get_series(fred_series, query.start_date, query.end_date, **kwargs)
|
||||
return data
|
||||
|
||||
@staticmethod
|
||||
def transform_data(
|
||||
query: FREDFEDQueryParams, data: dict, **kwargs: Any
|
||||
) -> List[Dict[str, List[FREDFEDData]]]:
|
||||
"""Transform data."""
|
||||
keys = ["date", "value"]
|
||||
return [FREDFEDData(**{k: x[k] for k in keys}) for x in data]
|
||||
@@ -0,0 +1,203 @@
|
||||
"""FRED Federal Funds Rate Model."""
|
||||
|
||||
from datetime import datetime
|
||||
from typing import Any, Dict, List, Literal, Optional, Union
|
||||
|
||||
from openbb_core.provider.abstract.annotated_result import AnnotatedResult
|
||||
from openbb_core.provider.abstract.fetcher import Fetcher
|
||||
from openbb_core.provider.standard_models.federal_funds_rate import (
|
||||
FederalFundsRateData,
|
||||
FederalFundsRateQueryParams,
|
||||
)
|
||||
from openbb_core.provider.utils.errors import EmptyDataError
|
||||
from openbb_fred.models.series import FredSeriesFetcher
|
||||
from pandas import DataFrame, to_datetime
|
||||
from pydantic import Field
|
||||
|
||||
EFFR_SERIES_IDS = {
|
||||
"rate": "DFF",
|
||||
"target_range_upper": "DFEDTARU",
|
||||
"target_range_lower": "DFEDTARL",
|
||||
"percentile_1": "EFFR1",
|
||||
"percentile_25": "EFFR25",
|
||||
"percentile_75": "EFFR75",
|
||||
"percentile_99": "EFFR99",
|
||||
"volume": "EFFRVOL",
|
||||
}
|
||||
|
||||
|
||||
class FredFederalFundsRateQueryParams(FederalFundsRateQueryParams):
|
||||
"""FRED Federal Funds Rate Query."""
|
||||
|
||||
frequency: Union[
|
||||
None,
|
||||
Literal[
|
||||
"a",
|
||||
"q",
|
||||
"m",
|
||||
"w",
|
||||
"wef",
|
||||
"weth",
|
||||
"wew",
|
||||
"wetu",
|
||||
"wem",
|
||||
"wesu",
|
||||
"wesa",
|
||||
"bwew",
|
||||
"bwem",
|
||||
],
|
||||
] = Field(
|
||||
default=None,
|
||||
description="""
|
||||
Frequency aggregation to convert daily data to lower frequency.
|
||||
a = Annual
|
||||
q = Quarterly
|
||||
m = Monthly
|
||||
w = Weekly
|
||||
wef = Weekly, Ending Friday
|
||||
weth = Weekly, Ending Thursday
|
||||
wew = Weekly, Ending Wednesday
|
||||
wetu = Weekly, Ending Tuesday
|
||||
wem = Weekly, Ending Monday
|
||||
wesu = Weekly, Ending Sunday
|
||||
wesa = Weekly, Ending Saturday
|
||||
bwew = Biweekly, Ending Wednesday
|
||||
bwem = Biweekly, Ending Monday
|
||||
""",
|
||||
json_schema_extra={
|
||||
"choices": [
|
||||
"a",
|
||||
"q",
|
||||
"m",
|
||||
"w",
|
||||
"wef",
|
||||
"weth",
|
||||
"wew",
|
||||
"wetu",
|
||||
"wem",
|
||||
"wesu",
|
||||
"wesa",
|
||||
"bwew",
|
||||
"bwem",
|
||||
]
|
||||
},
|
||||
)
|
||||
aggregation_method: Union[None, Literal["avg", "sum", "eop"]] = Field(
|
||||
default=None,
|
||||
description="""
|
||||
A key that indicates the aggregation method used for frequency aggregation.
|
||||
avg = Average
|
||||
sum = Sum
|
||||
eop = End of Period
|
||||
""",
|
||||
json_schema_extra={"choices": ["avg", "sum", "eop"]},
|
||||
)
|
||||
transform: Union[
|
||||
None, Literal["chg", "ch1", "pch", "pc1", "pca", "cch", "cca", "log"]
|
||||
] = Field(
|
||||
default=None,
|
||||
description="""
|
||||
Transformation type
|
||||
None = No transformation
|
||||
chg = Change
|
||||
ch1 = Change from Year Ago
|
||||
pch = Percent Change
|
||||
pc1 = Percent Change from Year Ago
|
||||
pca = Compounded Annual Rate of Change
|
||||
cch = Continuously Compounded Rate of Change
|
||||
cca = Continuously Compounded Annual Rate of Change
|
||||
log = Natural Log
|
||||
""",
|
||||
json_schema_extra={
|
||||
"choices": ["chg", "ch1", "pch", "pc1", "pca", "cch", "cca", "log"]
|
||||
},
|
||||
)
|
||||
effr_only: bool = Field(
|
||||
default=False,
|
||||
description="Return data without quantiles, target ranges, and volume.",
|
||||
)
|
||||
|
||||
|
||||
class FredFederalFundsRateData(FederalFundsRateData):
|
||||
"""FRED Federal Funds Rate Data."""
|
||||
|
||||
|
||||
class FredFederalFundsRateFetcher(
|
||||
Fetcher[FredFederalFundsRateQueryParams, List[FredFederalFundsRateData]]
|
||||
):
|
||||
"""FRED Federal Funds Rate Fetcher."""
|
||||
|
||||
@staticmethod
|
||||
def transform_query(params: Dict[str, Any]) -> FredFederalFundsRateQueryParams:
|
||||
"""Transform query."""
|
||||
transformed_params = params.copy()
|
||||
now = datetime.now().date()
|
||||
if params.get("start_date") is None:
|
||||
transformed_params["start_date"] = (
|
||||
datetime(2016, 1, 1).date()
|
||||
if params.get("effr_only") is False
|
||||
else None
|
||||
)
|
||||
if params.get("end_date") is None:
|
||||
transformed_params["end_date"] = now
|
||||
return FredFederalFundsRateQueryParams(**transformed_params)
|
||||
|
||||
@staticmethod
|
||||
async def aextract_data(
|
||||
query: FredFederalFundsRateQueryParams,
|
||||
credentials: Optional[Dict[str, str]],
|
||||
**kwargs: Any,
|
||||
) -> Dict:
|
||||
"""Extract the raw data."""
|
||||
ids = (
|
||||
"DFF"
|
||||
if query.effr_only is True
|
||||
else ",".join(list(EFFR_SERIES_IDS.values()))
|
||||
)
|
||||
try:
|
||||
response = await FredSeriesFetcher.fetch_data(
|
||||
dict(
|
||||
symbol=ids,
|
||||
start_date=query.start_date,
|
||||
end_date=query.end_date,
|
||||
frequency=query.frequency,
|
||||
aggregation_method=query.aggregation_method,
|
||||
transform=query.transform,
|
||||
),
|
||||
credentials,
|
||||
)
|
||||
except Exception as e:
|
||||
raise e from e
|
||||
|
||||
return {
|
||||
"metadata": response.metadata,
|
||||
"data": [d.model_dump() for d in response.result],
|
||||
}
|
||||
|
||||
@staticmethod
|
||||
def transform_data(
|
||||
query: FredFederalFundsRateQueryParams, data: dict, **kwargs: Any
|
||||
) -> AnnotatedResult[List[FredFederalFundsRateData]]:
|
||||
"""Transform and validate the data."""
|
||||
metadata = data.get("metadata", {})
|
||||
df = DataFrame(data.get("data", [])).dropna()
|
||||
if df.empty:
|
||||
raise EmptyDataError(
|
||||
"There was an error with the request and it was returned empty."
|
||||
)
|
||||
col_map = {v: k for k, v in EFFR_SERIES_IDS.items()}
|
||||
df.date = df.date.apply(to_datetime)
|
||||
df = df.set_index("date")
|
||||
df = df.rename(columns=col_map)
|
||||
for col in df.columns:
|
||||
df[col] = (
|
||||
df[col].astype(float) / 100
|
||||
if col != "volume"
|
||||
else df[col].astype(float)
|
||||
)
|
||||
records = df.reset_index().to_dict(orient="records")
|
||||
|
||||
return AnnotatedResult(
|
||||
result=[FredFederalFundsRateData.model_validate(d) for d in records],
|
||||
metadata={col_map[k]: v for k, v in metadata.items()},
|
||||
)
|
||||
@@ -0,0 +1,143 @@
|
||||
"""FRED High Quality Market Corporate Bond Model."""
|
||||
|
||||
import asyncio
|
||||
from datetime import date as dateType
|
||||
from typing import Any, Dict, List, Literal, Optional
|
||||
|
||||
from dateutil import parser
|
||||
from openbb_core.provider.abstract.fetcher import Fetcher
|
||||
from openbb_core.provider.standard_models.high_quality_market import (
|
||||
HighQualityMarketCorporateBondData,
|
||||
HighQualityMarketCorporateBondQueryParams,
|
||||
)
|
||||
from openbb_core.provider.utils.helpers import amake_request
|
||||
from pandas import Categorical, DataFrame
|
||||
from pydantic import Field, field_validator
|
||||
|
||||
|
||||
class FredHighQualityMarketCorporateBondQueryParams(
|
||||
HighQualityMarketCorporateBondQueryParams
|
||||
):
|
||||
"""FRED High Quality Market Corporate Bond Query."""
|
||||
|
||||
__json_schema_extra__ = {"date": {"multiple_items_allowed": True}}
|
||||
|
||||
yield_curve: Literal["spot", "par"] = Field(
|
||||
default="spot",
|
||||
description="The yield curve type.",
|
||||
json_schema_extra={"choices": ["spot", "par"]},
|
||||
)
|
||||
|
||||
@field_validator("date", mode="before", check_fields=False)
|
||||
@classmethod
|
||||
def validate_date(cls, v):
|
||||
"""Validate the dates entered."""
|
||||
if v is None:
|
||||
return None
|
||||
if isinstance(v, (list, dateType)):
|
||||
return v
|
||||
new_dates: List = []
|
||||
date_param = v
|
||||
if isinstance(date_param, str):
|
||||
new_dates = date_param.split(",")
|
||||
elif isinstance(date_param, dateType):
|
||||
new_dates.append(date_param.strftime("%Y-%m-%d"))
|
||||
elif isinstance(date_param, list) and isinstance(date_param[0], dateType):
|
||||
new_dates = [d.strftime("%Y-%m-%d") for d in new_dates]
|
||||
else:
|
||||
new_dates = date_param
|
||||
return ",".join(new_dates) if len(new_dates) > 1 else new_dates[0]
|
||||
|
||||
|
||||
class FredHighQualityMarketCorporateBondData(HighQualityMarketCorporateBondData):
|
||||
"""FRED High Quality Market Corporate Bond Data."""
|
||||
|
||||
|
||||
class FredHighQualityMarketCorporateBondFetcher(
|
||||
Fetcher[
|
||||
FredHighQualityMarketCorporateBondQueryParams,
|
||||
List[FredHighQualityMarketCorporateBondData],
|
||||
]
|
||||
):
|
||||
"""FRED High Quality Market Corporate Bond Fetcher."""
|
||||
|
||||
@staticmethod
|
||||
def transform_query(
|
||||
params: Dict[str, Any]
|
||||
) -> FredHighQualityMarketCorporateBondQueryParams:
|
||||
"""Transform query."""
|
||||
return FredHighQualityMarketCorporateBondQueryParams(**params)
|
||||
|
||||
@staticmethod
|
||||
async def aextract_data(
|
||||
query: FredHighQualityMarketCorporateBondQueryParams,
|
||||
credentials: Optional[Dict[str, str]],
|
||||
**kwargs: Any,
|
||||
) -> List[Dict]:
|
||||
"""Extract data."""
|
||||
api_key = credentials.get("fred_api_key") if credentials else ""
|
||||
|
||||
element_id = "219299" if query.yield_curve == "spot" else "219294"
|
||||
dates: List = [""]
|
||||
if query.date:
|
||||
if query.date and isinstance(query.date, dateType):
|
||||
query.date = query.date.strftime("%Y-%m-%d")
|
||||
dates = query.date.split(",")
|
||||
dates = [d.replace(d[-2:], "01") if len(d) == 10 else d for d in dates]
|
||||
dates = list(set(dates))
|
||||
dates = (
|
||||
[f"&observation_date={date}" for date in dates if date] if dates else ""
|
||||
)
|
||||
URLS = [
|
||||
f"https://api.stlouisfed.org/fred/release/tables?release_id=402&element_id={element_id}"
|
||||
+ f"{date}&include_observation_values=true&api_key={api_key}"
|
||||
+ "&file_type=json"
|
||||
for date in dates
|
||||
]
|
||||
results = []
|
||||
|
||||
async def get_one(URL):
|
||||
"""Get the observations for a single date."""
|
||||
data = await amake_request(URL)
|
||||
if data:
|
||||
elements = {k: v for k, v in data["elements"].items()}
|
||||
for k, v in elements.items():
|
||||
value = v.get("observation_value")
|
||||
if not value:
|
||||
continue
|
||||
maturity = v.get("name").lower().split("-")
|
||||
results.append(
|
||||
{
|
||||
"date": parser.parse(
|
||||
v.get("observation_date"),
|
||||
).date(),
|
||||
"rate": float(value) / 100,
|
||||
"maturity": (maturity[1] + "_" + maturity[0]).replace(
|
||||
" ", ""
|
||||
),
|
||||
}
|
||||
)
|
||||
|
||||
await asyncio.gather(*[get_one(URL) for URL in URLS])
|
||||
|
||||
return results
|
||||
|
||||
@staticmethod
|
||||
def transform_data(
|
||||
query: FredHighQualityMarketCorporateBondQueryParams,
|
||||
data: List[Dict],
|
||||
**kwargs: Any,
|
||||
) -> List[FredHighQualityMarketCorporateBondData]:
|
||||
"""Transform data."""
|
||||
df = DataFrame(data)
|
||||
df["maturity_int"] = df["maturity"].str.replace("year_", "").astype(float)
|
||||
maturity_categories = sorted(df.maturity_int.unique().tolist())
|
||||
df["maturity_int"] = Categorical(
|
||||
df["maturity_int"], categories=maturity_categories, ordered=True
|
||||
)
|
||||
df = df.sort_values(by=["date", "maturity_int"]).reset_index(drop=True)
|
||||
df = df.drop(columns=["maturity_int"])
|
||||
records = df.to_dict("records")
|
||||
return [
|
||||
FredHighQualityMarketCorporateBondData.model_validate(d) for d in records
|
||||
]
|
||||
@@ -1,110 +0,0 @@
|
||||
"""FRED High Quality Market Corporate Bond Model."""
|
||||
|
||||
from datetime import datetime, timedelta
|
||||
from typing import Any, Dict, List, Optional
|
||||
|
||||
from openbb_core.app.model.abstract.error import OpenBBError
|
||||
from openbb_core.provider.abstract.fetcher import Fetcher
|
||||
from openbb_core.provider.standard_models.hqm import (
|
||||
HighQualityMarketCorporateBondData,
|
||||
HighQualityMarketCorporateBondQueryParams,
|
||||
)
|
||||
from openbb_fred.utils.fred_base import Fred
|
||||
from openbb_fred.utils.fred_helpers import (
|
||||
YIELD_CURVE_SERIES_CORPORATE_PAR,
|
||||
YIELD_CURVE_SERIES_CORPORATE_SPOT,
|
||||
)
|
||||
from pydantic import Field, field_validator
|
||||
|
||||
|
||||
class FREDHighQualityMarketCorporateBondQueryParams(
|
||||
HighQualityMarketCorporateBondQueryParams
|
||||
):
|
||||
"""FRED High Quality Market Corporate Bond Query."""
|
||||
|
||||
|
||||
class FREDHighQualityMarketCorporateBondData(HighQualityMarketCorporateBondData):
|
||||
"""FRED High Quality Market Corporate Bond Data."""
|
||||
|
||||
__alias_dict__ = {"rate": "value"}
|
||||
|
||||
series_id: str = Field(description="FRED series id.")
|
||||
|
||||
@field_validator("rate", mode="before", check_fields=False)
|
||||
@classmethod
|
||||
def value_validate(cls, v):
|
||||
"""Validate rate."""
|
||||
try:
|
||||
return float(v)
|
||||
except ValueError:
|
||||
return None
|
||||
|
||||
|
||||
class FREDHighQualityMarketCorporateBondFetcher(
|
||||
Fetcher[
|
||||
FREDHighQualityMarketCorporateBondQueryParams,
|
||||
List[FREDHighQualityMarketCorporateBondData],
|
||||
]
|
||||
):
|
||||
"""Transform the query, extract and transform the data from the FRED endpoints."""
|
||||
|
||||
@staticmethod
|
||||
def transform_query(
|
||||
params: Dict[str, Any]
|
||||
) -> FREDHighQualityMarketCorporateBondQueryParams:
|
||||
"""Transform query."""
|
||||
return FREDHighQualityMarketCorporateBondQueryParams(**params)
|
||||
|
||||
@staticmethod
|
||||
def extract_data(
|
||||
query: FREDHighQualityMarketCorporateBondQueryParams,
|
||||
credentials: Optional[Dict[str, str]],
|
||||
**kwargs: Any
|
||||
) -> list:
|
||||
"""Extract data."""
|
||||
key = credentials.get("fred_api_key") if credentials else ""
|
||||
fred = Fred(key)
|
||||
|
||||
data = []
|
||||
|
||||
today = datetime.today().date()
|
||||
if query.date and query.date >= today:
|
||||
raise OpenBBError("Date must be in the past.")
|
||||
|
||||
start_date = (
|
||||
query.date - timedelta(days=50)
|
||||
if query.date
|
||||
else today - timedelta(days=50)
|
||||
)
|
||||
|
||||
if query.yield_curve == "spot":
|
||||
fred_series = YIELD_CURVE_SERIES_CORPORATE_SPOT
|
||||
elif query.yield_curve == "par":
|
||||
fred_series = YIELD_CURVE_SERIES_CORPORATE_PAR
|
||||
else:
|
||||
raise OpenBBError("Invalid yield curve type.")
|
||||
|
||||
for maturity, id_ in fred_series.items():
|
||||
d = fred.get_series(
|
||||
series_id=id_,
|
||||
start_date=start_date,
|
||||
**kwargs,
|
||||
)
|
||||
for observation in d:
|
||||
series_data = {
|
||||
"series_id": id_,
|
||||
"maturity": maturity,
|
||||
"yield_curve": query.yield_curve,
|
||||
"date": observation["date"],
|
||||
"value": observation["value"],
|
||||
}
|
||||
data.append(series_data)
|
||||
|
||||
return data
|
||||
|
||||
@staticmethod
|
||||
def transform_data(
|
||||
query: FREDHighQualityMarketCorporateBondQueryParams, data: list, **kwargs: Any
|
||||
) -> List[FREDHighQualityMarketCorporateBondData]:
|
||||
"""Transform data."""
|
||||
return [FREDHighQualityMarketCorporateBondData.model_validate(d) for d in data]
|
||||
@@ -0,0 +1,196 @@
|
||||
"""FRED Overnight Bank Funding Rate Model."""
|
||||
|
||||
from typing import Any, Dict, List, Literal, Optional, Union
|
||||
|
||||
from openbb_core.provider.abstract.annotated_result import AnnotatedResult
|
||||
from openbb_core.provider.abstract.fetcher import Fetcher
|
||||
from openbb_core.provider.standard_models.overnight_bank_funding_rate import (
|
||||
OvernightBankFundingRateData,
|
||||
OvernightBankFundingRateQueryParams,
|
||||
)
|
||||
from openbb_core.provider.utils.errors import EmptyDataError
|
||||
from openbb_fred.models.series import FredSeriesFetcher
|
||||
from pydantic import Field, field_validator
|
||||
|
||||
OBFR_ID_TO_FIELD = {
|
||||
"OBFR": "rate",
|
||||
"OBFR1": "percentile_1",
|
||||
"OBFR25": "percentile_25",
|
||||
"OBFR75": "percentile_75",
|
||||
"OBFR99": "percentile_99",
|
||||
"OBFRVOL": "volume",
|
||||
}
|
||||
ALL_IDS = list(OBFR_ID_TO_FIELD)
|
||||
|
||||
|
||||
class FredOvernightBankFundingRateQueryParams(OvernightBankFundingRateQueryParams):
|
||||
"""FRED Overnight Bank Funding Rate Query Params."""
|
||||
|
||||
frequency: Union[
|
||||
None,
|
||||
Literal[
|
||||
"a",
|
||||
"q",
|
||||
"m",
|
||||
"w",
|
||||
"wef",
|
||||
"weth",
|
||||
"wew",
|
||||
"wetu",
|
||||
"wem",
|
||||
"wesu",
|
||||
"wesa",
|
||||
"bwew",
|
||||
"bwem",
|
||||
],
|
||||
] = Field(
|
||||
default=None,
|
||||
description="""
|
||||
Frequency aggregation to convert daily data to lower frequency.
|
||||
a = Annual
|
||||
q = Quarterly
|
||||
m = Monthly
|
||||
w = Weekly
|
||||
wef = Weekly, Ending Friday
|
||||
weth = Weekly, Ending Thursday
|
||||
wew = Weekly, Ending Wednesday
|
||||
wetu = Weekly, Ending Tuesday
|
||||
wem = Weekly, Ending Monday
|
||||
wesu = Weekly, Ending Sunday
|
||||
wesa = Weekly, Ending Saturday
|
||||
bwew = Biweekly, Ending Wednesday
|
||||
bwem = Biweekly, Ending Monday
|
||||
""",
|
||||
json_schema_extra={
|
||||
"choices": [
|
||||
"a",
|
||||
"q",
|
||||
"m",
|
||||
"w",
|
||||
"wef",
|
||||
"weth",
|
||||
"wew",
|
||||
"wetu",
|
||||
"wem",
|
||||
"wesu",
|
||||
"wesa",
|
||||
"bwew",
|
||||
"bwem",
|
||||
]
|
||||
},
|
||||
)
|
||||
aggregation_method: Union[None, Literal["avg", "sum", "eop"]] = Field(
|
||||
default=None,
|
||||
description="""
|
||||
A key that indicates the aggregation method used for frequency aggregation.
|
||||
avg = Average
|
||||
sum = Sum
|
||||
eop = End of Period
|
||||
""",
|
||||
json_schema_extra={"choices": ["avg", "sum", "eop"]},
|
||||
)
|
||||
transform: Union[
|
||||
None, Literal["chg", "ch1", "pch", "pc1", "pca", "cch", "cca", "log"]
|
||||
] = Field(
|
||||
default=None,
|
||||
description="""
|
||||
Transformation type
|
||||
None = No transformation
|
||||
chg = Change
|
||||
ch1 = Change from Year Ago
|
||||
pch = Percent Change
|
||||
pc1 = Percent Change from Year Ago
|
||||
pca = Compounded Annual Rate of Change
|
||||
cch = Continuously Compounded Rate of Change
|
||||
cca = Continuously Compounded Annual Rate of Change
|
||||
log = Natural Log
|
||||
""",
|
||||
json_schema_extra={
|
||||
"choices": ["chg", "ch1", "pch", "pc1", "pca", "cch", "cca", "log"]
|
||||
},
|
||||
)
|
||||
|
||||
|
||||
class FredOvernightBankFundingRateData(OvernightBankFundingRateData):
|
||||
"""Fred Overnight Bank Funding Rate Data."""
|
||||
|
||||
__alias_dict__ = {
|
||||
"rate": "OBFR",
|
||||
"percentile_1": "OBFR1",
|
||||
"percentile_25": "OBFR25",
|
||||
"percentile_75": "OBFR75",
|
||||
"percentile_99": "OBFR99",
|
||||
"volume": "OBFRVOL",
|
||||
}
|
||||
|
||||
@field_validator(
|
||||
"rate",
|
||||
"percentile_1",
|
||||
"percentile_25",
|
||||
"percentile_75",
|
||||
"percentile_99",
|
||||
mode="before",
|
||||
check_fields=False,
|
||||
)
|
||||
@classmethod
|
||||
def normalize_percent(cls, v):
|
||||
"""Normalize percent."""
|
||||
return float(v) / 100 if v else None
|
||||
|
||||
|
||||
class FredOvernightBankFundingRateFetcher(
|
||||
Fetcher[
|
||||
FredOvernightBankFundingRateQueryParams, List[FredOvernightBankFundingRateData]
|
||||
]
|
||||
):
|
||||
"""Fred Overnight Bank Funding Rate Fetcher."""
|
||||
|
||||
@staticmethod
|
||||
def transform_query(
|
||||
params: Dict[str, Any]
|
||||
) -> FredOvernightBankFundingRateQueryParams:
|
||||
"""Transform query."""
|
||||
return FredOvernightBankFundingRateQueryParams(**params)
|
||||
|
||||
@staticmethod
|
||||
async def aextract_data(
|
||||
query: FredOvernightBankFundingRateQueryParams,
|
||||
credentials: Optional[Dict[str, str]],
|
||||
**kwargs: Any
|
||||
) -> Dict:
|
||||
"""Extract data."""
|
||||
try:
|
||||
response = await FredSeriesFetcher.fetch_data(
|
||||
dict(
|
||||
symbol=",".join(ALL_IDS),
|
||||
start_date=query.start_date,
|
||||
end_date=query.end_date,
|
||||
frequency=query.frequency,
|
||||
aggregation_method=query.aggregation_method,
|
||||
transform=query.transform,
|
||||
),
|
||||
credentials,
|
||||
)
|
||||
except Exception as e:
|
||||
raise e from e
|
||||
|
||||
return {
|
||||
"metadata": response.metadata,
|
||||
"data": [d.model_dump() for d in response.result],
|
||||
}
|
||||
|
||||
@staticmethod
|
||||
def transform_data(
|
||||
query: FredOvernightBankFundingRateQueryParams, data: dict, **kwargs: Any
|
||||
) -> AnnotatedResult[List[FredOvernightBankFundingRateData]]:
|
||||
"""Transform data"""
|
||||
if not data:
|
||||
raise EmptyDataError("The request was returned empty.")
|
||||
return AnnotatedResult(
|
||||
result=[
|
||||
FredOvernightBankFundingRateData.model_validate(d)
|
||||
for d in data.get("data", [])
|
||||
if d.get("OBFR")
|
||||
],
|
||||
metadata=data.get("metadata", {}),
|
||||
)
|
||||
216
openbb_platform/providers/fred/openbb_fred/models/sofr.py
Normal file
216
openbb_platform/providers/fred/openbb_fred/models/sofr.py
Normal file
@@ -0,0 +1,216 @@
|
||||
"""FRED SOFR Model."""
|
||||
|
||||
from typing import Any, Dict, List, Literal, Optional, Union
|
||||
|
||||
from openbb_core.provider.abstract.annotated_result import AnnotatedResult
|
||||
from openbb_core.provider.abstract.fetcher import Fetcher
|
||||
from openbb_core.provider.standard_models.sofr import SOFRData, SOFRQueryParams
|
||||
from openbb_core.provider.utils.errors import EmptyDataError
|
||||
from openbb_fred.models.series import FredSeriesFetcher
|
||||
from pydantic import Field, field_validator
|
||||
|
||||
SOFR_ID_TO_FIELD = {
|
||||
"SOFR": "rate",
|
||||
"SOFR1": "percentile_1",
|
||||
"SOFR25": "percentile_25",
|
||||
"SOFR75": "percentile_75",
|
||||
"SOFR99": "percentile_99",
|
||||
"SOFRVOL": "volume",
|
||||
"SOFR30DAYAVG": "average_30d",
|
||||
"SOFR90DAYAVG": "average_90d",
|
||||
"SOFR180DAYAVG": "average_180d",
|
||||
"SOFRINDEX": "index",
|
||||
}
|
||||
|
||||
|
||||
class FREDSOFRQueryParams(SOFRQueryParams):
|
||||
"""FRED SOFR Query."""
|
||||
|
||||
frequency: Union[
|
||||
None,
|
||||
Literal[
|
||||
"a",
|
||||
"q",
|
||||
"m",
|
||||
"w",
|
||||
"wef",
|
||||
"weth",
|
||||
"wew",
|
||||
"wetu",
|
||||
"wem",
|
||||
"wesu",
|
||||
"wesa",
|
||||
"bwew",
|
||||
"bwem",
|
||||
],
|
||||
] = Field(
|
||||
default=None,
|
||||
description="""
|
||||
Frequency aggregation to convert daily data to lower frequency.
|
||||
a = Annual
|
||||
q = Quarterly
|
||||
m = Monthly
|
||||
w = Weekly
|
||||
wef = Weekly, Ending Friday
|
||||
weth = Weekly, Ending Thursday
|
||||
wew = Weekly, Ending Wednesday
|
||||
wetu = Weekly, Ending Tuesday
|
||||
wem = Weekly, Ending Monday
|
||||
wesu = Weekly, Ending Sunday
|
||||
wesa = Weekly, Ending Saturday
|
||||
bwew = Biweekly, Ending Wednesday
|
||||
bwem = Biweekly, Ending Monday
|
||||
""",
|
||||
json_schema_extra={
|
||||
"choices": [
|
||||
"a",
|
||||
"q",
|
||||
"m",
|
||||
"w",
|
||||
"wef",
|
||||
"weth",
|
||||
"wew",
|
||||
"wetu",
|
||||
"wem",
|
||||
"wesu",
|
||||
"wesa",
|
||||
"bwew",
|
||||
"bwem",
|
||||
]
|
||||
},
|
||||
)
|
||||
aggregation_method: Union[None, Literal["avg", "sum", "eop"]] = Field(
|
||||
default=None,
|
||||
description="""
|
||||
A key that indicates the aggregation method used for frequency aggregation.
|
||||
avg = Average
|
||||
sum = Sum
|
||||
eop = End of Period
|
||||
""",
|
||||
json_schema_extra={"choices": ["avg", "sum", "eop"]},
|
||||
)
|
||||
transform: Union[
|
||||
None, Literal["chg", "ch1", "pch", "pc1", "pca", "cch", "cca", "log"]
|
||||
] = Field(
|
||||
default=None,
|
||||
description="""
|
||||
Transformation type
|
||||
None = No transformation
|
||||
chg = Change
|
||||
ch1 = Change from Year Ago
|
||||
pch = Percent Change
|
||||
pc1 = Percent Change from Year Ago
|
||||
pca = Compounded Annual Rate of Change
|
||||
cch = Continuously Compounded Rate of Change
|
||||
cca = Continuously Compounded Annual Rate of Change
|
||||
log = Natural Log
|
||||
""",
|
||||
json_schema_extra={
|
||||
"choices": ["chg", "ch1", "pch", "pc1", "pca", "cch", "cca", "log"]
|
||||
},
|
||||
)
|
||||
|
||||
|
||||
class FREDSOFRData(SOFRData):
|
||||
"""FRED SOFR Data."""
|
||||
|
||||
__alias_dict__ = {
|
||||
"rate": "SOFR",
|
||||
"percentile_1": "SOFR1",
|
||||
"percentile_25": "SOFR25",
|
||||
"percentile_75": "SOFR75",
|
||||
"percentile_99": "SOFR99",
|
||||
"volume": "SOFRVOL",
|
||||
"average_30d": "SOFR30DAYAVG",
|
||||
"average_90d": "SOFR90DAYAVG",
|
||||
"average_180d": "SOFR180DAYAVG",
|
||||
"index": "SOFRINDEX",
|
||||
}
|
||||
|
||||
average_30d: Optional[float] = Field(
|
||||
default=None,
|
||||
description="30-Day Average SOFR",
|
||||
json_schema_extra={"x-unit_measurement": "percent", "x-frontend_multiply": 100},
|
||||
)
|
||||
average_90d: Optional[float] = Field(
|
||||
default=None,
|
||||
description="90-Day Average SOFR",
|
||||
json_schema_extra={"x-unit_measurement": "percent", "x-frontend_multiply": 100},
|
||||
)
|
||||
average_180d: Optional[float] = Field(
|
||||
default=None,
|
||||
description="180-Day Average SOFR",
|
||||
json_schema_extra={"x-unit_measurement": "percent", "x-frontend_multiply": 100},
|
||||
)
|
||||
index: Optional[float] = Field(
|
||||
default=None,
|
||||
description="SOFR index as 2018-04-02 = 1",
|
||||
)
|
||||
|
||||
@field_validator(
|
||||
"rate",
|
||||
"percentile_1",
|
||||
"percentile_25",
|
||||
"percentile_75",
|
||||
"percentile_99",
|
||||
"average_30d",
|
||||
"average_90d",
|
||||
"average_180d",
|
||||
mode="before",
|
||||
check_fields=False,
|
||||
)
|
||||
@classmethod
|
||||
def normalize_percent(cls, v):
|
||||
"""Normalize percent."""
|
||||
return float(v) / 100 if v else None
|
||||
|
||||
|
||||
class FREDSOFRFetcher(Fetcher[FREDSOFRQueryParams, List[FREDSOFRData]]):
|
||||
"""FRED SOFR Fetcher."""
|
||||
|
||||
@staticmethod
|
||||
def transform_query(params: Dict[str, Any]) -> FREDSOFRQueryParams:
|
||||
"""Transform query."""
|
||||
return FREDSOFRQueryParams(**params)
|
||||
|
||||
@staticmethod
|
||||
async def aextract_data(
|
||||
query: FREDSOFRQueryParams, credentials: Optional[Dict[str, str]], **kwargs: Any
|
||||
) -> Dict:
|
||||
"""Extract data."""
|
||||
ids = list(SOFR_ID_TO_FIELD)
|
||||
try:
|
||||
response = await FredSeriesFetcher.fetch_data(
|
||||
dict(
|
||||
symbol=",".join(ids),
|
||||
start_date=query.start_date if query.start_date else "2018-04-02",
|
||||
end_date=query.end_date,
|
||||
frequency=query.frequency,
|
||||
aggregation_method=query.aggregation_method,
|
||||
transform=query.transform,
|
||||
),
|
||||
credentials,
|
||||
)
|
||||
except Exception as e:
|
||||
raise e from e
|
||||
|
||||
return {
|
||||
"metadata": response.metadata,
|
||||
"data": [d.model_dump() for d in response.result],
|
||||
}
|
||||
|
||||
@staticmethod
|
||||
def transform_data(
|
||||
query: FREDSOFRQueryParams, data: dict, **kwargs: Any
|
||||
) -> AnnotatedResult[List[FREDSOFRData]]:
|
||||
"""Transform data"""
|
||||
if not data:
|
||||
raise EmptyDataError("The request was returned empty.")
|
||||
return AnnotatedResult(
|
||||
result=[
|
||||
FREDSOFRData.model_validate(d)
|
||||
for d in data.get("data", [])
|
||||
if d.get("SOFR")
|
||||
],
|
||||
metadata=data.get("metadata", {}),
|
||||
)
|
||||
@@ -1,71 +0,0 @@
|
||||
"""FRED SOFR Model."""
|
||||
|
||||
from typing import Any, Dict, List, Literal, Optional
|
||||
|
||||
from openbb_core.provider.abstract.fetcher import Fetcher
|
||||
from openbb_core.provider.standard_models.sofr_rates import SOFRData, SOFRQueryParams
|
||||
from openbb_fred.utils.fred_base import Fred
|
||||
from pydantic import Field, field_validator
|
||||
|
||||
SOFR_PARAMETER_TO_FRED_ID = {
|
||||
"overnight": "SOFR",
|
||||
"30_day": "SOFR30DAYAVG",
|
||||
"90_day": "SOFR90DAYAVG",
|
||||
"180_day": "SOFR180DAYAVG",
|
||||
"index": "SOFRINDEX",
|
||||
}
|
||||
|
||||
|
||||
class FREDSOFRQueryParams(SOFRQueryParams):
|
||||
"""FRED SOFR Query."""
|
||||
|
||||
period: Literal["overnight", "30_day", "90_day", "180_day", "index"] = Field(
|
||||
default="overnight", description="Period of SOFR rate."
|
||||
)
|
||||
|
||||
|
||||
class FREDSOFRData(SOFRData):
|
||||
"""FRED SOFR Data."""
|
||||
|
||||
__alias_dict__ = {"rate": "value"}
|
||||
|
||||
@field_validator("rate", mode="before", check_fields=False)
|
||||
@classmethod
|
||||
def value_validate(cls, v):
|
||||
"""Validate rate."""
|
||||
try:
|
||||
return float(v)
|
||||
except ValueError:
|
||||
return None
|
||||
|
||||
|
||||
class FREDSOFRFetcher(
|
||||
Fetcher[FREDSOFRQueryParams, List[Dict[str, List[FREDSOFRData]]]]
|
||||
):
|
||||
"""Transform the query, extract and transform the data from the FRED endpoints."""
|
||||
|
||||
data_type = FREDSOFRData
|
||||
|
||||
@staticmethod
|
||||
def transform_query(params: Dict[str, Any]) -> FREDSOFRQueryParams:
|
||||
"""Transform query."""
|
||||
return FREDSOFRQueryParams(**params)
|
||||
|
||||
@staticmethod
|
||||
def extract_data(
|
||||
query: FREDSOFRQueryParams, credentials: Optional[Dict[str, str]], **kwargs: Any
|
||||
) -> dict:
|
||||
"""Extract data."""
|
||||
key = credentials.get("fred_api_key") if credentials else ""
|
||||
fred_series = SOFR_PARAMETER_TO_FRED_ID[query.period]
|
||||
fred = Fred(key)
|
||||
data = fred.get_series(fred_series, query.start_date, query.end_date, **kwargs)
|
||||
return data
|
||||
|
||||
@staticmethod
|
||||
def transform_data(
|
||||
query: FREDSOFRQueryParams, data: dict, **kwargs: Any
|
||||
) -> List[Dict[str, List[FREDSOFRData]]]:
|
||||
"""Transform data"""
|
||||
keys = ["date", "value"]
|
||||
return [FREDSOFRData(**{k: x[k] for k in keys}) for x in data]
|
||||
@@ -22,12 +22,27 @@ class FREDYieldCurveQueryParams(YieldCurveQueryParams):
|
||||
__json_schema_extra__ = {"date": {"multiple_items_allowed": True}}
|
||||
|
||||
yield_curve_type: Literal[
|
||||
"nominal", "real", "breakeven", "corporate_spot", "corporate_par"
|
||||
"nominal",
|
||||
"real",
|
||||
"breakeven",
|
||||
"treasury_minus_fed_funds",
|
||||
"corporate_spot",
|
||||
"corporate_par",
|
||||
] = Field(
|
||||
default="nominal",
|
||||
description="Yield curve type."
|
||||
+ " Nominal and Real Rates are available daily, others are monthly."
|
||||
+ " The closest date to the requested date will be returned.",
|
||||
json_schema_extra={
|
||||
"choices": [
|
||||
"nominal",
|
||||
"real",
|
||||
"breakeven",
|
||||
"treasury_minus_fed_funds",
|
||||
"corporate_spot",
|
||||
"corporate_par",
|
||||
]
|
||||
},
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -1,241 +0,0 @@
|
||||
Maturity,Category,Grade,Title,Description,FRED Series ID
|
||||
overnight,asset_backed,aa,Overnight AA Asset-Backed Commercial Paper Interest Rate,"To calculate CP interest rate indexes, the Federal Reserve Board uses DTCC's data for certain trades to estimate a relation between interest rates on the traded securities and their maturities. In this calculation, the trades represent sales of CP by dealers or direct issuers to investors (that is, the offer side) and are weighted according to the face value of the CP so that larger trades have a greater effect on the resulting index. With the relation between interest rates and maturities established, the reported interest rates represent the estimated interest rates for the specified maturities.
|
||||
|
||||
Interest rates calculated through the process described above are a statistical aggregation of numerous data reflecting many trades for different issuers, maturities, and so forth. Accordingly, the reported interest rates purport to reflect activity in certain segments of the market, but they may not equal interest rates for any specific trade. As with other statistical processes, this one is designed to minimize the difference between the interest rates at which actual trades occur and the estimated interest rates.
|
||||
|
||||
CP trades included in the calculation are chosen according to the specifications listed in the table below. Data to assess CP trades relative to these criteria are updated daily from numerous publicly available sources. Standard Industrial Classification (SIC) code classifications are taken from the Securities and Exchange Commission (SEC) Directory of Companies Required to File Annual Reports with the SEC. When an issuer's primary SIC code is not reported in the SEC directory, the primary SIC code reported in the issuer's financial reports is used; otherwise, SIC codes are determined upon consultation with the Office of Management and Budget's Standard Industrial Classification Manual or its Supplement.
|
||||
|
||||
For a discussion of econometric techniques for fitting the term structure of interest rates, including bibliographic information, see, for example, William S. Cleveland, 1979, ""Robust Locally Weighted Regression and Smoothing Scatterplots,"" Journal of the American Statistical Association, 74, 829-36, or William S. Cleveland, Susan J. Devlin, and Eric Grosse, 1988, ""Regression by Local Fitting,"" Journal of Econometrics, 37, 87-114.
|
||||
|
||||
Source: https://www.federalreserve.gov/releases/cp/about.htm
|
||||
",RIFSPPAAAD01NB
|
||||
7d,asset_backed,aa,7-Day AA Asset-Backed Commercial Paper Interest Rate,"To calculate CP interest rate indexes, the Federal Reserve Board uses DTCC's data for certain trades to estimate a relation between interest rates on the traded securities and their maturities. In this calculation, the trades represent sales of CP by dealers or direct issuers to investors (that is, the offer side) and are weighted according to the face value of the CP so that larger trades have a greater effect on the resulting index. With the relation between interest rates and maturities established, the reported interest rates represent the estimated interest rates for the specified maturities.
|
||||
|
||||
Interest rates calculated through the process described above are a statistical aggregation of numerous data reflecting many trades for different issuers, maturities, and so forth. Accordingly, the reported interest rates purport to reflect activity in certain segments of the market, but they may not equal interest rates for any specific trade. As with other statistical processes, this one is designed to minimize the difference between the interest rates at which actual trades occur and the estimated interest rates.
|
||||
|
||||
CP trades included in the calculation are chosen according to the specifications listed in the table below. Data to assess CP trades relative to these criteria are updated daily from numerous publicly available sources. Standard Industrial Classification (SIC) code classifications are taken from the Securities and Exchange Commission (SEC) Directory of Companies Required to File Annual Reports with the SEC. When an issuer's primary SIC code is not reported in the SEC directory, the primary SIC code reported in the issuer's financial reports is used; otherwise, SIC codes are determined upon consultation with the Office of Management and Budget's Standard Industrial Classification Manual or its Supplement.
|
||||
|
||||
For a discussion of econometric techniques for fitting the term structure of interest rates, including bibliographic information, see, for example, William S. Cleveland, 1979, ""Robust Locally Weighted Regression and Smoothing Scatterplots,"" Journal of the American Statistical Association, 74, 829-36, or William S. Cleveland, Susan J. Devlin, and Eric Grosse, 1988, ""Regression by Local Fitting,"" Journal of Econometrics, 37, 87-114.
|
||||
|
||||
Source: https://www.federalreserve.gov/releases/cp/about.htm
|
||||
",RIFSPPAAAD07NB
|
||||
15d,asset_backed,aa,15-Day AA Asset-Backed Commercial Paper Interest Rate,"To calculate CP interest rate indexes, the Federal Reserve Board uses DTCC's data for certain trades to estimate a relation between interest rates on the traded securities and their maturities. In this calculation, the trades represent sales of CP by dealers or direct issuers to investors (that is, the offer side) and are weighted according to the face value of the CP so that larger trades have a greater effect on the resulting index. With the relation between interest rates and maturities established, the reported interest rates represent the estimated interest rates for the specified maturities.
|
||||
|
||||
Interest rates calculated through the process described above are a statistical aggregation of numerous data reflecting many trades for different issuers, maturities, and so forth. Accordingly, the reported interest rates purport to reflect activity in certain segments of the market, but they may not equal interest rates for any specific trade. As with other statistical processes, this one is designed to minimize the difference between the interest rates at which actual trades occur and the estimated interest rates.
|
||||
|
||||
CP trades included in the calculation are chosen according to the specifications listed in the table below. Data to assess CP trades relative to these criteria are updated daily from numerous publicly available sources. Standard Industrial Classification (SIC) code classifications are taken from the Securities and Exchange Commission (SEC) Directory of Companies Required to File Annual Reports with the SEC. When an issuer's primary SIC code is not reported in the SEC directory, the primary SIC code reported in the issuer's financial reports is used; otherwise, SIC codes are determined upon consultation with the Office of Management and Budget's Standard Industrial Classification Manual or its Supplement.
|
||||
|
||||
For a discussion of econometric techniques for fitting the term structure of interest rates, including bibliographic information, see, for example, William S. Cleveland, 1979, ""Robust Locally Weighted Regression and Smoothing Scatterplots,"" Journal of the American Statistical Association, 74, 829-36, or William S. Cleveland, Susan J. Devlin, and Eric Grosse, 1988, ""Regression by Local Fitting,"" Journal of Econometrics, 37, 87-114.
|
||||
|
||||
Source: https://www.federalreserve.gov/releases/cp/about.htm
|
||||
",RIFSPPAAAD15NB
|
||||
30d,asset_backed,aa,30-Day AA Asset-Backed Commercial Paper Interest Rate,"To calculate CP interest rate indexes, the Federal Reserve Board uses DTCC's data for certain trades to estimate a relation between interest rates on the traded securities and their maturities. In this calculation, the trades represent sales of CP by dealers or direct issuers to investors (that is, the offer side) and are weighted according to the face value of the CP so that larger trades have a greater effect on the resulting index. With the relation between interest rates and maturities established, the reported interest rates represent the estimated interest rates for the specified maturities.
|
||||
|
||||
Interest rates calculated through the process described above are a statistical aggregation of numerous data reflecting many trades for different issuers, maturities, and so forth. Accordingly, the reported interest rates purport to reflect activity in certain segments of the market, but they may not equal interest rates for any specific trade. As with other statistical processes, this one is designed to minimize the difference between the interest rates at which actual trades occur and the estimated interest rates.
|
||||
|
||||
CP trades included in the calculation are chosen according to the specifications listed in the table below. Data to assess CP trades relative to these criteria are updated daily from numerous publicly available sources. Standard Industrial Classification (SIC) code classifications are taken from the Securities and Exchange Commission (SEC) Directory of Companies Required to File Annual Reports with the SEC. When an issuer's primary SIC code is not reported in the SEC directory, the primary SIC code reported in the issuer's financial reports is used; otherwise, SIC codes are determined upon consultation with the Office of Management and Budget's Standard Industrial Classification Manual or its Supplement.
|
||||
|
||||
For a discussion of econometric techniques for fitting the term structure of interest rates, including bibliographic information, see, for example, William S. Cleveland, 1979, ""Robust Locally Weighted Regression and Smoothing Scatterplots,"" Journal of the American Statistical Association, 74, 829-36, or William S. Cleveland, Susan J. Devlin, and Eric Grosse, 1988, ""Regression by Local Fitting,"" Journal of Econometrics, 37, 87-114.
|
||||
|
||||
Source: https://www.federalreserve.gov/releases/cp/about.htm
|
||||
",RIFSPPAAAD30NB
|
||||
60d,asset_backed,aa,60-Day AA Asset-Backed Commercial Paper Interest Rate,"To calculate CP interest rate indexes, the Federal Reserve Board uses DTCC's data for certain trades to estimate a relation between interest rates on the traded securities and their maturities. In this calculation, the trades represent sales of CP by dealers or direct issuers to investors (that is, the offer side) and are weighted according to the face value of the CP so that larger trades have a greater effect on the resulting index. With the relation between interest rates and maturities established, the reported interest rates represent the estimated interest rates for the specified maturities.
|
||||
|
||||
Interest rates calculated through the process described above are a statistical aggregation of numerous data reflecting many trades for different issuers, maturities, and so forth. Accordingly, the reported interest rates purport to reflect activity in certain segments of the market, but they may not equal interest rates for any specific trade. As with other statistical processes, this one is designed to minimize the difference between the interest rates at which actual trades occur and the estimated interest rates.
|
||||
|
||||
CP trades included in the calculation are chosen according to the specifications listed in the table below. Data to assess CP trades relative to these criteria are updated daily from numerous publicly available sources. Standard Industrial Classification (SIC) code classifications are taken from the Securities and Exchange Commission (SEC) Directory of Companies Required to File Annual Reports with the SEC. When an issuer's primary SIC code is not reported in the SEC directory, the primary SIC code reported in the issuer's financial reports is used; otherwise, SIC codes are determined upon consultation with the Office of Management and Budget's Standard Industrial Classification Manual or its Supplement.
|
||||
|
||||
For a discussion of econometric techniques for fitting the term structure of interest rates, including bibliographic information, see, for example, William S. Cleveland, 1979, ""Robust Locally Weighted Regression and Smoothing Scatterplots,"" Journal of the American Statistical Association, 74, 829-36, or William S. Cleveland, Susan J. Devlin, and Eric Grosse, 1988, ""Regression by Local Fitting,"" Journal of Econometrics, 37, 87-114.
|
||||
|
||||
Source: https://www.federalreserve.gov/releases/cp/about.htm
|
||||
",RIFSPPAAAD60NB
|
||||
90d,asset_backed,aa,90-Day AA Asset-Backed Commercial Paper Interest Rate,"To calculate CP interest rate indexes, the Federal Reserve Board uses DTCC's data for certain trades to estimate a relation between interest rates on the traded securities and their maturities. In this calculation, the trades represent sales of CP by dealers or direct issuers to investors (that is, the offer side) and are weighted according to the face value of the CP so that larger trades have a greater effect on the resulting index. With the relation between interest rates and maturities established, the reported interest rates represent the estimated interest rates for the specified maturities.
|
||||
|
||||
Interest rates calculated through the process described above are a statistical aggregation of numerous data reflecting many trades for different issuers, maturities, and so forth. Accordingly, the reported interest rates purport to reflect activity in certain segments of the market, but they may not equal interest rates for any specific trade. As with other statistical processes, this one is designed to minimize the difference between the interest rates at which actual trades occur and the estimated interest rates.
|
||||
|
||||
CP trades included in the calculation are chosen according to the specifications listed in the table below. Data to assess CP trades relative to these criteria are updated daily from numerous publicly available sources. Standard Industrial Classification (SIC) code classifications are taken from the Securities and Exchange Commission (SEC) Directory of Companies Required to File Annual Reports with the SEC. When an issuer's primary SIC code is not reported in the SEC directory, the primary SIC code reported in the issuer's financial reports is used; otherwise, SIC codes are determined upon consultation with the Office of Management and Budget's Standard Industrial Classification Manual or its Supplement.
|
||||
|
||||
For a discussion of econometric techniques for fitting the term structure of interest rates, including bibliographic information, see, for example, William S. Cleveland, 1979, ""Robust Locally Weighted Regression and Smoothing Scatterplots,"" Journal of the American Statistical Association, 74, 829-36, or William S. Cleveland, Susan J. Devlin, and Eric Grosse, 1988, ""Regression by Local Fitting,"" Journal of Econometrics, 37, 87-114.
|
||||
|
||||
Source: https://www.federalreserve.gov/releases/cp/about.htm
|
||||
",RIFSPPAAAD90NB
|
||||
overnight,financial,aa,Overnight AA Financial Commercial Paper Interest Rate,"To calculate CP interest rate indexes, the Federal Reserve Board uses DTCC's data for certain trades to estimate a relation between interest rates on the traded securities and their maturities. In this calculation, the trades represent sales of CP by dealers or direct issuers to investors (that is, the offer side) and are weighted according to the face value of the CP so that larger trades have a greater effect on the resulting index. With the relation between interest rates and maturities established, the reported interest rates represent the estimated interest rates for the specified maturities.
|
||||
|
||||
Interest rates calculated through the process described above are a statistical aggregation of numerous data reflecting many trades for different issuers, maturities, and so forth. Accordingly, the reported interest rates purport to reflect activity in certain segments of the market, but they may not equal interest rates for any specific trade. As with other statistical processes, this one is designed to minimize the difference between the interest rates at which actual trades occur and the estimated interest rates.
|
||||
|
||||
CP trades included in the calculation are chosen according to the specifications listed in the table below. Data to assess CP trades relative to these criteria are updated daily from numerous publicly available sources. Standard Industrial Classification (SIC) code classifications are taken from the Securities and Exchange Commission (SEC) Directory of Companies Required to File Annual Reports with the SEC. When an issuer's primary SIC code is not reported in the SEC directory, the primary SIC code reported in the issuer's financial reports is used; otherwise, SIC codes are determined upon consultation with the Office of Management and Budget's Standard Industrial Classification Manual or its Supplement.
|
||||
|
||||
For a discussion of econometric techniques for fitting the term structure of interest rates, including bibliographic information, see, for example, William S. Cleveland, 1979, ""Robust Locally Weighted Regression and Smoothing Scatterplots,"" Journal of the American Statistical Association, 74, 829-36, or William S. Cleveland, Susan J. Devlin, and Eric Grosse, 1988, ""Regression by Local Fitting,"" Journal of Econometrics, 37, 87-114.
|
||||
|
||||
Source: https://www.federalreserve.gov/releases/cp/about.htm
|
||||
",RIFSPPFAAD01NB
|
||||
7d,financial,aa,7-Day AA Financial Commercial Paper Interest Rate,"To calculate CP interest rate indexes, the Federal Reserve Board uses DTCC's data for certain trades to estimate a relation between interest rates on the traded securities and their maturities. In this calculation, the trades represent sales of CP by dealers or direct issuers to investors (that is, the offer side) and are weighted according to the face value of the CP so that larger trades have a greater effect on the resulting index. With the relation between interest rates and maturities established, the reported interest rates represent the estimated interest rates for the specified maturities.
|
||||
|
||||
Interest rates calculated through the process described above are a statistical aggregation of numerous data reflecting many trades for different issuers, maturities, and so forth. Accordingly, the reported interest rates purport to reflect activity in certain segments of the market, but they may not equal interest rates for any specific trade. As with other statistical processes, this one is designed to minimize the difference between the interest rates at which actual trades occur and the estimated interest rates.
|
||||
|
||||
CP trades included in the calculation are chosen according to the specifications listed in the table below. Data to assess CP trades relative to these criteria are updated daily from numerous publicly available sources. Standard Industrial Classification (SIC) code classifications are taken from the Securities and Exchange Commission (SEC) Directory of Companies Required to File Annual Reports with the SEC. When an issuer's primary SIC code is not reported in the SEC directory, the primary SIC code reported in the issuer's financial reports is used; otherwise, SIC codes are determined upon consultation with the Office of Management and Budget's Standard Industrial Classification Manual or its Supplement.
|
||||
|
||||
For a discussion of econometric techniques for fitting the term structure of interest rates, including bibliographic information, see, for example, William S. Cleveland, 1979, ""Robust Locally Weighted Regression and Smoothing Scatterplots,"" Journal of the American Statistical Association, 74, 829-36, or William S. Cleveland, Susan J. Devlin, and Eric Grosse, 1988, ""Regression by Local Fitting,"" Journal of Econometrics, 37, 87-114.
|
||||
|
||||
Source: https://www.federalreserve.gov/releases/cp/about.htm
|
||||
",RIFSPPFAAD07NB
|
||||
15d,financial,aa,15-Day AA Financial Commercial Paper Interest Rate,"To calculate CP interest rate indexes, the Federal Reserve Board uses DTCC's data for certain trades to estimate a relation between interest rates on the traded securities and their maturities. In this calculation, the trades represent sales of CP by dealers or direct issuers to investors (that is, the offer side) and are weighted according to the face value of the CP so that larger trades have a greater effect on the resulting index. With the relation between interest rates and maturities established, the reported interest rates represent the estimated interest rates for the specified maturities.
|
||||
|
||||
Interest rates calculated through the process described above are a statistical aggregation of numerous data reflecting many trades for different issuers, maturities, and so forth. Accordingly, the reported interest rates purport to reflect activity in certain segments of the market, but they may not equal interest rates for any specific trade. As with other statistical processes, this one is designed to minimize the difference between the interest rates at which actual trades occur and the estimated interest rates.
|
||||
|
||||
CP trades included in the calculation are chosen according to the specifications listed in the table below. Data to assess CP trades relative to these criteria are updated daily from numerous publicly available sources. Standard Industrial Classification (SIC) code classifications are taken from the Securities and Exchange Commission (SEC) Directory of Companies Required to File Annual Reports with the SEC. When an issuer's primary SIC code is not reported in the SEC directory, the primary SIC code reported in the issuer's financial reports is used; otherwise, SIC codes are determined upon consultation with the Office of Management and Budget's Standard Industrial Classification Manual or its Supplement.
|
||||
|
||||
For a discussion of econometric techniques for fitting the term structure of interest rates, including bibliographic information, see, for example, William S. Cleveland, 1979, ""Robust Locally Weighted Regression and Smoothing Scatterplots,"" Journal of the American Statistical Association, 74, 829-36, or William S. Cleveland, Susan J. Devlin, and Eric Grosse, 1988, ""Regression by Local Fitting,"" Journal of Econometrics, 37, 87-114.
|
||||
|
||||
Source: https://www.federalreserve.gov/releases/cp/about.htm
|
||||
",RIFSPPFAAD15NB
|
||||
30d,financial,aa,30-Day AA Financial Commercial Paper Interest Rate,"To calculate CP interest rate indexes, the Federal Reserve Board uses DTCC's data for certain trades to estimate a relation between interest rates on the traded securities and their maturities. In this calculation, the trades represent sales of CP by dealers or direct issuers to investors (that is, the offer side) and are weighted according to the face value of the CP so that larger trades have a greater effect on the resulting index. With the relation between interest rates and maturities established, the reported interest rates represent the estimated interest rates for the specified maturities.
|
||||
|
||||
Interest rates calculated through the process described above are a statistical aggregation of numerous data reflecting many trades for different issuers, maturities, and so forth. Accordingly, the reported interest rates purport to reflect activity in certain segments of the market, but they may not equal interest rates for any specific trade. As with other statistical processes, this one is designed to minimize the difference between the interest rates at which actual trades occur and the estimated interest rates.
|
||||
|
||||
CP trades included in the calculation are chosen according to the specifications listed in the table below. Data to assess CP trades relative to these criteria are updated daily from numerous publicly available sources. Standard Industrial Classification (SIC) code classifications are taken from the Securities and Exchange Commission (SEC) Directory of Companies Required to File Annual Reports with the SEC. When an issuer's primary SIC code is not reported in the SEC directory, the primary SIC code reported in the issuer's financial reports is used; otherwise, SIC codes are determined upon consultation with the Office of Management and Budget's Standard Industrial Classification Manual or its Supplement.
|
||||
|
||||
For a discussion of econometric techniques for fitting the term structure of interest rates, including bibliographic information, see, for example, William S. Cleveland, 1979, ""Robust Locally Weighted Regression and Smoothing Scatterplots,"" Journal of the American Statistical Association, 74, 829-36, or William S. Cleveland, Susan J. Devlin, and Eric Grosse, 1988, ""Regression by Local Fitting,"" Journal of Econometrics, 37, 87-114.
|
||||
|
||||
Source: https://www.federalreserve.gov/releases/cp/about.htm
|
||||
",RIFSPPFAAD30NB
|
||||
60d,financial,aa,60-Day AA Financial Commercial Paper Interest Rate,"To calculate CP interest rate indexes, the Federal Reserve Board uses DTCC's data for certain trades to estimate a relation between interest rates on the traded securities and their maturities. In this calculation, the trades represent sales of CP by dealers or direct issuers to investors (that is, the offer side) and are weighted according to the face value of the CP so that larger trades have a greater effect on the resulting index. With the relation between interest rates and maturities established, the reported interest rates represent the estimated interest rates for the specified maturities.
|
||||
|
||||
Interest rates calculated through the process described above are a statistical aggregation of numerous data reflecting many trades for different issuers, maturities, and so forth. Accordingly, the reported interest rates purport to reflect activity in certain segments of the market, but they may not equal interest rates for any specific trade. As with other statistical processes, this one is designed to minimize the difference between the interest rates at which actual trades occur and the estimated interest rates.
|
||||
|
||||
CP trades included in the calculation are chosen according to the specifications listed in the table below. Data to assess CP trades relative to these criteria are updated daily from numerous publicly available sources. Standard Industrial Classification (SIC) code classifications are taken from the Securities and Exchange Commission (SEC) Directory of Companies Required to File Annual Reports with the SEC. When an issuer's primary SIC code is not reported in the SEC directory, the primary SIC code reported in the issuer's financial reports is used; otherwise, SIC codes are determined upon consultation with the Office of Management and Budget's Standard Industrial Classification Manual or its Supplement.
|
||||
|
||||
For a discussion of econometric techniques for fitting the term structure of interest rates, including bibliographic information, see, for example, William S. Cleveland, 1979, ""Robust Locally Weighted Regression and Smoothing Scatterplots,"" Journal of the American Statistical Association, 74, 829-36, or William S. Cleveland, Susan J. Devlin, and Eric Grosse, 1988, ""Regression by Local Fitting,"" Journal of Econometrics, 37, 87-114.
|
||||
|
||||
Source: https://www.federalreserve.gov/releases/cp/about.htm
|
||||
",RIFSPPFAAD60NB
|
||||
90d,financial,aa,90-Day AA Financial Commercial Paper Interest Rate,"To calculate CP interest rate indexes, the Federal Reserve Board uses DTCC's data for certain trades to estimate a relation between interest rates on the traded securities and their maturities. In this calculation, the trades represent sales of CP by dealers or direct issuers to investors (that is, the offer side) and are weighted according to the face value of the CP so that larger trades have a greater effect on the resulting index. With the relation between interest rates and maturities established, the reported interest rates represent the estimated interest rates for the specified maturities.
|
||||
|
||||
Interest rates calculated through the process described above are a statistical aggregation of numerous data reflecting many trades for different issuers, maturities, and so forth. Accordingly, the reported interest rates purport to reflect activity in certain segments of the market, but they may not equal interest rates for any specific trade. As with other statistical processes, this one is designed to minimize the difference between the interest rates at which actual trades occur and the estimated interest rates.
|
||||
|
||||
CP trades included in the calculation are chosen according to the specifications listed in the table below. Data to assess CP trades relative to these criteria are updated daily from numerous publicly available sources. Standard Industrial Classification (SIC) code classifications are taken from the Securities and Exchange Commission (SEC) Directory of Companies Required to File Annual Reports with the SEC. When an issuer's primary SIC code is not reported in the SEC directory, the primary SIC code reported in the issuer's financial reports is used; otherwise, SIC codes are determined upon consultation with the Office of Management and Budget's Standard Industrial Classification Manual or its Supplement.
|
||||
|
||||
For a discussion of econometric techniques for fitting the term structure of interest rates, including bibliographic information, see, for example, William S. Cleveland, 1979, ""Robust Locally Weighted Regression and Smoothing Scatterplots,"" Journal of the American Statistical Association, 74, 829-36, or William S. Cleveland, Susan J. Devlin, and Eric Grosse, 1988, ""Regression by Local Fitting,"" Journal of Econometrics, 37, 87-114.
|
||||
|
||||
Source: https://www.federalreserve.gov/releases/cp/about.htm
|
||||
",RIFSPPFAAD90NB
|
||||
overnight,non_financial,aa,Overnight AA Nonfinancial Commercial Paper Interest Rate,"To calculate CP interest rate indexes, the Federal Reserve Board uses DTCC's data for certain trades to estimate a relation between interest rates on the traded securities and their maturities. In this calculation, the trades represent sales of CP by dealers or direct issuers to investors (that is, the offer side) and are weighted according to the face value of the CP so that larger trades have a greater effect on the resulting index. With the relation between interest rates and maturities established, the reported interest rates represent the estimated interest rates for the specified maturities.
|
||||
|
||||
Interest rates calculated through the process described above are a statistical aggregation of numerous data reflecting many trades for different issuers, maturities, and so forth. Accordingly, the reported interest rates purport to reflect activity in certain segments of the market, but they may not equal interest rates for any specific trade. As with other statistical processes, this one is designed to minimize the difference between the interest rates at which actual trades occur and the estimated interest rates.
|
||||
|
||||
CP trades included in the calculation are chosen according to the specifications listed in the table below. Data to assess CP trades relative to these criteria are updated daily from numerous publicly available sources. Standard Industrial Classification (SIC) code classifications are taken from the Securities and Exchange Commission (SEC) Directory of Companies Required to File Annual Reports with the SEC. When an issuer's primary SIC code is not reported in the SEC directory, the primary SIC code reported in the issuer's financial reports is used; otherwise, SIC codes are determined upon consultation with the Office of Management and Budget's Standard Industrial Classification Manual or its Supplement.
|
||||
|
||||
For a discussion of econometric techniques for fitting the term structure of interest rates, including bibliographic information, see, for example, William S. Cleveland, 1979, ""Robust Locally Weighted Regression and Smoothing Scatterplots,"" Journal of the American Statistical Association, 74, 829-36, or William S. Cleveland, Susan J. Devlin, and Eric Grosse, 1988, ""Regression by Local Fitting,"" Journal of Econometrics, 37, 87-114.
|
||||
|
||||
Source: https://www.federalreserve.gov/releases/cp/about.htm
|
||||
",RIFSPPNAAD01NB
|
||||
7d,non_financial,aa,7-Day AA Nonfinancial Commercial Paper Interest Rate,"To calculate CP interest rate indexes, the Federal Reserve Board uses DTCC's data for certain trades to estimate a relation between interest rates on the traded securities and their maturities. In this calculation, the trades represent sales of CP by dealers or direct issuers to investors (that is, the offer side) and are weighted according to the face value of the CP so that larger trades have a greater effect on the resulting index. With the relation between interest rates and maturities established, the reported interest rates represent the estimated interest rates for the specified maturities.
|
||||
|
||||
Interest rates calculated through the process described above are a statistical aggregation of numerous data reflecting many trades for different issuers, maturities, and so forth. Accordingly, the reported interest rates purport to reflect activity in certain segments of the market, but they may not equal interest rates for any specific trade. As with other statistical processes, this one is designed to minimize the difference between the interest rates at which actual trades occur and the estimated interest rates.
|
||||
|
||||
CP trades included in the calculation are chosen according to the specifications listed in the table below. Data to assess CP trades relative to these criteria are updated daily from numerous publicly available sources. Standard Industrial Classification (SIC) code classifications are taken from the Securities and Exchange Commission (SEC) Directory of Companies Required to File Annual Reports with the SEC. When an issuer's primary SIC code is not reported in the SEC directory, the primary SIC code reported in the issuer's financial reports is used; otherwise, SIC codes are determined upon consultation with the Office of Management and Budget's Standard Industrial Classification Manual or its Supplement.
|
||||
|
||||
For a discussion of econometric techniques for fitting the term structure of interest rates, including bibliographic information, see, for example, William S. Cleveland, 1979, ""Robust Locally Weighted Regression and Smoothing Scatterplots,"" Journal of the American Statistical Association, 74, 829-36, or William S. Cleveland, Susan J. Devlin, and Eric Grosse, 1988, ""Regression by Local Fitting,"" Journal of Econometrics, 37, 87-114.
|
||||
|
||||
Source: https://www.federalreserve.gov/releases/cp/about.htm
|
||||
",RIFSPPNAAD07NB
|
||||
15d,non_financial,aa,15-Day AA Nonfinancial Commercial Paper Interest Rate,"To calculate CP interest rate indexes, the Federal Reserve Board uses DTCC's data for certain trades to estimate a relation between interest rates on the traded securities and their maturities. In this calculation, the trades represent sales of CP by dealers or direct issuers to investors (that is, the offer side) and are weighted according to the face value of the CP so that larger trades have a greater effect on the resulting index. With the relation between interest rates and maturities established, the reported interest rates represent the estimated interest rates for the specified maturities.
|
||||
|
||||
Interest rates calculated through the process described above are a statistical aggregation of numerous data reflecting many trades for different issuers, maturities, and so forth. Accordingly, the reported interest rates purport to reflect activity in certain segments of the market, but they may not equal interest rates for any specific trade. As with other statistical processes, this one is designed to minimize the difference between the interest rates at which actual trades occur and the estimated interest rates.
|
||||
|
||||
CP trades included in the calculation are chosen according to the specifications listed in the table below. Data to assess CP trades relative to these criteria are updated daily from numerous publicly available sources. Standard Industrial Classification (SIC) code classifications are taken from the Securities and Exchange Commission (SEC) Directory of Companies Required to File Annual Reports with the SEC. When an issuer's primary SIC code is not reported in the SEC directory, the primary SIC code reported in the issuer's financial reports is used; otherwise, SIC codes are determined upon consultation with the Office of Management and Budget's Standard Industrial Classification Manual or its Supplement.
|
||||
|
||||
For a discussion of econometric techniques for fitting the term structure of interest rates, including bibliographic information, see, for example, William S. Cleveland, 1979, ""Robust Locally Weighted Regression and Smoothing Scatterplots,"" Journal of the American Statistical Association, 74, 829-36, or William S. Cleveland, Susan J. Devlin, and Eric Grosse, 1988, ""Regression by Local Fitting,"" Journal of Econometrics, 37, 87-114.
|
||||
|
||||
Source: https://www.federalreserve.gov/releases/cp/about.htm
|
||||
",RIFSPPNAAD15NB
|
||||
30d,non_financial,aa,30-Day AA Nonfinancial Commercial Paper Interest Rate,"To calculate CP interest rate indexes, the Federal Reserve Board uses DTCC's data for certain trades to estimate a relation between interest rates on the traded securities and their maturities. In this calculation, the trades represent sales of CP by dealers or direct issuers to investors (that is, the offer side) and are weighted according to the face value of the CP so that larger trades have a greater effect on the resulting index. With the relation between interest rates and maturities established, the reported interest rates represent the estimated interest rates for the specified maturities.
|
||||
|
||||
Interest rates calculated through the process described above are a statistical aggregation of numerous data reflecting many trades for different issuers, maturities, and so forth. Accordingly, the reported interest rates purport to reflect activity in certain segments of the market, but they may not equal interest rates for any specific trade. As with other statistical processes, this one is designed to minimize the difference between the interest rates at which actual trades occur and the estimated interest rates.
|
||||
|
||||
CP trades included in the calculation are chosen according to the specifications listed in the table below. Data to assess CP trades relative to these criteria are updated daily from numerous publicly available sources. Standard Industrial Classification (SIC) code classifications are taken from the Securities and Exchange Commission (SEC) Directory of Companies Required to File Annual Reports with the SEC. When an issuer's primary SIC code is not reported in the SEC directory, the primary SIC code reported in the issuer's financial reports is used; otherwise, SIC codes are determined upon consultation with the Office of Management and Budget's Standard Industrial Classification Manual or its Supplement.
|
||||
|
||||
For a discussion of econometric techniques for fitting the term structure of interest rates, including bibliographic information, see, for example, William S. Cleveland, 1979, ""Robust Locally Weighted Regression and Smoothing Scatterplots,"" Journal of the American Statistical Association, 74, 829-36, or William S. Cleveland, Susan J. Devlin, and Eric Grosse, 1988, ""Regression by Local Fitting,"" Journal of Econometrics, 37, 87-114.
|
||||
|
||||
Source: https://www.federalreserve.gov/releases/cp/about.htm
|
||||
",RIFSPPNAAD30NB
|
||||
60d,non_financial,aa,60-Day AA Nonfinancial Commercial Paper Interest Rate,"To calculate CP interest rate indexes, the Federal Reserve Board uses DTCC's data for certain trades to estimate a relation between interest rates on the traded securities and their maturities. In this calculation, the trades represent sales of CP by dealers or direct issuers to investors (that is, the offer side) and are weighted according to the face value of the CP so that larger trades have a greater effect on the resulting index. With the relation between interest rates and maturities established, the reported interest rates represent the estimated interest rates for the specified maturities.
|
||||
|
||||
Interest rates calculated through the process described above are a statistical aggregation of numerous data reflecting many trades for different issuers, maturities, and so forth. Accordingly, the reported interest rates purport to reflect activity in certain segments of the market, but they may not equal interest rates for any specific trade. As with other statistical processes, this one is designed to minimize the difference between the interest rates at which actual trades occur and the estimated interest rates.
|
||||
|
||||
CP trades included in the calculation are chosen according to the specifications listed in the table below. Data to assess CP trades relative to these criteria are updated daily from numerous publicly available sources. Standard Industrial Classification (SIC) code classifications are taken from the Securities and Exchange Commission (SEC) Directory of Companies Required to File Annual Reports with the SEC. When an issuer's primary SIC code is not reported in the SEC directory, the primary SIC code reported in the issuer's financial reports is used; otherwise, SIC codes are determined upon consultation with the Office of Management and Budget's Standard Industrial Classification Manual or its Supplement.
|
||||
|
||||
For a discussion of econometric techniques for fitting the term structure of interest rates, including bibliographic information, see, for example, William S. Cleveland, 1979, ""Robust Locally Weighted Regression and Smoothing Scatterplots,"" Journal of the American Statistical Association, 74, 829-36, or William S. Cleveland, Susan J. Devlin, and Eric Grosse, 1988, ""Regression by Local Fitting,"" Journal of Econometrics, 37, 87-114.
|
||||
|
||||
Source: https://www.federalreserve.gov/releases/cp/about.htm
|
||||
",RIFSPPNAAD60NB
|
||||
90d,non_financial,aa,90-Day AA Nonfinancial Commercial Paper Interest Rate,"To calculate CP interest rate indexes, the Federal Reserve Board uses DTCC's data for certain trades to estimate a relation between interest rates on the traded securities and their maturities. In this calculation, the trades represent sales of CP by dealers or direct issuers to investors (that is, the offer side) and are weighted according to the face value of the CP so that larger trades have a greater effect on the resulting index. With the relation between interest rates and maturities established, the reported interest rates represent the estimated interest rates for the specified maturities.
|
||||
|
||||
Interest rates calculated through the process described above are a statistical aggregation of numerous data reflecting many trades for different issuers, maturities, and so forth. Accordingly, the reported interest rates purport to reflect activity in certain segments of the market, but they may not equal interest rates for any specific trade. As with other statistical processes, this one is designed to minimize the difference between the interest rates at which actual trades occur and the estimated interest rates.
|
||||
|
||||
CP trades included in the calculation are chosen according to the specifications listed in the table below. Data to assess CP trades relative to these criteria are updated daily from numerous publicly available sources. Standard Industrial Classification (SIC) code classifications are taken from the Securities and Exchange Commission (SEC) Directory of Companies Required to File Annual Reports with the SEC. When an issuer's primary SIC code is not reported in the SEC directory, the primary SIC code reported in the issuer's financial reports is used; otherwise, SIC codes are determined upon consultation with the Office of Management and Budget's Standard Industrial Classification Manual or its Supplement.
|
||||
|
||||
For a discussion of econometric techniques for fitting the term structure of interest rates, including bibliographic information, see, for example, William S. Cleveland, 1979, ""Robust Locally Weighted Regression and Smoothing Scatterplots,"" Journal of the American Statistical Association, 74, 829-36, or William S. Cleveland, Susan J. Devlin, and Eric Grosse, 1988, ""Regression by Local Fitting,"" Journal of Econometrics, 37, 87-114.
|
||||
|
||||
Source: https://www.federalreserve.gov/releases/cp/about.htm
|
||||
",RIFSPPNAAD90NB
|
||||
overnight,non_financial,a2_p2,Overnight A2/P2 Nonfinancial Commercial Paper Interest Rate,"To calculate CP interest rate indexes, the Federal Reserve Board uses DTCC's data for certain trades to estimate a relation between interest rates on the traded securities and their maturities. In this calculation, the trades represent sales of CP by dealers or direct issuers to investors (that is, the offer side) and are weighted according to the face value of the CP so that larger trades have a greater effect on the resulting index. With the relation between interest rates and maturities established, the reported interest rates represent the estimated interest rates for the specified maturities.
|
||||
|
||||
Interest rates calculated through the process described above are a statistical aggregation of numerous data reflecting many trades for different issuers, maturities, and so forth. Accordingly, the reported interest rates purport to reflect activity in certain segments of the market, but they may not equal interest rates for any specific trade. As with other statistical processes, this one is designed to minimize the difference between the interest rates at which actual trades occur and the estimated interest rates.
|
||||
|
||||
CP trades included in the calculation are chosen according to the specifications listed in the table below. Data to assess CP trades relative to these criteria are updated daily from numerous publicly available sources. Standard Industrial Classification (SIC) code classifications are taken from the Securities and Exchange Commission (SEC) Directory of Companies Required to File Annual Reports with the SEC. When an issuer's primary SIC code is not reported in the SEC directory, the primary SIC code reported in the issuer's financial reports is used; otherwise, SIC codes are determined upon consultation with the Office of Management and Budget's Standard Industrial Classification Manual or its Supplement.
|
||||
|
||||
For a discussion of econometric techniques for fitting the term structure of interest rates, including bibliographic information, see, for example, William S. Cleveland, 1979, ""Robust Locally Weighted Regression and Smoothing Scatterplots,"" Journal of the American Statistical Association, 74, 829-36, or William S. Cleveland, Susan J. Devlin, and Eric Grosse, 1988, ""Regression by Local Fitting,"" Journal of Econometrics, 37, 87-114.
|
||||
|
||||
Source: https://www.federalreserve.gov/releases/cp/about.htm
|
||||
",RIFSPPNA2P2D01NB
|
||||
7d,non_financial,a2_p2,7-Day A2/P2 Nonfinancial Commercial Paper Interest Rate,"To calculate CP interest rate indexes, the Federal Reserve Board uses DTCC's data for certain trades to estimate a relation between interest rates on the traded securities and their maturities. In this calculation, the trades represent sales of CP by dealers or direct issuers to investors (that is, the offer side) and are weighted according to the face value of the CP so that larger trades have a greater effect on the resulting index. With the relation between interest rates and maturities established, the reported interest rates represent the estimated interest rates for the specified maturities.
|
||||
|
||||
Interest rates calculated through the process described above are a statistical aggregation of numerous data reflecting many trades for different issuers, maturities, and so forth. Accordingly, the reported interest rates purport to reflect activity in certain segments of the market, but they may not equal interest rates for any specific trade. As with other statistical processes, this one is designed to minimize the difference between the interest rates at which actual trades occur and the estimated interest rates.
|
||||
|
||||
CP trades included in the calculation are chosen according to the specifications listed in the table below. Data to assess CP trades relative to these criteria are updated daily from numerous publicly available sources. Standard Industrial Classification (SIC) code classifications are taken from the Securities and Exchange Commission (SEC) Directory of Companies Required to File Annual Reports with the SEC. When an issuer's primary SIC code is not reported in the SEC directory, the primary SIC code reported in the issuer's financial reports is used; otherwise, SIC codes are determined upon consultation with the Office of Management and Budget's Standard Industrial Classification Manual or its Supplement.
|
||||
|
||||
For a discussion of econometric techniques for fitting the term structure of interest rates, including bibliographic information, see, for example, William S. Cleveland, 1979, ""Robust Locally Weighted Regression and Smoothing Scatterplots,"" Journal of the American Statistical Association, 74, 829-36, or William S. Cleveland, Susan J. Devlin, and Eric Grosse, 1988, ""Regression by Local Fitting,"" Journal of Econometrics, 37, 87-114.
|
||||
|
||||
Source: https://www.federalreserve.gov/releases/cp/about.htm
|
||||
",RIFSPPNA2P2D07NB
|
||||
15d,non_financial,a2_p2,15-Day A2/P2 Nonfinancial Commercial Paper Interest Rate,"To calculate CP interest rate indexes, the Federal Reserve Board uses DTCC's data for certain trades to estimate a relation between interest rates on the traded securities and their maturities. In this calculation, the trades represent sales of CP by dealers or direct issuers to investors (that is, the offer side) and are weighted according to the face value of the CP so that larger trades have a greater effect on the resulting index. With the relation between interest rates and maturities established, the reported interest rates represent the estimated interest rates for the specified maturities.
|
||||
|
||||
Interest rates calculated through the process described above are a statistical aggregation of numerous data reflecting many trades for different issuers, maturities, and so forth. Accordingly, the reported interest rates purport to reflect activity in certain segments of the market, but they may not equal interest rates for any specific trade. As with other statistical processes, this one is designed to minimize the difference between the interest rates at which actual trades occur and the estimated interest rates.
|
||||
|
||||
CP trades included in the calculation are chosen according to the specifications listed in the table below. Data to assess CP trades relative to these criteria are updated daily from numerous publicly available sources. Standard Industrial Classification (SIC) code classifications are taken from the Securities and Exchange Commission (SEC) Directory of Companies Required to File Annual Reports with the SEC. When an issuer's primary SIC code is not reported in the SEC directory, the primary SIC code reported in the issuer's financial reports is used; otherwise, SIC codes are determined upon consultation with the Office of Management and Budget's Standard Industrial Classification Manual or its Supplement.
|
||||
|
||||
For a discussion of econometric techniques for fitting the term structure of interest rates, including bibliographic information, see, for example, William S. Cleveland, 1979, ""Robust Locally Weighted Regression and Smoothing Scatterplots,"" Journal of the American Statistical Association, 74, 829-36, or William S. Cleveland, Susan J. Devlin, and Eric Grosse, 1988, ""Regression by Local Fitting,"" Journal of Econometrics, 37, 87-114.
|
||||
|
||||
Source: https://www.federalreserve.gov/releases/cp/about.htm
|
||||
",RIFSPPNA2P2D15NB
|
||||
30d,non_financial,a2_p2,30-Day A2/P2 Nonfinancial Commercial Paper Interest Rate,"To calculate CP interest rate indexes, the Federal Reserve Board uses DTCC's data for certain trades to estimate a relation between interest rates on the traded securities and their maturities. In this calculation, the trades represent sales of CP by dealers or direct issuers to investors (that is, the offer side) and are weighted according to the face value of the CP so that larger trades have a greater effect on the resulting index. With the relation between interest rates and maturities established, the reported interest rates represent the estimated interest rates for the specified maturities.
|
||||
|
||||
Interest rates calculated through the process described above are a statistical aggregation of numerous data reflecting many trades for different issuers, maturities, and so forth. Accordingly, the reported interest rates purport to reflect activity in certain segments of the market, but they may not equal interest rates for any specific trade. As with other statistical processes, this one is designed to minimize the difference between the interest rates at which actual trades occur and the estimated interest rates.
|
||||
|
||||
CP trades included in the calculation are chosen according to the specifications listed in the table below. Data to assess CP trades relative to these criteria are updated daily from numerous publicly available sources. Standard Industrial Classification (SIC) code classifications are taken from the Securities and Exchange Commission (SEC) Directory of Companies Required to File Annual Reports with the SEC. When an issuer's primary SIC code is not reported in the SEC directory, the primary SIC code reported in the issuer's financial reports is used; otherwise, SIC codes are determined upon consultation with the Office of Management and Budget's Standard Industrial Classification Manual or its Supplement.
|
||||
|
||||
For a discussion of econometric techniques for fitting the term structure of interest rates, including bibliographic information, see, for example, William S. Cleveland, 1979, ""Robust Locally Weighted Regression and Smoothing Scatterplots,"" Journal of the American Statistical Association, 74, 829-36, or William S. Cleveland, Susan J. Devlin, and Eric Grosse, 1988, ""Regression by Local Fitting,"" Journal of Econometrics, 37, 87-114.
|
||||
|
||||
Source: https://www.federalreserve.gov/releases/cp/about.htm
|
||||
",RIFSPPNA2P2D30NB
|
||||
60d,non_financial,a2_p2,60-Day A2/P2 Nonfinancial Commercial Paper Interest Rate,"To calculate CP interest rate indexes, the Federal Reserve Board uses DTCC's data for certain trades to estimate a relation between interest rates on the traded securities and their maturities. In this calculation, the trades represent sales of CP by dealers or direct issuers to investors (that is, the offer side) and are weighted according to the face value of the CP so that larger trades have a greater effect on the resulting index. With the relation between interest rates and maturities established, the reported interest rates represent the estimated interest rates for the specified maturities.
|
||||
|
||||
Interest rates calculated through the process described above are a statistical aggregation of numerous data reflecting many trades for different issuers, maturities, and so forth. Accordingly, the reported interest rates purport to reflect activity in certain segments of the market, but they may not equal interest rates for any specific trade. As with other statistical processes, this one is designed to minimize the difference between the interest rates at which actual trades occur and the estimated interest rates.
|
||||
|
||||
CP trades included in the calculation are chosen according to the specifications listed in the table below. Data to assess CP trades relative to these criteria are updated daily from numerous publicly available sources. Standard Industrial Classification (SIC) code classifications are taken from the Securities and Exchange Commission (SEC) Directory of Companies Required to File Annual Reports with the SEC. When an issuer's primary SIC code is not reported in the SEC directory, the primary SIC code reported in the issuer's financial reports is used; otherwise, SIC codes are determined upon consultation with the Office of Management and Budget's Standard Industrial Classification Manual or its Supplement.
|
||||
|
||||
For a discussion of econometric techniques for fitting the term structure of interest rates, including bibliographic information, see, for example, William S. Cleveland, 1979, ""Robust Locally Weighted Regression and Smoothing Scatterplots,"" Journal of the American Statistical Association, 74, 829-36, or William S. Cleveland, Susan J. Devlin, and Eric Grosse, 1988, ""Regression by Local Fitting,"" Journal of Econometrics, 37, 87-114.
|
||||
|
||||
Source: https://www.federalreserve.gov/releases/cp/about.htm
|
||||
",RIFSPPNA2P2D60NB
|
||||
90d,non_financial,a2_p2,90-Day A2/P2 Nonfinancial Commercial Paper Interest Rate,"To calculate CP interest rate indexes, the Federal Reserve Board uses DTCC's data for certain trades to estimate a relation between interest rates on the traded securities and their maturities. In this calculation, the trades represent sales of CP by dealers or direct issuers to investors (that is, the offer side) and are weighted according to the face value of the CP so that larger trades have a greater effect on the resulting index. With the relation between interest rates and maturities established, the reported interest rates represent the estimated interest rates for the specified maturities.
|
||||
|
||||
Interest rates calculated through the process described above are a statistical aggregation of numerous data reflecting many trades for different issuers, maturities, and so forth. Accordingly, the reported interest rates purport to reflect activity in certain segments of the market, but they may not equal interest rates for any specific trade. As with other statistical processes, this one is designed to minimize the difference between the interest rates at which actual trades occur and the estimated interest rates.
|
||||
|
||||
CP trades included in the calculation are chosen according to the specifications listed in the table below. Data to assess CP trades relative to these criteria are updated daily from numerous publicly available sources. Standard Industrial Classification (SIC) code classifications are taken from the Securities and Exchange Commission (SEC) Directory of Companies Required to File Annual Reports with the SEC. When an issuer's primary SIC code is not reported in the SEC directory, the primary SIC code reported in the issuer's financial reports is used; otherwise, SIC codes are determined upon consultation with the Office of Management and Budget's Standard Industrial Classification Manual or its Supplement.
|
||||
|
||||
For a discussion of econometric techniques for fitting the term structure of interest rates, including bibliographic information, see, for example, William S. Cleveland, 1979, ""Robust Locally Weighted Regression and Smoothing Scatterplots,"" Journal of the American Statistical Association, 74, 829-36, or William S. Cleveland, Susan J. Devlin, and Eric Grosse, 1988, ""Regression by Local Fitting,"" Journal of Econometrics, 37, 87-114.
|
||||
|
||||
Source: https://www.federalreserve.gov/releases/cp/about.htm
|
||||
",RIFSPPNA2P2D90NB
|
||||
|
@@ -79,6 +79,13 @@ YIELD_CURVES = {
|
||||
"T20YIEM": "year_20",
|
||||
"T30YIEM": "year_30",
|
||||
},
|
||||
"treasury_minus_fed_funds": {
|
||||
"T3MFF": "month_3",
|
||||
"T6MFF": "month_6",
|
||||
"T1YFF": "year_1",
|
||||
"T5YFF": "year_5",
|
||||
"T10YFF": "year_10",
|
||||
},
|
||||
"corporate_spot": {
|
||||
"HQMCB6MT": "month_6",
|
||||
"HQMCB1YR": "year_1",
|
||||
|
||||
130
openbb_platform/providers/fred/tests/record/http/test_fred_fetchers/test_fred_ameribor_fetcher.yaml
vendored
Normal file
130
openbb_platform/providers/fred/tests/record/http/test_fred_fetchers/test_fred_ameribor_fetcher.yaml
vendored
Normal file
@@ -0,0 +1,130 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series/observations?api_key=MOCK_API_KEY&file_type=json&limit=100000&observation_end=2023-06-06&observation_start=2023-01-01&series_id=AMERIBOR
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
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
|
||||
headers:
|
||||
Cache-Control:
|
||||
- max-age=0, no-cache
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '1644'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Mon, 10 Jun 2024 16:56:10 GMT
|
||||
Expires:
|
||||
- Mon, 10 Jun 2024 16:56:10 GMT
|
||||
Last-Modified:
|
||||
- Mon, 10 Jun 2024 12:03:03 GMT
|
||||
Pragma:
|
||||
- no-cache
|
||||
Server:
|
||||
- Apache
|
||||
Strict-Transport-Security:
|
||||
- max-age=86400
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series?api_key=MOCK_API_KEY&file_type=json&series_id=AMERIBOR
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy0TUw0zU0UNJByKbmpaDLFacWZaYWFytZ
|
||||
RVcrZYJkHX1dgzyd/IOQ9ZFsaklmSU6qkpWSf1lqUV5mekaJQmhecWpyaVFqigLMAgWn1LzkjNzE
|
||||
omwFz7yS1KLU4hKFoMSSVCUdpfyk4tSissSSzPw8JB8ZmuoaGukaGqIpQPWUgaWSjlJaUWphaWpe
|
||||
cqWSlZJLYmZOpY6Cua5LYiWyVHxxRj44qFyUdJRK8zJLipWslAJSi5JT80pgInA1qko6SsWpicX5
|
||||
eYk58YkpWaXFJbkgdVZKfvklCsFQmZxKBUewXGoKdvVw8/yCHZV0lHISi0viSwtSEktSQSGPiDMF
|
||||
A3MrA2MrA2NdA1MlHaWC/ILSnMSizJJKJStTYx2lvPySVJBrXRJLEhUKijLzixRK8hW8SvNSFQzN
|
||||
dRSMDAwtFTKLFfLzcioVEssSM3MSk3JSFdKK8nMVfPPzUhIrQcrdijJBLI3UiuSc0pTMvHSFkqJE
|
||||
MJ2RnwOSKtbUi8mLyYNFV0ypgUFiqoKGY25qUWZyYh4k0pIS87IV/NPSUkExC4o9TZDNiQpJ8LjN
|
||||
hMVtUWJJqkJSYnFqikJ+nkI+PGWUwlNGTn5iXjHIGXnFicklEHUlGakKcCvdMvMS85IzE3MUXCuS
|
||||
MxLz0kHucYvQ1IMnKqgrM4sVkhNzkktzQEGrkFisADKmpCgRbHBmfp5CWX5OaW6qQnkqKHGmpigk
|
||||
lqUWJaanKqC6Nj8NrDEFlITg7srMzytWyMwDy6AFDi5PKYBSeWoJyN8ghzi6Regp+OYXpSqkpJYk
|
||||
ZuYUKyQm5ZeWoHsiN7UkIz8lPyc/vVIBFOBJqQpp+aV54OADGVOcX1qUnKperFCemlScWZKqoJFR
|
||||
UlJQbBWjH6OfCIqlpPwivbzUEk0dhdK8lNQisIuDUiHaihWKU5NBGQxbJGcWKyQqFKWmZxaD8mUK
|
||||
yOspqSA/KEBDhIgYAceEpYJzfkFlESiQdYiKxpwchSCQ6mKFoFRQGQBYaoqeUm1sLQBJPKmi4gQA
|
||||
AA==
|
||||
headers:
|
||||
Cache-Control:
|
||||
- max-age=0, no-cache
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '799'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Mon, 10 Jun 2024 16:56:10 GMT
|
||||
Expires:
|
||||
- Mon, 10 Jun 2024 16:56:10 GMT
|
||||
Last-Modified:
|
||||
- Mon, 10 Jun 2024 12:03:03 GMT
|
||||
Pragma:
|
||||
- no-cache
|
||||
Server:
|
||||
- Apache
|
||||
Strict-Transport-Security:
|
||||
- max-age=86400
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
version: 1
|
||||
@@ -3,57 +3,106 @@ interactions:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- '*/*'
|
||||
- application/json
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series/observations?api_key=MOCK_API_KEY&file_type=json&observation_end=2023-06-06&observation_start=2023-01-01&series_id=RIFSPPFAAD30NB
|
||||
uri: https://api.stlouisfed.org/fred/series/observations?api_key=MOCK_API_KEY&file_type=json&limit=100000&observation_end=2024-02-01&observation_start=2024-01-01&series_id=RIFSPPAAAD30NB
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy1jU01DUwUtJByKbmpaDL5ScVpxaVJZZk
|
||||
5uehajYw1DUwVNJRQlaApN/ATNfATElHqTQvs6RYyUopJzMPpLi0pKC0JL6ksiBVycpQRyktMycV
|
||||
ylPKKs4HKylKSS2KT6pUskIxOiWxJFVJR6k4v6gkPh+kRMlKKbE4WUlHKTm/NK9EycrQ0EhHKT8t
|
||||
rTi1RMnKQEcpJzM3EyRsAAIozixWsoqmJEjAToEGISgUQEFYlphTmqpkpaSnVKtDTbONlXSUYGab
|
||||
6BmbU9l4E1TjzahsvCmq8YZUNh6UvhCBY2JMZeMtkVxP5Xg1NEAy20TPhMoBbwjKmEghQ+VkY0jD
|
||||
FG+ImuJNqO105DRD7Ug1R4pUapttQUOzaZjQjZATOpXDxAg5qVDbbOSSkdpmoxaLpibULbeMaJjE
|
||||
jZCTuImeKXVdbkzDxGKMWiSaUbUuMoI0hRAlLtWNp1mJa6RrgJyNTPRMqVriGkFagUghQ80kY6Rr
|
||||
gJwgqZpPjXQNkMtcEz1TSyo7nWbFrpEuWvuCqs0LI120OpraptOs6DXSNUQueqmcXAyRy10TPVOq
|
||||
Fo5GuoY0TOm0q6WNdI3QCl6q1nZGukY0LBlp18Aw0jWiYSpHqaWpnMqNUAtFM6pmfmOMepTaxiOn
|
||||
FhM96lbTxuhVqZkFNWsMY9SqlKrxakzDitQYtSKltrtpVosao9aiVHY3Sh1KbbNpVrYY07AGNdY1
|
||||
RK5BqR0mNKs+jXVpV30ao1afVA4T2tWdxroodaeJngVV+1vGNKw+jXVpV30a66JVnxZG1K0hjGhY
|
||||
GqL0zk30LKhcuaF00Kma0E3Q62ULqjbNTXQNaFbemuga0KzHYoLanjDRs6RqHjWhYZPChIZVs4ku
|
||||
2ug5tVMLyui5iR7VjUcezqFyPjKkYUKnXf/WRNcQudNC7TBBLnJN9CyoOnxmQsO2hQlq28JEz4Kq
|
||||
A1wmNKyjTXSNaFgs0m4A3YSGbQsT1LYFVVO5KWq/3FTPgKrtFlPIMgTYILGpniFVM5Epav1vqmdA
|
||||
1VEFU9T631TPgKr5yBS1CWCqZ0DV1ospau/cRM+Squ06U10D5PLRVM+AquN/pjRsCJiiNgRM9Qyp
|
||||
7XTkwSjqxyvKWLepniFVW3emqJ116ucp2jUHTFGbA6Z6BlQubQxRUzyVwx2l026qZ0jVVS+mqP12
|
||||
Uz1DKhf0KMPeNHA9crOA+lkKpWVA/QKBdr13U12U3juVGwe067qboTY8qOpuM9RWB7XNRk6J1DYb
|
||||
bZwUsNhaAK2Pz5/iKQAA
|
||||
H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy0TUw0zUwU9JByKbmpaDL5ScVpxaVJZZk
|
||||
5uehaTbUNTBU0lFCVoCs3wgiXZqXWVKsZKWUk5kHUlxaUlBaEl9SWZCqZGWoo5SWmZMK5SllFeeD
|
||||
lRSlpBbFJ1UqWaEYnZJYkqqko1ScX1QSnw9SomSllFicrKSjlJxfmleiZGVkoqOUn5ZWnFqiZGWg
|
||||
o5STmZtZomRlaAACKK4sVrKKpiREwC6BhSA0EMoSc0pTlayU9JRqdahptpGSjhLMbFM9Y3MqG2+M
|
||||
arwZlY03QTXelMrGm6IaT+3AsUA1ntqut0Q1nsphb2iAajyVA8cQlPOREiaVA8cQLd1T23jklEPl
|
||||
LGsIKlCRQobaAW+OGq/UTjZoid6EulnWkLaJ3gg12ZgYUtf1RmjFJZVTpRFacUnlqDVCTvTUr0uM
|
||||
0NI9lVOOEVrKoXLYG6MVl9Q2Hq24pGrgQBtaSGUOYKZKtbG1AItJ1uf1CQAA
|
||||
headers:
|
||||
Accept-Ranges:
|
||||
- bytes
|
||||
Cache-Control:
|
||||
- max-age=0, no-cache
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '984'
|
||||
- '387'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Thu, 02 Nov 2023 13:45:30 GMT
|
||||
- Fri, 07 Jun 2024 04:58:35 GMT
|
||||
Expires:
|
||||
- Thu, 02 Nov 2023 13:46:30 GMT
|
||||
- Fri, 07 Jun 2024 04:58:35 GMT
|
||||
Last-Modified:
|
||||
- Tue, 31 Oct 2023 17:04:03 GMT
|
||||
- Thu, 06 Jun 2024 17:04:29 GMT
|
||||
Pragma:
|
||||
- no-cache
|
||||
Server:
|
||||
- Apache
|
||||
Set-Cookie:
|
||||
- ak_bmsc=47D9BE5E15556CE0609ECA6AD74283A3~000000000000000000000000000000~YAAQlJUeuHw1aPCPAQAANRkQ8Rghc0UgHMPiZAV62XWGKnY4klZo+GLY7mp8DOtQLxVzPLZKOdbmnT/SNjRrHp5LEjacvILwy6/tqk5Hnmxt2TXwnIp3M5TLPWmJjZizAKOZEuuID4NUGMaSspmgMWmDg5do9WZ9v4QdcEU78hQCwi/7JyNzGBmKa39hrkGQgB8zh7sXQ98g1hTVuxjLcgBl3OrGa5ORZH5ERNdNq7vE06smayO0TtDdvEDdffILB9KtEsYfcKqgFG6wbeLRTH8UZo//S2ZeQne6AJ++iGiO+pA+7sGloMwcM2a+EkazH/XumwZhxWP8GHk0XnGy4Ky9T+FK8wgz0NLcSKPMX/XG1ef0mUrcIzpZp2zZE41Z;
|
||||
Domain=.stlouisfed.org; Path=/; Expires=Fri, 07 Jun 2024 06:58:35 GMT; Max-Age=7200
|
||||
Strict-Transport-Security:
|
||||
- max-age=86400
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
Cookie:
|
||||
- ak_bmsc=47D9BE5E15556CE0609ECA6AD74283A3~000000000000000000000000000000~YAAQlJUeuHw1aPCPAQAANRkQ8Rghc0UgHMPiZAV62XWGKnY4klZo+GLY7mp8DOtQLxVzPLZKOdbmnT/SNjRrHp5LEjacvILwy6/tqk5Hnmxt2TXwnIp3M5TLPWmJjZizAKOZEuuID4NUGMaSspmgMWmDg5do9WZ9v4QdcEU78hQCwi/7JyNzGBmKa39hrkGQgB8zh7sXQ98g1hTVuxjLcgBl3OrGa5ORZH5ERNdNq7vE06smayO0TtDdvEDdffILB9KtEsYfcKqgFG6wbeLRTH8UZo//S2ZeQne6AJ++iGiO+pA+7sGloMwcM2a+EkazH/XumwZhxWP8GHk0XnGy4Ky9T+FK8wgz0NLcSKPMX/XG1ef0mUrcIzpZp2zZE41Z
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series?api_key=MOCK_API_KEY&file_type=json&series_id=RIFSPPAAAD30NB
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy0TUw0zUwU9JByKbmpaDLFacWZaYWFytZ
|
||||
RVcrZYJkgzzdggMCHB0dXYwN/JyQdZNsdklmSU6qkpWSsYGuS2KlgqOjgmNxcWqJrlNicnZqioJz
|
||||
fm5ualFyZmKOQkBiQWqRgmdeSWpRanGJQlBiSaqSjlJ+UnFqUVliSWZ+HpLHDAx1QcgITQGa30yV
|
||||
dJTSilILS1PzkiuVrJRcEjNzKpHF4osz8sFB5aKko1Sal1lSrGSlFJBalJyaVwITgatRVdJRKk5N
|
||||
LM7PS8yJT0zJKi0uyQWps1Lyyy9RCIbK5FQqOILlUlOwq4eb5xfsqKSjlJNYXBJfWpCSWJIKCnlE
|
||||
nCkYGlkZmFgZWeoagPxRkF9QmpNYlFlSqWRlaKmjlJdfkgpyrVt+kUJuflGqQmZeWn5RLjigdBQK
|
||||
clITi1MVilNTFTJKSgqsYvRj9MvLy/XSUlNSixJzilJBgZqql55fFqNflApWDFhxjH5yQYx+YlJ+
|
||||
aYleRkmunlJtbC0AeMHAjFYCAAA=
|
||||
headers:
|
||||
Cache-Control:
|
||||
- max-age=0, no-cache
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '419'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Fri, 07 Jun 2024 04:58:35 GMT
|
||||
Expires:
|
||||
- Fri, 07 Jun 2024 04:58:35 GMT
|
||||
Last-Modified:
|
||||
- Thu, 06 Jun 2024 17:04:29 GMT
|
||||
Pragma:
|
||||
- no-cache
|
||||
Server:
|
||||
- Apache
|
||||
Set-Cookie:
|
||||
- ak_bmsc=47D9BE5E15556CE0609ECA6AD74283A3~000000000000000000000000000000~YAAQlJUeuJc1aPCPAQAAvhkQ8RjdYrxcLCShD13TKH2G9ACe1fVrusjEUz9KloUqVJYOx6DaZHfDY+cxAK04Qzdm7trNRvjpgwYsaRLMK226qzxdn+Jjv9bt+QEzmEwhMb2Zfqj4drMCP2jUqGpdrSThOeveLbqsN+ZLADrqruI5OA2IIcYHPhu8FPtO/6cIH3cCs1I6SvH2vAbAgLthRGKFkLf+NoOMFDLpBu2n37dPdSbRBhCjlRVf3bivcRDT5TbaRSeMYwgN3z6ruk1JCh3UoaKa9MNoTXNhbHdEZjLDSKU3AGFc7Sqc3HcrzP6ux8gmqKJv+GNcpz4UqgORC6RN03xlsIxN0ap+w5ne9QG/B5kpd/JDS6UWPushJuXHAOhn6gQnhpuhtQ==;
|
||||
Domain=.stlouisfed.org; Path=/; Expires=Fri, 07 Jun 2024 06:58:35 GMT; Max-Age=7200
|
||||
Strict-Transport-Security:
|
||||
- max-age=86400
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
x-rate-limit-limit:
|
||||
- '120'
|
||||
x-rate-limit-remaining:
|
||||
- '106'
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
|
||||
@@ -0,0 +1,785 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series/observations?api_key=MOCK_API_KEY&file_type=json&limit=100000&observation_end=2024-06-06&observation_start=2024-06-01&series_id=ECBESTRRT75THPCTVOL
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy0TUw0zU0VNJByKbmpaDL5ScVpxaVJZZk
|
||||
5udhaDYAaUZWgKrfwExJR6k0L7OkWMlKKSczT0lHKb+0pKC0JL6ksiBVycpQRyktMycVylPKKs4H
|
||||
KylKSS2KT6pUslJCNjolsSRVSUepOL+oJD4fpETJSimxOFlJRyk5vzSvRMnKREcpPy2tOLVEycpA
|
||||
RyknMzezRMnK0AAEdJBNKlayiqYkQMAOQQSggbGSjlJZYk5pqpKVkrGepbFSrQ41jTehrfGmtDUe
|
||||
lAJQAwew2FoAksAkU44CAAA=
|
||||
headers:
|
||||
Cache-Control:
|
||||
- max-age=0, no-cache
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '245'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Wed, 12 Jun 2024 00:45:30 GMT
|
||||
Expires:
|
||||
- Wed, 12 Jun 2024 00:45:30 GMT
|
||||
Last-Modified:
|
||||
- Tue, 11 Jun 2024 08:31:03 GMT
|
||||
Pragma:
|
||||
- no-cache
|
||||
Server:
|
||||
- Apache
|
||||
Strict-Transport-Security:
|
||||
- max-age=86400
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series/observations?api_key=MOCK_API_KEY&file_type=json&limit=100000&observation_end=2024-06-06&observation_start=2024-06-01&series_id=ECBESTRTOTVOL
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy0TUw0zU0VNJByKbmpaDL5ScVpxaVJZZk
|
||||
5udhaDYAaUZWgKrfwExJR6k0L7OkWMlKKSczT0lHKb+0pKC0JL6ksiBVycpQRyktMycVylPKKs4H
|
||||
KylKSS2KT6pUslJCNjolsSRVSUepOL+oJD4fpETJSimxOFlJRyk5vzSvRMnKREcpPy2tOLVEycpA
|
||||
RyknMzezRMnK0AAEdJBNKlayiqYkQMAOQQSggbGSjlJZYk5pqpKVkqmBpaGBUq0ONc03QTbf1MDM
|
||||
kMrmm6KYb2lKbfeDEgE8fAAzMjIwU6qNrQUAVd76d5ICAAA=
|
||||
headers:
|
||||
Cache-Control:
|
||||
- max-age=0, no-cache
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '263'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Wed, 12 Jun 2024 00:45:30 GMT
|
||||
Expires:
|
||||
- Wed, 12 Jun 2024 00:45:30 GMT
|
||||
Last-Modified:
|
||||
- Tue, 11 Jun 2024 08:31:02 GMT
|
||||
Pragma:
|
||||
- no-cache
|
||||
Server:
|
||||
- Apache
|
||||
Strict-Transport-Security:
|
||||
- max-age=86400
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series/observations?api_key=MOCK_API_KEY&file_type=json&limit=100000&observation_end=2024-06-06&observation_start=2024-06-01&series_id=ECBESTRNUMACTBANKS
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy0TUw0zU0VNJByKbmpaDL5ScVpxaVJZZk
|
||||
5udhaDYAaUZWgKrfwExJR6k0L7OkWMlKKSczT0lHKb+0pKC0JL6ksiBVycpQRyktMycVylPKKs4H
|
||||
KylKSS2KT6pUslJCNjolsSRVSUepOL+oJD4fpETJSimxOFlJRyk5vzSvRMnKREcpPy2tOLVEycpA
|
||||
RyknMzezRMnK0AAEdJBNKlayiqYkQMAOQQSggbGSjlJZYk5pqpKVkrGxUq0ONQ03QTbchMqGm9LS
|
||||
cFDcw4MFMFOl2thaAL7Xi7+GAgAA
|
||||
headers:
|
||||
Cache-Control:
|
||||
- max-age=0, no-cache
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '249'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Wed, 12 Jun 2024 00:45:30 GMT
|
||||
Expires:
|
||||
- Wed, 12 Jun 2024 00:45:30 GMT
|
||||
Last-Modified:
|
||||
- Tue, 11 Jun 2024 08:31:03 GMT
|
||||
Pragma:
|
||||
- no-cache
|
||||
Server:
|
||||
- Apache
|
||||
Strict-Transport-Security:
|
||||
- max-age=86400
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series?api_key=MOCK_API_KEY&file_type=json&series_id=ECBESTRRT75THPCTVOL
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy0TUw0zU0VNJByKbmpaDLFacWZaYWFytZ
|
||||
RVcrZYJkXZ2dXINDgoJCzE1DPAKcQ8L8fZCNINmCksySnFQlKyXX0qJ8heCM/KIS3ZDUolyFoMSS
|
||||
VCswqZBYomBuWpKhEJBalJyaV5KZk6qQn6YQlp9TmpuqpKOUn1ScWlSWWJKZn4fkP0NLXUMDXQOQ
|
||||
/5AVoHnRQElHKa0otbA0NS+5UslKySUxM6cSWSy+GOQkkIySjlJpXmZJsZKVEtQhMBG4GlUlHaXi
|
||||
1MTi/LzEnPjElKzS4pLc1DxQePvllygEQ2VyKhUcwXKpKdjVw83zC3ZU0lHKSSwuiS8tSEksSQVF
|
||||
ACLqFAyMrYwNrQyMdQ1MlXSUCvILSnMSizJLKpWszHSU8vJLUkGODclIVUgFBS7YJ7oloMAtSixJ
|
||||
VdCIKTUySEwODgnSVChKTctJTS4pVijJSFUoz8jPSS1OzIHqK80rTk0uLUpNUcgvSy3Ky0zPKFFI
|
||||
yi8qyi/PzEtXSM4vLikGxUdSYl52sUJOfjLInQqZeWCjwBYnFqUm6imA3OHq7KRQUJqUk1mckVqs
|
||||
kJ+nkFlSrFCemlScWZIKVg93EijSDSysDAwUnF1DQCpTE5MzFEIcg9xdQ4wUkkqLM/NSi4sVQIEC
|
||||
MRqhE5TQFSDpViGzWAEaciAzQJ5zdXYCKTW0LFYILkksySwuyUxOzFFwSSxJVAhPLErNyC8tTlXQ
|
||||
CHYJ11QAh1hOpUJiWklqEZr7wN5IBqc6vZi8mDyQ91JAqUcBZDw4WEG2JyUWgwIOEholRYl5xYnJ
|
||||
oJRarFCeWZKBFKK5iSWloLhTKMlILFEoTy1KVSgpSkxJTVFIzEtRKE4tKclBGFRQlFqWmV9aDA8Q
|
||||
SDh45ikEu4TroLkUGhSJRakKmXkpqRWpKQpJlQqgUNJRKM8AW5SRCuZD5FETA9gR4HAGRTIoBEvz
|
||||
UlKLcipBkY/sIT0Ft/wihdSKxNyCnFSIG5AyHji2QbpBSU9HoQyceaE+1FFILUnWgwQIyFlQZxgq
|
||||
+CeX5CelFikYGRhawlwF1gOyGxSOZZkllZCITSxRSEms1AEHVnJ+UVFqcUF+XopCST5aYICjrTgD
|
||||
EpRGKDaAoxHkh7TSopKM1CKFzLy0/KJccBSDbAclAYhxNokKGUWpabbqGSUlBcVWMfox+uXl5Xqp
|
||||
yUl6oARfkKiXWhqjX1ySWFIco5+WmZeYl5yZmBOfm1iUnVpSHJ+YlxKfmVeSWpRaXBIPCo/iGH2Q
|
||||
Pki+B+dQsHCMfkZJbg5ErrikKB6U/coyU8v1UvP0QDLqdv5lqUUgEVDUxMByM2AKNjH6dnpKtbG1
|
||||
APGLPo75BQAA
|
||||
headers:
|
||||
Cache-Control:
|
||||
- max-age=0, no-cache
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '1035'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Wed, 12 Jun 2024 00:45:30 GMT
|
||||
Expires:
|
||||
- Wed, 12 Jun 2024 00:45:30 GMT
|
||||
Last-Modified:
|
||||
- Tue, 11 Jun 2024 08:31:03 GMT
|
||||
Pragma:
|
||||
- no-cache
|
||||
Server:
|
||||
- Apache
|
||||
Strict-Transport-Security:
|
||||
- max-age=86400
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series/observations?api_key=MOCK_API_KEY&file_type=json&limit=100000&observation_end=2024-06-06&observation_start=2024-06-01&series_id=ECBESTRRT25THPCTVOL
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy0TUw0zU0VNJByKbmpaDL5ScVpxaVJZZk
|
||||
5udhaDYAaUZWgKrfwExJR6k0L7OkWMlKKSczT0lHKb+0pKC0JL6ksiBVycpQRyktMycVylPKKs4H
|
||||
KylKSS2KT6pUslJCNjolsSRVSUepOL+oJD4fpETJSimxOFlJRyk5vzSvRMnKREcpPy2tOLVEycpA
|
||||
RyknMzezRMnK0AAEdJBNKlayiqYkQMAOQQSggbGSjlJZYk5pqpKVkrGehYVSrQ41jTehrfGmtDUe
|
||||
lAJQAwew2FoAwv7SiI4CAAA=
|
||||
headers:
|
||||
Cache-Control:
|
||||
- max-age=0, no-cache
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '245'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Wed, 12 Jun 2024 00:45:30 GMT
|
||||
Expires:
|
||||
- Wed, 12 Jun 2024 00:45:30 GMT
|
||||
Last-Modified:
|
||||
- Tue, 11 Jun 2024 08:31:03 GMT
|
||||
Pragma:
|
||||
- no-cache
|
||||
Server:
|
||||
- Apache
|
||||
Set-Cookie:
|
||||
- cookiesession1=678A3E1F2CB758BB06C0DEE0931D25DD;Expires=Thu, 12 Jun 2025 00:45:30
|
||||
GMT;Path=/;Secure;HttpOnly
|
||||
Strict-Transport-Security:
|
||||
- max-age=86400
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series?api_key=MOCK_API_KEY&file_type=json&series_id=ECBESTRTOTVOL
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy0TUw0zU0VNJByKbmpaDLFacWZaYWFytZ
|
||||
RVcrZYJkXZ2dXINDgkL8Q8L8fZA1k2x0SWZJTqqSlZJraVG+QnBGflGJbkhqUa5CUGJJqpVCSH5J
|
||||
Yo5CWH5OaW6qko5SflJxalFZYklmfh6SJwwtdQ0NdA1AnkBWgOYPAyUdpbSi1MLS1LzkSiUrJZfE
|
||||
zJxKZLH4YpDtIBklHaXSvMySYiUrJd/MnJzM/Lxihfw0BZATYVJwxapKOkrFqYnF+XmJOfGJKVml
|
||||
xSW5qXmg0PXLL1EIhsrkVCo4guVSU7Crh5vnF+yopKOUk1hcEl9akJJYkgoKbkREKRgYWxkbWhkY
|
||||
6RqYKukoFeQXlOYkFmWWVCpZGRnpKOXll6SCnB2SkaqQCgpRsJ90S0AhWpRYkqqgEVNqZJCYHBwS
|
||||
pKlQlJqWk5pcUqxQkpGqUJ6Rn5NanJgD1VeaV5yaXFqUmqKQX5ZalJeZnlGikJRfVJRfnpmXrpCc
|
||||
X1wCDpKkxLzsYoWc/GSQQxUy88BGgS1OLEpN1FMAucPV2UmhoDQpJ7M4I7VYIT9PIbOkWKE8Nak4
|
||||
syQVrB7uJIXEEgUDCysDAwVn1xCQytTE5AyFEMcgd9cQI4Wk0uLMvNTiYgVQqECMRugEpWsFSDJV
|
||||
yCxWgAYdyAyQ51ydnUBKDS2LFYJLEksyi0sykxNzFFwSSxIVwhOLUjPyS4tTFTSCXcI1FcAhllOp
|
||||
kJhWklqE5j6wN5LB6U8vJi8mD+S9FFA6UgAZDw5WkO1JicWggIOERklRYl5xYjIozRYrlGeWZCCF
|
||||
aG5iSSko8hRKMhJLFMpTi1IVSooSU1JTFBLzUhSKU0tKchAGFRSllmXmlxbDAwQSDp55CsEu4Tpo
|
||||
LoUGRWJRqkJmXkpqRWqKQlKlAiiUdBTKM8AWZaSC+RB51MQAdgQ4nEHpHhSCpXkpqUU5laDIR/aQ
|
||||
noJbfpFCakVibkFOKsQNSFkQHNsg3aCkp6NQBs7GUB/qKKSWJOtBAgTkLKgzDBX8k0vyk1KLFIwM
|
||||
DC1hrgLrAdkNCseyzJJKSMQmliikJFbqgAMrOb+oKLW4ID8vRaEkHy0wwNFWnAEJSiMUG8DRCPJD
|
||||
WmlRSUZqkUJmXlp+US44ikG2g5IAxDibRIWMotQ0W/WMkpKCYqsY/Rj98vJyvdTkJD1Qgi9I1Est
|
||||
jdEvLkksKY7RT8vMS8xLzkzMic9NLMpOLSmOT8xLic/MK0ktSi0uiQeFR3GMPkgfJOODcyhYOEY/
|
||||
oyQ3ByJXXFIUD8p+ZZmp5XqpeXogGXU7/7LUIpAIKGpiYLkZMAWbGH07PaXa2FoAJD9WsOgFAAA=
|
||||
headers:
|
||||
Cache-Control:
|
||||
- max-age=0, no-cache
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '1025'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Wed, 12 Jun 2024 00:45:30 GMT
|
||||
Expires:
|
||||
- Wed, 12 Jun 2024 00:45:30 GMT
|
||||
Last-Modified:
|
||||
- Tue, 11 Jun 2024 08:31:02 GMT
|
||||
Pragma:
|
||||
- no-cache
|
||||
Server:
|
||||
- Apache
|
||||
Strict-Transport-Security:
|
||||
- max-age=86400
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series?api_key=MOCK_API_KEY&file_type=json&series_id=ECBESTRNUMACTBANKS
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy0TUw0zU0VNJByKbmpaDLFacWZaYWFytZ
|
||||
RVcrZYJkXZ2dXINDgvxCfR2dQ5wc/byDkU0g2fySzJKcVCUrJdfSonyF4Iz8ohLdkNSiXIWgxJJU
|
||||
KwW/0tyk1CKF/DQFx+SSzLJUBafEvOxiJR2l/KTi1KKyxJLM/DwkPxla6hoa6BqA/ISsAM1bBko6
|
||||
SmlFqYWlqXnJlUpWSi6JmTmVyGLxxSB3gGSUdJRK8zJLipWslCBOgQnAlfhm5uiB3Adyv5KOUnFq
|
||||
YnF+XmJOfGJKVmlxSW5qHii0/fJLFIKhMjmVCo5gudQU7OrhRvsFOyrpKOUkFpfElxakJJakgoIf
|
||||
EXEKBsZWxoZWBsa6BqZKOkoF+QWlOYlFmSWVSlamOkp5+SWpIGeHZKQqpILCFuwn3RJQ2BYllqQq
|
||||
aMSUGhkkJgeHBGkqFKWm5aQmlxQrlGSkKpRn5OekFifmQPWV5hWnJpcWpaYo5JelFuVlpmeUKCTl
|
||||
FxXll2fmpSsk5xeXFIP8nwSKGIWc/GSQOxUy88BGgS1OLEpN1FMAucPV2UmhoDQpJ7M4I7VYIT9P
|
||||
IbOkWKE8Nak4syQVrB7uJIXEEgUDCysDAwVn1xCQytTE5AyFEMcgd9cQI4Wk0uLMvNTiYgVQoECM
|
||||
RugEJXMFSKpVyCxWgIYcyAyQ51ydnUBKDS2LFYJLEksyi0sykxNzFFwSSxIVwhOLUjPyS4tTFTSC
|
||||
XcI1FcAhllOpkJhWklqE5j6wN5LB6U8vJi8mD+S9FFA6UgAZDw5WkO1JicWggIOERklRYl5xYjIo
|
||||
zRYrlGeWZCCFaG5iSSko7hRKMhJLFMpTi1IVSooSU1JTFBLzUhSKU0tKchAGFRSllmXmlxbDAwQS
|
||||
Dp55CsEu4TpoLoUGRWJRqkJmXkpqRWqKQlKlAiiUdBTKM8AWZaSC+RB51MQAdgQ4nEGRDArB0ryU
|
||||
1KKcSlDkI3tIT8Etv0ghtSIxtyAnFeIGpCwIjm2QblDS01Eoy88pzYX5UEchtSRZDxIgIGdBnWGo
|
||||
4J9ckg/K/UYGhpYwV4FDBWQ3KBzLMksqIRGbWKKQklipAw6s5PyiotTigvy8FIWSfLTAAEdbcQYk
|
||||
KI1QbABHI8gPaaVFJRmpRQqZeWn5RbngKAbZDkoCEONsEhUyilLTbNUzSkoKiq1i9GP0y8vL9VKT
|
||||
k/RACb4gUS+1NEa/uCSxpDhGPy0zLzEvOTMxJz43sSg7taQ4PjEvJT4zryS1KLW4JB4UHsUx+iB9
|
||||
kHwPzqFg4Rj9jJLcHIhccUlRPCj7lWWmluul5umBZNTt/MtSi0AioKiJgeVmwBRsYvTt9JRqY2sB
|
||||
w+VlTPcFAAA=
|
||||
headers:
|
||||
Cache-Control:
|
||||
- max-age=0, no-cache
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '1034'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Wed, 12 Jun 2024 00:45:30 GMT
|
||||
Expires:
|
||||
- Wed, 12 Jun 2024 00:45:30 GMT
|
||||
Last-Modified:
|
||||
- Tue, 11 Jun 2024 08:31:03 GMT
|
||||
Pragma:
|
||||
- no-cache
|
||||
Server:
|
||||
- Apache
|
||||
Strict-Transport-Security:
|
||||
- max-age=86400
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
Cookie:
|
||||
- cookiesession1=678A3E1F2CB758BB06C0DEE0931D25DD
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series?api_key=MOCK_API_KEY&file_type=json&series_id=ECBESTRRT25THPCTVOL
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy0TUw0zU0VNJByKbmpaDLFacWZaYWFytZ
|
||||
RVcrZYJkXZ2dXINDgoJCjExDPAKcQ8L8fZCNINmCksySnFQlKyXX0qJ8heCM/KIS3ZDUolyFoMSS
|
||||
VCswqZBYomBkWpKhEJBalJyaV5KZk6qQn6YQlp9TmpuqpKOUn1ScWlSWWJKZn4fkP0NLXUMDXQOQ
|
||||
/5AVoHnRQElHKa0otbA0NS+5UslKySUxM6cSWSy+GOQkkIySjlJpXmZJsZKVEtQhMBG4Gr/S3KTU
|
||||
IiUdpeLUxOL8vMSc+MSUrNLiktzUPFCg++WXKARDZXIqFRzBcqkp2NUjDA12VNJRykksLokvLUhJ
|
||||
LEkFxQIi/hQMjK2MDa0MjHUNTJV0lAryC0pzEosySyqVrEx1lPLyS1JBLg7JSFVIBYUw2Du6JaAQ
|
||||
LkosSVXQiCk1MkhMDg4J0lQoSk3LSU0uKVYoyUhVKM/Iz0ktTsyB6ivNK05NLi1KTVHIL0stystM
|
||||
zyhRSMovKsovz8xLV0jOLy4pBkVKUmJedrFCTn4yyJ0KmXlgo8AWJxalJuopgNzh6uykUFCalJNZ
|
||||
nJFarJCfp5BZUqxQnppUnFmSClYPdxIo5g0srAwMFJxdQ0AqUxOTMxRCHIPcXUOMFJJKizPzUouL
|
||||
FUCBAjEaoROU2hUgiVchs1gBGnIgM0Cec3V2Aik1tCxWCC5JLMksLslMTsxRcEksSVQITyxKzcgv
|
||||
LU5V0Ah2CddUAIdYTqVCYlpJahGa+8DeSAYnPb2YvJg8kPdSQElIAWQ8OFhBticlFoMCDhIaJUWJ
|
||||
ecWJyaDkWqxQnlmSgRSiuYklpaC4UyjJSCxRKE8tSlUoKUpMSU1RSMxLUShOLSnJQRhUUJRalplf
|
||||
WgwPEEg4eOYpBLuE66C5FBoUiUWpCpl5KakVqSkKSZUKoFDSUSjPAFuUkQrmQ+RREwPYEeBwBkUy
|
||||
KARL81JSi3IqQZGP7CE9Bbf8IoXUisTcgpxUiBuQch84tkG6QUlPR6EMnIOhPtRRSC1J1oMECMhZ
|
||||
UGcYKvgnl+QnpRYpGBkYWsJcBdYDshsUjmWZJZWQiE0sUUhJrNQBB1ZyflFRanFBfl6KQkk+WmCA
|
||||
o604AxKURig2gKMR5Ie00qKSjNQihcy8tPyiXHAUg2wHJQGIcTaJChlFqWm26hklJQXFVjH6Mfrl
|
||||
5eV6qclJeqAEX5Col1oao19cklhSHKOflpmXmJecmZgTn5tYlJ1aUhyfmJcSn5lXklqUWlwSDwqP
|
||||
4hh9kD5IvgfnULBwjH5GSW4ORK64pCgelP3KMlPL9VLz9EAy6nb+ZalFIBFQ1MTAcjNgCjYx+nZ6
|
||||
SrWxtQB4WEb5/gUAAA==
|
||||
headers:
|
||||
Cache-Control:
|
||||
- max-age=0, no-cache
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '1039'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Wed, 12 Jun 2024 00:45:30 GMT
|
||||
Expires:
|
||||
- Wed, 12 Jun 2024 00:45:30 GMT
|
||||
Last-Modified:
|
||||
- Tue, 11 Jun 2024 08:31:03 GMT
|
||||
Pragma:
|
||||
- no-cache
|
||||
Server:
|
||||
- Apache
|
||||
Strict-Transport-Security:
|
||||
- max-age=86400
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series/observations?api_key=MOCK_API_KEY&file_type=json&limit=100000&observation_end=2024-06-06&observation_start=2024-06-01&series_id=ECBESTRVOLWGTTRMDMNRT
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy0TUw0zU0VNJByKbmpaDL5ScVpxaVJZZk
|
||||
5udhaDYAaUZWgKrfwExJR6k0L7OkWMlKKSczT0lHKb+0pKC0JL6ksiBVycpQRyktMycVylPKKs4H
|
||||
KylKSS2KT6pUslJCNjolsSRVSUepOL+oJD4fpETJSimxOFlJRyk5vzSvRMnKREcpPy2tOLVEycpA
|
||||
RyknMzezRMnK0AAEdJBNKlayiqYkQMAOQQSggbGSjlJZYk5pqpKVkrGepaExyEYYNlaq1aGmZSZo
|
||||
lhlS2XxTNPNp6hlQ8kAOOcAMlWpjawEvUhJYrAIAAA==
|
||||
headers:
|
||||
Cache-Control:
|
||||
- max-age=0, no-cache
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '259'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Wed, 12 Jun 2024 00:45:31 GMT
|
||||
Expires:
|
||||
- Wed, 12 Jun 2024 00:45:31 GMT
|
||||
Last-Modified:
|
||||
- Tue, 11 Jun 2024 08:31:01 GMT
|
||||
Pragma:
|
||||
- no-cache
|
||||
Server:
|
||||
- Apache
|
||||
Strict-Transport-Security:
|
||||
- max-age=86400
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series/observations?api_key=MOCK_API_KEY&file_type=json&limit=100000&observation_end=2024-06-06&observation_start=2024-06-01&series_id=ECBESTRSHRVOL5LRGACTBNK
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy0TUw0zU0VNJByKbmpaDL5ScVpxaVJZZk
|
||||
5udhaDYAaUZWgKrfwExJR6k0L7OkWMlKKSczT0lHKb+0pKC0JL6ksiBVycpQRyktMycVylPKKs4H
|
||||
KylKSS2KT6pUslJCNjolsSRVSUepOL+oJD4fpETJSimxOFlJRyk5vzSvRMnKREcpPy2tOLVEycpA
|
||||
RyknMzezRMnK0AAEdJBNKlayiqYkQMAOQQSggbGSjlJZYk5pqpKVkqmRUq0ONQ03QTLcxILKhpsi
|
||||
G25JZcNBcQ8PFsAMlGpjawGSSg7rhgIAAA==
|
||||
headers:
|
||||
Cache-Control:
|
||||
- max-age=0, no-cache
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '253'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Wed, 12 Jun 2024 00:45:31 GMT
|
||||
Expires:
|
||||
- Wed, 12 Jun 2024 00:45:31 GMT
|
||||
Last-Modified:
|
||||
- Tue, 11 Jun 2024 08:31:02 GMT
|
||||
Pragma:
|
||||
- no-cache
|
||||
Server:
|
||||
- Apache
|
||||
Set-Cookie:
|
||||
- ak_bmsc=B1ED63987E645FBC544D109EBF062C1E~000000000000000000000000000000~YAAQb/TVF3Ifks2PAQAAdDfoCRjJWLtikVPFr8sA5LA6vk7t9WKk0I+2aFtrBG0z06ujHQ04hlrRs23LSYDS9cLtbcYVKuHR2s0ZMgLqbKWmr1jylEDR3S9/691Ork3uIjTbX3CRP5lCRmPa+L9QeuIvPsBHvo3GRKixwVECRYOvE8RrMfWfS7Xpja8NW62MvIb7KOfCpgIeXXWlk1i6U7dnJdsAbdXEfwLX6SlkU44G8B2Hm25gEzVZONV32PIPsGM0yYKlA3SH6jiDO+I1XFHbH2KCWVpHr9uKGgWa/mbeixv0y0ZWgF324gkTZF64tRsCdo8/x/J0NW3Wyz4W0EOg+CwOTWlA07m0HE1C8tC8v/zbltSlVFgJlv+UVBeE;
|
||||
Domain=.stlouisfed.org; Path=/; Expires=Wed, 12 Jun 2024 02:45:29 GMT; Max-Age=7198
|
||||
Strict-Transport-Security:
|
||||
- max-age=86400
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series/observations?api_key=MOCK_API_KEY&file_type=json&limit=100000&observation_end=2024-06-06&observation_start=2024-06-01&series_id=ECBESTRNUMTRANS
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy0TUw0zU0VNJByKbmpaDL5ScVpxaVJZZk
|
||||
5udhaDYAaUZWgKrfwExJR6k0L7OkWMlKKSczT0lHKb+0pKC0JL6ksiBVycpQRyktMycVylPKKs4H
|
||||
KylKSS2KT6pUslJCNjolsSRVSUepOL+oJD4fpETJSimxOFlJRyk5vzSvRMnKREcpPy2tOLVEycpA
|
||||
RyknMzezRMnK0AAEdJBNKlayiqYkQMAOQQSggbGSjlJZYk5pqpKVkrmBhVKtDjVNN0E23diIyqab
|
||||
IptuRG3TQdEPCxnAzCyNlWpjawFzwxEMigIAAA==
|
||||
headers:
|
||||
Cache-Control:
|
||||
- max-age=0, no-cache
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '256'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Wed, 12 Jun 2024 00:45:31 GMT
|
||||
Expires:
|
||||
- Wed, 12 Jun 2024 00:45:31 GMT
|
||||
Last-Modified:
|
||||
- Tue, 11 Jun 2024 08:31:03 GMT
|
||||
Pragma:
|
||||
- no-cache
|
||||
Server:
|
||||
- Apache
|
||||
Set-Cookie:
|
||||
- cookiesession1=678A3E1F63E6E6EB614EDBC8D77ADECD;Expires=Thu, 12 Jun 2025 00:45:31
|
||||
GMT;Path=/;Secure;HttpOnly
|
||||
Strict-Transport-Security:
|
||||
- max-age=86400
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
Cookie:
|
||||
- cookiesession1=678A3E1F2CB758BB06C0DEE0931D25DD
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series?api_key=MOCK_API_KEY&file_type=json&series_id=ECBESTRVOLWGTTRMDMNRT
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy0TUw0zU0VNJByKbmpaDLFacWZaYWFytZ
|
||||
RVcrZYJkXZ2dXINDgsL8fcLdQ0KCfF18/YJCkA0h2YqSzJKcVCUrJdfSonyF4Iz8ohLdkNSiXIWg
|
||||
xJJUK4Ww/JzS3FTd8NTM9IyS1BSFkKLM3NzUFAXf1MQ8sBIlHaX8pOLUorLEksz8PCQfGlrqGhro
|
||||
GoB8iKwAzZMGSjpKaUWphaWpecmVSlZKLomZOZXIYvHFICeBZJR0lErzMkuKlayUAlKLklPzSmAi
|
||||
cDWqSjpKxamJxfl5iTnxiSlZpcUluSB1Vkp++SUKwVCZnEoFR7Bcagp29XDz/IIdlXSUchKLS+JL
|
||||
C1ISS1JBUYCIPAUDYytjQysDQ10DUyUdpYL8gtKcxKLMkkolK1NDHaW8/JJUkGtDMlIVUkGhC/aK
|
||||
bgkodIsSS1IVNGJKjQwSk4NDgjQVilLTclKTS4oVSjJSFcoz8nNSixNzoPpK84pTk0uLUlMU8stS
|
||||
i/JAUaGQlF9UlF+emZeukJxfXFKskJ+mkJSYl12skJOfDHKoQmYe2CiwxYlFqYl6CiB3uDo7KRSU
|
||||
JuVkFmekFivk5ylklhQrlKcmFWeWpILVw52kkFiiYGBhZWCg4OwaAlKZmpicoRDiGOTuGmKkkFRa
|
||||
nJmXWlysAAoViNEInaC0rgBJugqZxQrQoAOZAfKcq7MTSKmhZbFCcEliSWZxSWZyYo6CS2JJokJ4
|
||||
YlFqRn5pcaqCRrBLuKYCOMRyKhUS00pSi9DcB/ZGMjjZ6cXkxeSBvJcCSj4KIOPBwQqyPSmxGBRw
|
||||
kNAoKUrMK05MBiXVYoXyzJIMpBDNTSwpBUWeQklGYolCeWpRqkJJUWJKaopCYl6KQnFqSUkOwqCC
|
||||
otSyzPzSYniAQMLBM08h2CVcB82l0KBILEpVyMxLSa1ITVFIqlQAhZKOQnkG2KKMVDAfIo+aGMCO
|
||||
AIczKJJBIVial5JalFMJinxkD+kpuOUXKaRWJOYW5KRC3ICU88CxDdINSno6CmXgjA31oY5Cakmy
|
||||
HiRAQM6COsNQwT+5JD8ptUjByMDQEuYqsB6Q3aBwLMssqYREbGKJQkpipQ44sJLzi4pSiwvy81IU
|
||||
SvLRAgMcbcUZkKA0QrEBHI0gP6SVFpVkpBYpZOal5RflgqMYZDsoCUCMs0lUyChKTbNVzygpKSi2
|
||||
itGP0S8vL9dLTU7SAyX4gkS91NIY/eKSxJLiGP20zLzEvOTMxJz43MSi7NSS4vjEvJT4zLyS1KLU
|
||||
4pJ4UHgUx+iD9EEyPjiHgoVj9DNKcnMgcsUlRfGg7FeWmVqul5qnB5JRt/MvSy0CiYCiJgaWmwFT
|
||||
sInRt9NTqo2tBQBvXqJv/AUAAA==
|
||||
headers:
|
||||
Cache-Control:
|
||||
- max-age=0, no-cache
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '1045'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Wed, 12 Jun 2024 00:45:32 GMT
|
||||
Expires:
|
||||
- Wed, 12 Jun 2024 00:45:32 GMT
|
||||
Last-Modified:
|
||||
- Tue, 11 Jun 2024 08:31:01 GMT
|
||||
Pragma:
|
||||
- no-cache
|
||||
Server:
|
||||
- Apache
|
||||
Strict-Transport-Security:
|
||||
- max-age=86400
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
Cookie:
|
||||
- ak_bmsc=B1ED63987E645FBC544D109EBF062C1E~000000000000000000000000000000~YAAQb/TVF3Ifks2PAQAAdDfoCRjJWLtikVPFr8sA5LA6vk7t9WKk0I+2aFtrBG0z06ujHQ04hlrRs23LSYDS9cLtbcYVKuHR2s0ZMgLqbKWmr1jylEDR3S9/691Ork3uIjTbX3CRP5lCRmPa+L9QeuIvPsBHvo3GRKixwVECRYOvE8RrMfWfS7Xpja8NW62MvIb7KOfCpgIeXXWlk1i6U7dnJdsAbdXEfwLX6SlkU44G8B2Hm25gEzVZONV32PIPsGM0yYKlA3SH6jiDO+I1XFHbH2KCWVpHr9uKGgWa/mbeixv0y0ZWgF324gkTZF64tRsCdo8/x/J0NW3Wyz4W0EOg+CwOTWlA07m0HE1C8tC8v/zbltSlVFgJlv+UVBeE;
|
||||
cookiesession1=678A3E1F63E6E6EB614EDBC8D77ADECD
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series?api_key=MOCK_API_KEY&file_type=json&series_id=ECBESTRNUMTRANS
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy0TUw0zU0VNJByKbmpaDLFacWZaYWFytZ
|
||||
RVcrZYJkXZ2dXINDgvxCfUOCHP2CkbWTbHhJZklOqpKVkmtpUb5CcEZ+UYluSGpRrkJQYkmqlYJf
|
||||
aW5SapFCfppCSFFiXnFicklmfl6xko5SflJxalFZIoiL5CFDS11DA10DkIeQFaD5yUBJRymtKLWw
|
||||
NDUvuVLJSsklMTOnElksvhjkDpCMko5SaV5mSbGSlRLEKTABuBK4cHFqYnF+XmJOfGJKVmlxSW5q
|
||||
HiiQ/fJLFIKhMjmVCo5gudQUJR0lLOoRhgY7Kuko5SQWl8SXFqQklqSCQh0RXwoGxlbGhlYGxroG
|
||||
pko6SgX5BaU5iUWZJZVKVmY6Snn5JakgB4dkpCqkgkIV7BvdElCoFiWWpCpoxJQaGSQmB4cEaSoU
|
||||
pablpCaXFCuUZKQqlGfk56QWJ+ZA9ZXmFacmlxalpijkl6UW5WWmZ5QoJOUXFeWXZ+alKyTnF5cU
|
||||
g2ImKTEvu1ghJz8Z5E6FzDywUWCLE4tSE/UUQO5wdXZSKChNyskszkgtVsjPU8gsKVYoT00qzixJ
|
||||
BauHO0khsUTBwMLKwEDB2TUEpDI1MTlDIcQxyN01xEghqbQ4My+1uFgBFCgQoxE6QalbAZJYFTKL
|
||||
FaAhBzID5DlXZyeQUkPLYoXgksSSzOKSzOTEHAWXxJJEhfDEotSM/NLiVAWNYJdwTQVwiOVUKiSm
|
||||
laQWobkP7I1kcMrTi8mLyQN5LwWUghRAxoODFWR7UmIxKOAgoVGClHgVyjNLMpBCNDexpBQUdwol
|
||||
GYklCuWpRakKJUWJKakpCol5KQrFqSUlOQiDCopSyzLzS4vhAQIJB888hWCXcB00l0KDIrEoVSEz
|
||||
LyW1IjVFIalSARRKOgrlGWCLMlLBfIg8amIAOwIczqBIBoVgaV5KalFOJSjykT2kp+CWX6SQWpGY
|
||||
W5CTCnEDUuYDxzZINyjp6SiU5eeU5sJ8qKOQWpKsBwkQkLOgzjBU8E8uyQfleyMDQ0uYq8ChArIb
|
||||
VAiUZZZUQiI2sUQhJbFSBxxYyflFRanFBfl5KQol+WiBAY624gxIUBqh2ACORpAf0kqLSjJSixQy
|
||||
89Lyi3LBUQyyHZQEIMbZJCpkFKWm2apnlJQUFFvF6Mfol5eX66UmJ+mBEnxBol5qaYx+cUliSXGM
|
||||
flpmXmJecmZiTnxuYlF2aklxfGJeSnxmXklqUWpxSTwoPIpj9EH6IPkenEPBwjH6GSW5ORC54pKi
|
||||
eFD2K8tMLddLzdMDyajb+ZelFoFEQFETA8vNgCnYxOjb6SnVxtYCAKOf0NHuBQAA
|
||||
headers:
|
||||
Cache-Control:
|
||||
- max-age=0, no-cache
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '1017'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Wed, 12 Jun 2024 00:45:32 GMT
|
||||
Expires:
|
||||
- Wed, 12 Jun 2024 00:45:32 GMT
|
||||
Last-Modified:
|
||||
- Tue, 11 Jun 2024 08:31:03 GMT
|
||||
Pragma:
|
||||
- no-cache
|
||||
Server:
|
||||
- Apache
|
||||
Set-Cookie:
|
||||
- bm_sv=91F0A72F7D156D3A652156DC7B92A4EA~YAAQb/TVF3kfks2PAQAAIjnoCRhx2kckIuIMda4fQ5nGlVPANgBEeZ13Xil9TebC0aW40wdbAc8SCIv7T7uUmRhPN+MMy2mtkyt95XPYlDpCBFCmopVsOlHnT3fNF64esgLWWMhmdMZBQa0YETWB/U5DzL0DUNagax2iSfwhbqN9HGmXkZ8bP2BT0Q2v3/S+gJPDQeUq7F6nrO+PiUhZmRzQdaoOAkqZBjpOEg2R9fqwrvyG8KKK9nB8cllP8ziqrMf7NA==~1;
|
||||
Domain=.stlouisfed.org; Path=/; Expires=Wed, 12 Jun 2024 02:45:32 GMT; Max-Age=7200;
|
||||
Secure
|
||||
Strict-Transport-Security:
|
||||
- max-age=86400
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
Cookie:
|
||||
- ak_bmsc=B1ED63987E645FBC544D109EBF062C1E~000000000000000000000000000000~YAAQb/TVF3Ifks2PAQAAdDfoCRjJWLtikVPFr8sA5LA6vk7t9WKk0I+2aFtrBG0z06ujHQ04hlrRs23LSYDS9cLtbcYVKuHR2s0ZMgLqbKWmr1jylEDR3S9/691Ork3uIjTbX3CRP5lCRmPa+L9QeuIvPsBHvo3GRKixwVECRYOvE8RrMfWfS7Xpja8NW62MvIb7KOfCpgIeXXWlk1i6U7dnJdsAbdXEfwLX6SlkU44G8B2Hm25gEzVZONV32PIPsGM0yYKlA3SH6jiDO+I1XFHbH2KCWVpHr9uKGgWa/mbeixv0y0ZWgF324gkTZF64tRsCdo8/x/J0NW3Wyz4W0EOg+CwOTWlA07m0HE1C8tC8v/zbltSlVFgJlv+UVBeE;
|
||||
cookiesession1=678A3E1F2CB758BB06C0DEE0931D25DD
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series?api_key=MOCK_API_KEY&file_type=json&series_id=ECBESTRSHRVOL5LRGACTBNK
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy0TUw0zU0VNJByKbmpaDLFacWZaYWFytZ
|
||||
RVcrZYJkXZ2dXINDgoI9gsL8fUx9gtwdnUOc/LyRjSHZkpLMkpxUJSsl19KifIXgjPyiEt2Q1KJc
|
||||
haDEklQrheCMxKJUhfw0hbD8nNJcMKskI1XBVMEnsSg9tbhEwTG5JLMsVcEpMS+7WElHKT+pOLWo
|
||||
LLEkMz8Pyb+GlrqGBroGIP8iK0DzsoGSjlJaUWphaWpecqWSlZJLYmZOJbJYfDHIeSAZJR2l0rzM
|
||||
kmIlK6WA1KLk1LwSmAhcjaqSjlJxamJxfl5iTnxiSlZpcUkuSJ2Vkl9+iUIwVCanUsERLJeagl09
|
||||
3Dy/YEclHaWcxOKS+NKClMSSVFCEIKJSwcDYytjQysBI18BUSUepIL+gNCexKLOkUsnKVEcpL78k
|
||||
FeTYkIxUhVRQQIN9olsCCuiixJJUBY2YUiODxOTgkCBNhaLUtJzU5JJiBVBIl2fk56QWJ+ZA9ZXm
|
||||
Facmlxalpijkl6UW5WWmZ5QoJOUXFeWXZ+alKyTnF5cUg2IrCRQdCjn5ySB3KmTmgY0CW5xYlJqo
|
||||
pwByh6uzk0JBaVJOZnFGarFCfp5CZkmxQnlqUnFmSSpYPdxJCoklCgYWVgYGCs6uISCVqYnJGQoh
|
||||
jkHuriFGCkmlxZl5qcXFCqBAgRiN0AlK+AqQdKyQWawADTmQGSDPuTo7gZQaWhYrBJcklmQWl2Qm
|
||||
J+YouCSWJCqEJxalZuSXFqcqaAS7hGsqgEMsp1IhMa0ktQjNfWBvJINTnV5MXkweyHspoNSjADIe
|
||||
HKwg25MSi0EBBwmNkqLEvOLEZFBKLVYozyzJQArR3MSSUlDcKZRkJJYolKcWpSqUFCWmpKYoJOal
|
||||
KBSnlpTkIAwqKEoty8wvLYYHCCQcPPMUgl3CddBcCg0KUKbKzEtJrUhNUUiqVACFko5CeQbYooxU
|
||||
MF8BLI+aGMCOAIczKJJBIVial5JalFMJinxkD+kpuOUXKaRWJOYW5KRC3ICU8cCxDdINSno6CmWQ
|
||||
rA02PEVHIbUkWQ8SICBnQZ1hqOCfXJKflFqkYGRgaAlzFThUQHaDwrEss6QSErGJJQopiZU64MBK
|
||||
zi8qSi0uyM9LUSjJRwsMcLQVZ0CC0gjFBnA0gvyQVlpUkpFapJCZl5ZflAuOYpDtoCQAMc4mUSGj
|
||||
KDXNVj2jpKSg2CpGP0a/vLxcLzU5SQ+U4AsS9VJLY/SLSxJLimP00zLzEvOSMxNz4nMTi7JTS4rj
|
||||
E/NS4jPzSlKLUotL4kHhURyjD9IHyffgHAoWjtHPKMnNgcgVlxTFg7JfWWZquV5qnh5IRt3Ovyy1
|
||||
CCQCipoYWG4GTMEmRt9OT6k2thYAv8w/ZQkGAAA=
|
||||
headers:
|
||||
Cache-Control:
|
||||
- max-age=0, no-cache
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '1055'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Wed, 12 Jun 2024 00:45:32 GMT
|
||||
Expires:
|
||||
- Wed, 12 Jun 2024 00:45:32 GMT
|
||||
Last-Modified:
|
||||
- Tue, 11 Jun 2024 08:31:02 GMT
|
||||
Pragma:
|
||||
- no-cache
|
||||
Server:
|
||||
- Apache
|
||||
Set-Cookie:
|
||||
- ak_bmsc=B1ED63987E645FBC544D109EBF062C1E~000000000000000000000000000000~YAAQb/TVF3ofks2PAQAALjnoCRiuxQ9zeqe8SGJnJ/g64/VTn4BJg2QpCnbeJnkxqtdpd3YPrWTuSWkIjGAKiXEfzqQq8M1mX1ndeF/t1ZldL5XE9MgGrY7i35Y3cC38Y/XdVrE027A+fBQyrK9wNrt5dQ419+9IkEiyLN00dDJbBnWsxaQLZxXnenCUJzi9XI2AUpsPDOIPAyRycyhrm41IIRBAqdAv0NQ6Y5FH8IJyI2S1i4Q5xGrSZGo3fkJEwdWVtlLi67uA/Y9kWuGj6mivxMutHZCIcsTzgUjhpamTF8KcsD3I/mlifZWj4SX7ewQtaFwQDYvYFUXtX6h0f0vnhxyL+pSkhXEO6hmQMHiK9Ora5wqkHaCoc0OPLLo0n1/cfAXvs5iuYLttC7Emnw==;
|
||||
Domain=.stlouisfed.org; Path=/; Expires=Wed, 12 Jun 2024 02:45:29 GMT; Max-Age=7197
|
||||
- bm_sv=F2E4C843CEC69299AF558F1FD752888D~YAAQb/TVF3sfks2PAQAALjnoCRjgjrmVUPUgELzMM5DKAL9U+ryt4QH3Oh9nZjeYzxDNFU6NAZAtonUJFWC3MwvalRNeIn4taplp4y2WkoePjXj6WEBBEbEeqgVr2HMlab5aMEUcmdd8efs71FQL0fXTCNxJlu5Z4t5xG70DPQtrByMfpZUXu41abKuxgCrCOGWLK1e9GkPSJJos3TeTtfv7oGuTc+Nx0mPU67zFuk3Xtun/WsoKM07jBJpeO+LsGiS/ng==~1;
|
||||
Domain=.stlouisfed.org; Path=/; Expires=Wed, 12 Jun 2024 02:45:32 GMT; Max-Age=7200;
|
||||
Secure
|
||||
Strict-Transport-Security:
|
||||
- max-age=86400
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
version: 1
|
||||
@@ -0,0 +1,146 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series/observations?api_key=MOCK_API_KEY&file_type=json&limit=100000&observation_end=2023-06-06&observation_start=2023-01-01&series_id=DFF
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy0TUw0zUwU9JByKbmpaDL5ScVpxaVJZZk
|
||||
5uchazbWNTDUNTBU0lFCVgDXbww3uzQvs6RYyUopJzMPpLi0pKC0JL6ksiBVycpQRyktMycVylPK
|
||||
Ks4HKylKSS2KT6pUskIxOiWxJFVJR6k4v6gkPh+kRMlKKbE4WUlHKTm/NK9EycrQ1FxHKT8trTi1
|
||||
RMnKQEcpJzM3EyRsAAIozixWsoqmJEjATgEHISIUyhJzSlOVrJRM9IyNlWp1qGm8kZKOEg2NN6at
|
||||
8Sa0Nd6UtsaDcgcNw96ctq63oK3xljQ13tCAtsaDyi7aRa0hbXOtIW1zrSFtc60hbXOtIW1zrSFt
|
||||
c60hbXOtIW1zrRFtc60RbXOtEW1zrRFtc60RbXOtEW1zrRFtc60RbXOtEW1zrRFtc60xbXOtMS1z
|
||||
rRGkG0KrqtxI1wC1UDC1oGb73kjXALVQoLrxqIUC1Y1HLRSobjxqoUB141ELBaobj1ooUN141ELB
|
||||
1Jy6CROtAU5t1xuiFgpUN562uRatAU5119M216I1wKnuetrmWrQGONVdT9tci9YAp7br0RrgVDee
|
||||
trkWrQFOddfTtq5Fa4BT3fW0rWvRGuBUdz1aXUvl2gqtAU7dyhA0zosyGkXdwDHGaGNSNXCMMdqY
|
||||
1DYerbaitvFo6Z7axqPVVtQ2npbp3ljXAK22orbradnGNNZFb2NS2fXobUxqG4/WxqS28bSsrYx1
|
||||
0QZ5qV2k0bSNaayLNshLddej5VqqdvqNddEGeanuerRcS2XX07SNaayLNshL7cChaRvTWBdtkNeC
|
||||
qtPBxrpobUyqG49a11LdeNS6lurGo+ZaqhuPWtdS3XjUXEtt49EGealuPGrPkLrGm6AP8lLdeNSq
|
||||
nOrGo1blVDcetQFOdeNpWSiYQNYgIcbvqe56WhYKJugNcKq7npaFggl6A5zarkdrgFPdeNrmWrRB
|
||||
Xqq7nra5Fq0BTnXX07IqN9FFG+SluutpWZWb6KIN8lLb9WgNcKobT9uqHK0BTnXX07aupWkD3EQX
|
||||
bZUF1QOHtrkWbZUF1V1P21yLtsqC2q6naQPclLYtZFP0IWrqBo4p+hA11Y1HrmtN9QyoOiJiqmuA
|
||||
3EKmgfHIuZYGxiO3kGlgPHKupYHxyC1k6huPMkRNA+OR61oaGI/cQqaB8ch1LQ2Mp22uRWkh08D1
|
||||
tM21KC1kGrietrkWpYVMfdejtJBpYDxtcy1KC5kGrqdtrkVpIdPA9bSta1GWQdDA9bSta1GWQdDA
|
||||
9bSta1FayNR3Pco6ZGobb4baAKeB8bSsys1QG+A0cD0tq3Iz2jbAodtkYUPUkMABLLYWAKC4bi9X
|
||||
OwAA
|
||||
headers:
|
||||
Cache-Control:
|
||||
- max-age=0, no-cache
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '1029'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Thu, 06 Jun 2024 22:09:16 GMT
|
||||
Expires:
|
||||
- Thu, 06 Jun 2024 22:09:16 GMT
|
||||
Last-Modified:
|
||||
- Thu, 06 Jun 2024 20:17:46 GMT
|
||||
Pragma:
|
||||
- no-cache
|
||||
Server:
|
||||
- Apache
|
||||
Strict-Transport-Security:
|
||||
- max-age=86400
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series?api_key=MOCK_API_KEY&file_type=json&series_id=DFF
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
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
|
||||
XOmQJQ4AAA==
|
||||
headers:
|
||||
Cache-Control:
|
||||
- max-age=0, no-cache
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '2116'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Thu, 06 Jun 2024 22:09:16 GMT
|
||||
Expires:
|
||||
- Thu, 06 Jun 2024 22:09:16 GMT
|
||||
Last-Modified:
|
||||
- Thu, 06 Jun 2024 20:17:46 GMT
|
||||
Pragma:
|
||||
- no-cache
|
||||
Server:
|
||||
- Apache
|
||||
Set-Cookie:
|
||||
- ak_bmsc=03D5EFA8F4BE5D33B0F594EB88A9E7C9~000000000000000000000000000000~YAAQZWIsF3GwKOePAQAA4F2Z7xhJfhKN4PXQvLYy/jri7QIbL9HRccp6zs1uHVvGac9hpUqaoyMWuEaX9vrGjggJ3Vpci5MurtvqaZufPVzRPDBXMLRHN6WKu6bPo8fd7cUdkcj5wa55llMHeREFrUVb/QWrXk2Am8lxyvSEZbCcKuLMbDHWK5X2dqnuH13y/wA7+TjjRiOxVv0SXaxt2HFvHjmM1FYwl8yPbvSAu/qf90/Vy8vz/RYc3HyiQczjEXWmismjJ2cqSGjqwapRxLpspoXUZHHxJKz7KHoJz9a5y755i8up/cujOYeo4JeKyfSOVH69T64nTb1TZ3scTvZADoMa1hO0/Gx9fU6JlXZfqaNfk+Zz7GuWJC6LsBMQ;
|
||||
Domain=.stlouisfed.org; Path=/; Expires=Fri, 07 Jun 2024 00:09:16 GMT; Max-Age=7200
|
||||
Strict-Transport-Security:
|
||||
- max-age=86400
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
version: 1
|
||||
@@ -3,551 +3,112 @@ interactions:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- '*/*'
|
||||
- application/json
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series/observations?api_key=MOCK_API_KEY&file_type=json&observation_start=2022-11-12&series_id=HQMCB6MT
|
||||
uri: https://api.stlouisfed.org/fred/release/tables?api_key=MOCK_API_KEY&element_id=219299&file_type=json&include_observation_values=true&observation_date=2023-01-01&release_id=402
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
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
|
||||
EHfSraEBJUMshgakjbGQ6D3AamsBU668ljOuAAA=
|
||||
headers:
|
||||
Accept-Ranges:
|
||||
- bytes
|
||||
Cache-Control:
|
||||
- max-age=0, no-cache
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '325'
|
||||
- '4019'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Thu, 02 Nov 2023 13:45:31 GMT
|
||||
- Tue, 11 Jun 2024 20:43:18 GMT
|
||||
Expires:
|
||||
- Thu, 02 Nov 2023 13:46:31 GMT
|
||||
- Tue, 11 Jun 2024 20:43:18 GMT
|
||||
Last-Modified:
|
||||
- Tue, 10 Oct 2023 20:03:04 GMT
|
||||
- Tue, 11 Jun 2024 20:43:15 GMT
|
||||
Pragma:
|
||||
- no-cache
|
||||
Server:
|
||||
- Apache
|
||||
Strict-Transport-Security:
|
||||
- max-age=86400
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
x-rate-limit-limit:
|
||||
- '120'
|
||||
x-rate-limit-remaining:
|
||||
- '104'
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- '*/*'
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series/observations?api_key=MOCK_API_KEY&file_type=json&observation_start=2022-11-12&series_id=HQMCB1YR
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy1jU01DUwUtJByKbmpaDL5ScVpxaVJZZk
|
||||
5uchazYCaTYEaUZWANFvaWlpqWtopGtsqKSjVJqXWVKsZKWUk5mnpKOUX1pSUFoSX1JZkKpkZaij
|
||||
lJaZkwrlKWUV54OVFKWkFsUnVSpZKSEbnZJYkqqko1ScX1QSnw9SomSllFicrKSjlJxfmleiZGVo
|
||||
qKOUn5ZWnFqiZGWgo5STmZsJEjUAAR1ko4qVrKIpCRGwS8AhCA4EA5AvyxJzSlOVrJRM9QxMlGp1
|
||||
qGa8kS6K8SZ6ltQz3ljXwBDdeAtLqrneWNcAzfWmeoam1DQe5AElHSVE2BuaUdN4E9TAMdUzoGrg
|
||||
mKIbb0RV15uhG09V080xTLegZtBboBtvbkhN4y0xjAfMUqk2thYA0w3BlicFAAA=
|
||||
headers:
|
||||
Accept-Ranges:
|
||||
- bytes
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '332'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Thu, 02 Nov 2023 13:45:31 GMT
|
||||
Expires:
|
||||
- Thu, 02 Nov 2023 13:46:31 GMT
|
||||
Last-Modified:
|
||||
- Tue, 10 Oct 2023 20:04:03 GMT
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
x-rate-limit-limit:
|
||||
- '120'
|
||||
x-rate-limit-remaining:
|
||||
- '103'
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- '*/*'
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series/observations?api_key=MOCK_API_KEY&file_type=json&observation_start=2022-11-12&series_id=HQMCB2YR
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy1jU01DUwUtJByKbmpaDL5ScVpxaVJZZk
|
||||
5uchazYCaTYEaUZWANFvaWlpqWtopGtsqKSjVJqXWVKsZKWUk5mnpKOUX1pSUFoSX1JZkKpkZaij
|
||||
lJaZkwrlKWUV54OVFKWkFsUnVSpZKSEbnZJYkqqko1ScX1QSnw9SomSllFicrKSjlJxfmleiZGVo
|
||||
qKOUn5ZWnFqiZGWgo5STmZsJEjUAAR1ko4qVrKIpCRGwS8AhCA4EA5AvyxJzSlOVrJRM9QxNlGp1
|
||||
qGa8kS6K8SZ6FpZUM95Y18AQw3hDahqP5npTPQNzahoP8oCSjhIi7A1MqWm8CXrgmFPV9aboxlsa
|
||||
U9P1ZqjGm+oZUzVwzNGNNzGjpust0I03pV62MtY1sEQ3HjAzc6Xa2FoAgopyRigFAAA=
|
||||
headers:
|
||||
Accept-Ranges:
|
||||
- bytes
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '335'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Thu, 02 Nov 2023 13:45:31 GMT
|
||||
Expires:
|
||||
- Thu, 02 Nov 2023 13:46:31 GMT
|
||||
Last-Modified:
|
||||
- Tue, 10 Oct 2023 20:04:05 GMT
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
x-rate-limit-limit:
|
||||
- '120'
|
||||
x-rate-limit-remaining:
|
||||
- '102'
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- '*/*'
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series/observations?api_key=MOCK_API_KEY&file_type=json&observation_start=2022-11-12&series_id=HQMCB3YR
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy1jU01DUwUtJByKbmpaDL5ScVpxaVJZZk
|
||||
5uchazYCaTYEaUZWANFvaWlpqWtopGtsqKSjVJqXWVKsZKWUk5mnpKOUX1pSUFoSX1JZkKpkZaij
|
||||
lJaZkwrlKWUV54OVFKWkFsUnVSpZKSEbnZJYkqqko1ScX1QSnw9SomSllFicrKSjlJxfmleiZGVo
|
||||
qKOUn5ZWnFqiZGWgo5STmZsJEjUAAR1ko4qVrKIpCRGwS8AhCA4EA5AvyxJzSlOVrJRM9QyNlWp1
|
||||
qGa8kS6K8SZ6FoZUM95Y18AQ3XhzapqO4XhLU2oaD3K/ko4SLOhN9KhrvAl62JgZUdP1pujGm5tR
|
||||
03gzVONN9QypGvbm6MYbUdX1FujGG1M1YVqiGw+YqbFSbWwtAMVmGZAnBQAA
|
||||
headers:
|
||||
Accept-Ranges:
|
||||
- bytes
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '330'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Thu, 02 Nov 2023 13:45:31 GMT
|
||||
Expires:
|
||||
- Thu, 02 Nov 2023 13:46:31 GMT
|
||||
Last-Modified:
|
||||
- Tue, 10 Oct 2023 20:03:03 GMT
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
x-rate-limit-limit:
|
||||
- '120'
|
||||
x-rate-limit-remaining:
|
||||
- '101'
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- '*/*'
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series/observations?api_key=MOCK_API_KEY&file_type=json&observation_start=2022-11-12&series_id=HQMCB5YR
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy1jU01DUwUtJByKbmpaDL5ScVpxaVJZZk
|
||||
5uchazYCaTYEaUZWANFvaWlpqWtopGtsqKSjVJqXWVKsZKWUk5mnpKOUX1pSUFoSX1JZkKpkZaij
|
||||
lJaZkwrlKWUV54OVFKWkFsUnVSpZKSEbnZJYkqqko1ScX1QSnw9SomSllFicrKSjlJxfmleiZGVo
|
||||
qKOUn5ZWnFqiZGWgo5STmZsJEjUAAR1ko4qVrKIpCRGwS8AhCA4EA5AvyxJzSlOVrJRM9QyVanWo
|
||||
ZrqRLorpJnrmplQz3ljXwBDdeDNqmo7heAsjahoPcr+SjhIs5E30LMypabwJetiYWlLTeFN046nq
|
||||
eDN00y2pGrPmqMab6hlQNVlaoBtvRL1MZaxrYIluPGDGFkq1sbUAlUEwUSUFAAA=
|
||||
headers:
|
||||
Accept-Ranges:
|
||||
- bytes
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '332'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Thu, 02 Nov 2023 13:45:32 GMT
|
||||
Expires:
|
||||
- Thu, 02 Nov 2023 13:46:32 GMT
|
||||
Last-Modified:
|
||||
- Tue, 10 Oct 2023 20:03:02 GMT
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
x-rate-limit-limit:
|
||||
- '120'
|
||||
x-rate-limit-remaining:
|
||||
- '100'
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- '*/*'
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series/observations?api_key=MOCK_API_KEY&file_type=json&observation_start=2022-11-12&series_id=HQMCB7YR
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy1jU01DUwUtJByKbmpaDL5ScVpxaVJZZk
|
||||
5uchazYCaTYEaUZWANFvaWlpqWtopGtsqKSjVJqXWVKsZKWUk5mnpKOUX1pSUFoSX1JZkKpkZaij
|
||||
lJaZkwrlKWUV54OVFKWkFsUnVSpZKSEbnZJYkqqko1ScX1QSnw9SomSllFicrKSjlJxfmleiZGVo
|
||||
qKOUn5ZWnFqiZGWgo5STmZsJEjUAAR1ko4qVrKIpCRGwS8AhCA4EA5AvyxJzSlOVrJRM9YwslGp1
|
||||
qGa8kS6K8SZ6llQz3VjXwBDddHMjahqP6XhDahoP8oCSjhIs6E30LM2pabwJRuBQ1fWm6MZbGFPT
|
||||
9WaoxpvqGVDV9eboxlPVdAt006mYqYx1DSzRjQfMxFSpNrYWAKaOQr0mBQAA
|
||||
headers:
|
||||
Accept-Ranges:
|
||||
- bytes
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '330'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Thu, 02 Nov 2023 13:45:32 GMT
|
||||
Expires:
|
||||
- Thu, 02 Nov 2023 13:46:32 GMT
|
||||
Last-Modified:
|
||||
- Tue, 10 Oct 2023 20:03:04 GMT
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
x-rate-limit-limit:
|
||||
- '120'
|
||||
x-rate-limit-remaining:
|
||||
- '99'
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- '*/*'
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series/observations?api_key=MOCK_API_KEY&file_type=json&observation_start=2022-11-12&series_id=HQMCB10YR
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy1jU01DUwUtJByKbmpaDL5ScVpxaVJZZk
|
||||
5uchazYCaTYEaUZWANFvaWlpqWtopGtsqKSjVJqXWVKsZKWUk5mnpKOUX1pSUFoSX1JZkKpkZaij
|
||||
lJaZkwrlKWUV54OVFKWkFsUnVSpZKSEbnZJYkqqko1ScX1QSnw9SomSllFicrKSjlJxfmleiZGVo
|
||||
qKOUn5ZWnFqiZGWgo5STmZsJEjUAAR1ko4qVrKIpCRGwS8AhCA4EA5AvyxJzSlOVrJRM9cyUanWo
|
||||
ZrqRLprphuZUM95Y18AQ1XgTPUsLahqP6XpjahoP8oCSjhIi6A2p6noTjMAxoqbrTVGNN9UzsKSm
|
||||
8WboxhtR1fXmGMZTNewt0I03pWbYWKKbDpiZqVJtbC0AfHlcKCYFAAA=
|
||||
headers:
|
||||
Accept-Ranges:
|
||||
- bytes
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '326'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Thu, 02 Nov 2023 13:45:33 GMT
|
||||
Expires:
|
||||
- Thu, 02 Nov 2023 13:46:32 GMT
|
||||
Last-Modified:
|
||||
- Tue, 10 Oct 2023 20:04:02 GMT
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
x-rate-limit-limit:
|
||||
- '120'
|
||||
x-rate-limit-remaining:
|
||||
- '98'
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- '*/*'
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series/observations?api_key=MOCK_API_KEY&file_type=json&observation_start=2022-11-12&series_id=HQMCB20YR
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy1jU01DUwUtJByKbmpaDL5ScVpxaVJZZk
|
||||
5uchazYCaTYEaUZWANFvaWlpqWtopGtsqKSjVJqXWVKsZKWUk5mnpKOUX1pSUFoSX1JZkKpkZaij
|
||||
lJaZkwrlKWUV54OVFKWkFsUnVSpZKSEbnZJYkqqko1ScX1QSnw9SomSllFicrKSjlJxfmleiZGVo
|
||||
qKOUn5ZWnFqiZGWgo5STmZsJEjUAAR1ko4qVrKIpCRGwS8AhCA4EA5AvyxJzSlOVrJRM9cxMlWp1
|
||||
qGa8kS6a8YbGVDPeWNfAEN14AyNqGo/pehNqGg/ygJKOEiLsjcyoabwJeuAYUjVwTNGNN6Zq1Jqh
|
||||
G29kSc3AMccw3oKaxlugG29qTk3jLdGNB8xcqTa2FgDjW2ZaJwUAAA==
|
||||
headers:
|
||||
Accept-Ranges:
|
||||
- bytes
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '325'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Thu, 02 Nov 2023 13:45:33 GMT
|
||||
Expires:
|
||||
- Thu, 02 Nov 2023 13:46:33 GMT
|
||||
Last-Modified:
|
||||
- Tue, 10 Oct 2023 20:04:03 GMT
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
x-rate-limit-limit:
|
||||
- '120'
|
||||
x-rate-limit-remaining:
|
||||
- '97'
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- '*/*'
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series/observations?api_key=MOCK_API_KEY&file_type=json&observation_start=2022-11-12&series_id=HQMCB30YR
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy1jU01DUwUtJByKbmpaDL5ScVpxaVJZZk
|
||||
5uchazYCaTYEaUZWANFvaWlpqWtopGtsqKSjVJqXWVKsZKWUk5mnpKOUX1pSUFoSX1JZkKpkZaij
|
||||
lJaZkwrlKWUV54OVFKWkFsUnVSpZKSEbnZJYkqqko1ScX1QSnw9SomSllFicrKSjlJxfmleiZGVo
|
||||
qKOUn5ZWnFqiZGWgo5STmZsJEjUAAR1ko4qVrKIpCRGwS8AhCA4EA5AvyxJzSlOVrJRM9UzMlGp1
|
||||
qGa8kS6K8SZ6lkZUM95Y18AQ3XgLC2oaj+Z6Uz0DapoOcr+SjhIi6A3NqWm8CWrYmOoZUjXoTdGN
|
||||
NzahpuvN0I03tKSm8eYYxlPV9RboxlMxVxnrGliiGw+YqaVSbWwtAAaPtjInBQAA
|
||||
headers:
|
||||
Accept-Ranges:
|
||||
- bytes
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '333'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Thu, 02 Nov 2023 13:45:33 GMT
|
||||
Expires:
|
||||
- Thu, 02 Nov 2023 13:46:33 GMT
|
||||
Last-Modified:
|
||||
- Tue, 10 Oct 2023 20:04:03 GMT
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
x-rate-limit-limit:
|
||||
- '120'
|
||||
x-rate-limit-remaining:
|
||||
- '96'
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- '*/*'
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series/observations?api_key=MOCK_API_KEY&file_type=json&observation_start=2022-11-12&series_id=HQMCB50YR
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy1jU01DUwUtJByKbmpaDL5ScVpxaVJZZk
|
||||
5uchazYCaTYEaUZWANFvaWlpqWtopGtsqKSjVJqXWVKsZKWUk5mnpKOUX1pSUFoSX1JZkKpkZaij
|
||||
lJaZkwrlKWUV54OVFKWkFsUnVSpZKSEbnZJYkqqko1ScX1QSnw9SomSllFicrKSjlJxfmleiZGVo
|
||||
qKOUn5ZWnFqiZGWgo5STmZsJEjUAAR1ko4qVrKIpCRGwS8AhCA4EA5AvyxJzSlOVrJRM9YxNlGp1
|
||||
qGa8kS6K8SZ65uZUM95Y18AQw3hLahqP4XpLQ2oaD/KAko4SIuwNqWq8CWrgmOoZGlPT9aboxhub
|
||||
UtN4M3TjDY2oabw5uvEGVHW9BbrxxlRNmJboxgNmaqRUG1sLALHRryooBQAA
|
||||
headers:
|
||||
Accept-Ranges:
|
||||
- bytes
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '330'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Thu, 02 Nov 2023 13:45:34 GMT
|
||||
Expires:
|
||||
- Thu, 02 Nov 2023 13:46:34 GMT
|
||||
Last-Modified:
|
||||
- Tue, 10 Oct 2023 20:03:03 GMT
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
x-rate-limit-limit:
|
||||
- '120'
|
||||
x-rate-limit-remaining:
|
||||
- '95'
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- '*/*'
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series/observations?api_key=MOCK_API_KEY&file_type=json&observation_start=2022-11-12&series_id=HQMCB75YR
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy1jU01DUwUtJByKbmpaDL5ScVpxaVJZZk
|
||||
5uchazYCaTYEaUZWANFvaWlpqWtopGtsqKSjVJqXWVKsZKWUk5mnpKOUX1pSUFoSX1JZkKpkZaij
|
||||
lJaZkwrlKWUV54OVFKWkFsUnVSpZKSEbnZJYkqqko1ScX1QSnw9SomSllFicrKSjlJxfmleiZGVo
|
||||
qKOUn5ZWnFqiZGWgo5STmZsJEjUAAR1ko4qVrKIpCRGwS8AhCA4EA5AvyxJzSlOVrJRM9YwslGp1
|
||||
qGa8kS6K8SZ65lQz3VjXwBDDdFNqGo/heAszahoP8oCSjhIi6A0sqWm8CWrgmOoZmlDTeFN0442p
|
||||
Gjhm6MZTN3DMMYynZthYoJtO3bCxRDceMBMLpdrYWgCStsiQJgUAAA==
|
||||
headers:
|
||||
Accept-Ranges:
|
||||
- bytes
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '325'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Thu, 02 Nov 2023 13:45:34 GMT
|
||||
Expires:
|
||||
- Thu, 02 Nov 2023 13:46:34 GMT
|
||||
Last-Modified:
|
||||
- Tue, 10 Oct 2023 20:03:06 GMT
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
x-rate-limit-limit:
|
||||
- '120'
|
||||
x-rate-limit-remaining:
|
||||
- '94'
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- '*/*'
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series/observations?api_key=MOCK_API_KEY&file_type=json&observation_start=2022-11-12&series_id=HQMCB100YR
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy1jU01DUwUtJByKbmpaDL5ScVpxaVJZZk
|
||||
5uchazYCaTYEaUZWANFvaWlpqWtopGtsqKSjVJqXWVKsZKWUk5mnpKOUX1pSUFoSX1JZkKpkZaij
|
||||
lJaZkwrlKWUV54OVFKWkFsUnVSpZKSEbnZJYkqqko1ScX1QSnw9SomSllFicrKSjlJxfmleiZGVo
|
||||
qKOUn5ZWnFqiZGWgo5STmZsJEjUAAR1ko4qVrKIpCRGwS8AhCA4EA5AvyxJzSlOVrJRM9YxMlWp1
|
||||
qGa8kS6K8SZ6ZuZUM95Y18AQ3XhzI2oaj+F6C2NqGg/ygJKOEiLsDagaOCaogWOqZ2hCTdebohtv
|
||||
bEZN483QjTewoKbx5qjGm+hZUtV4C1TjTfWMqRr2lujGA2ZirlQbWwsAhzw7LCgFAAA=
|
||||
headers:
|
||||
Accept-Ranges:
|
||||
- bytes
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '335'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Thu, 02 Nov 2023 13:45:34 GMT
|
||||
Expires:
|
||||
- Thu, 02 Nov 2023 13:46:34 GMT
|
||||
Last-Modified:
|
||||
- Tue, 10 Oct 2023 20:04:04 GMT
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
x-rate-limit-limit:
|
||||
- '120'
|
||||
x-rate-limit-remaining:
|
||||
- '93'
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
|
||||
@@ -0,0 +1,684 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series/observations?api_key=MOCK_API_KEY&file_type=json&limit=100000&observation_end=2024-06-06&observation_start=2024-06-01&series_id=OBFRVOL
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy0TUw0zU0UNJByKbmpaDL5ScVpxaVJZZk
|
||||
5udhaDYwVNJRQlaAqt/ATElHqTQvs6RYyUopJzMPpLi0pKC0JL6ksiBVycpQRyktMycVylPKKs4H
|
||||
KylKSS2KT6pUskIxOiWxJFVJR6k4v6gkPh+kRMlKKbE4WUlHKTm/NK9EycpERyk/La04tUTJykBH
|
||||
KSczN7NEycrQAARQHFmsZBVNSYCAHYIIQANjJR2lssSc0lRQyJmb6hko1epQ03wTZPMtDKhuvimy
|
||||
+eYWVDcflAjg4WMBDh/AYmsBhOg3xZICAAA=
|
||||
headers:
|
||||
Cache-Control:
|
||||
- max-age=0, no-cache
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '254'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Mon, 10 Jun 2024 18:19:47 GMT
|
||||
Expires:
|
||||
- Mon, 10 Jun 2024 18:19:47 GMT
|
||||
Last-Modified:
|
||||
- Mon, 10 Jun 2024 13:01:15 GMT
|
||||
Pragma:
|
||||
- no-cache
|
||||
Server:
|
||||
- Apache
|
||||
Set-Cookie:
|
||||
- ak_bmsc=AAB461B1AF2A7904FB64045131A155DF~000000000000000000000000000000~YAAQlJUeuBLxN/WPAQAAXrRgAxhRzNDCys8rutwk12gmxwwCXs24YhilPRfzyrhKTlFsIPkONLzhV/c7521WkWGKCBT/L9cR/BUveeYX+hqZuc8BzRv+xwSlpwNPG15hhmjmVYhdoG5LRQnlk1qOTtRVBiiEHc3iszn0ohx9AkFtbUQUdsA6PUNgC6xSnVNlXYRltXEGhHKDl3KhMnq6nELXLXA6yRuX+CySIvCd3JXxOakZXR4dfvY0LOc2/smS1/jj/uQBr0zpTwyKTmw6BNED2HwaL/zJmYehyo28UMuJNckQLPP0ORhntV+36KKgGWFsd5wUwTesODiKAwqP1KCZp4GsLrpQFTvh5VUwahH9ZSjAwkPWkLqfoQhr+7U1;
|
||||
Domain=.stlouisfed.org; Path=/; Expires=Mon, 10 Jun 2024 20:19:47 GMT; Max-Age=7200
|
||||
Strict-Transport-Security:
|
||||
- max-age=86400
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series/observations?api_key=MOCK_API_KEY&file_type=json&limit=100000&observation_end=2024-06-06&observation_start=2024-06-01&series_id=OBFR99
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy0TUw0zU0UNJByKbmpaDL5ScVpxaVJZZk
|
||||
5udhaDYwVNJRQlaAqt/ATElHqTQvs6RYyUopJzMPpLi0pKC0JL6ksiBVycpQRyktMycVylPKKs4H
|
||||
KylKSS2KT6pUskIxOiWxJFVJR6k4v6gkPh+kRMlKKbE4WUlHKTm/NK9EycpERyk/La04tUTJykBH
|
||||
KSczN7NEycrQAARQHFmsZBVNSYCAHYIIQANjJR2lssSc0lQlKyVTPWMLpVodahpvQlvjTWlrPCgF
|
||||
IAUOYJZKtbG1AH16TpKOAgAA
|
||||
headers:
|
||||
Cache-Control:
|
||||
- max-age=0, no-cache
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '246'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Mon, 10 Jun 2024 18:19:47 GMT
|
||||
Expires:
|
||||
- Mon, 10 Jun 2024 18:19:47 GMT
|
||||
Last-Modified:
|
||||
- Mon, 10 Jun 2024 13:01:14 GMT
|
||||
Pragma:
|
||||
- no-cache
|
||||
Server:
|
||||
- Apache
|
||||
Set-Cookie:
|
||||
- ak_bmsc=E9163914DA8EF717A905B89E7988EFA1~000000000000000000000000000000~YAAQlJUeuBXxN/WPAQAAYLRgAxhDw7CCLMCG3ZQVi/WYhq/NuL+dx0wUUYFz3AOQuv2Bf4QcHQaNlhKv4dIDSVo5GqTUuc3k5qi1azrbNhlnVDCLvkoPtKLAvnw4TIyHoC941MqJZgrZ0rNmK8aAuScTeQUPsf0Oh/lkoxeVKmODDsZMyu601YkQyxm0P5/Lt0gOUzFKOAp35wPGyZzX0cqD4UaDIJaJiqTxUh6huFnim+3MCO/sB6TMTxIrHqGHmNIlLZ4csX8/sWXKkxhd+XWNMG4qeQFHKeToiaS0+7A58IdADdW6bK3fAC1Yp12qe+zuEa8vDhbgtEey7zC2nTjZosCkv4z9u2/AhC/gBu7ZGdKa1zn2yQI0RefrfHRL;
|
||||
Domain=.stlouisfed.org; Path=/; Expires=Mon, 10 Jun 2024 20:19:47 GMT; Max-Age=7200
|
||||
Strict-Transport-Security:
|
||||
- max-age=86400
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series/observations?api_key=MOCK_API_KEY&file_type=json&limit=100000&observation_end=2024-06-06&observation_start=2024-06-01&series_id=OBFR1
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy0TUw0zU0UNJByKbmpaDL5ScVpxaVJZZk
|
||||
5udhaDYwVNJRQlaAqt/ATElHqTQvs6RYyUopJzMPpLi0pKC0JL6ksiBVycpQRyktMycVylPKKs4H
|
||||
KylKSS2KT6pUskIxOiWxJFVJR6k4v6gkPh+kRMlKKbE4WUlHKTm/NK9EycpERyk/La04tUTJykBH
|
||||
KSczN7NEycrQAARQHFmsZBVNSYCAHYIIQANjJR2lssSc0lQlKyVTPSNTpVodahpvQlvjTWlrPCgF
|
||||
oAYOYLG1AGCGr96OAgAA
|
||||
headers:
|
||||
Cache-Control:
|
||||
- max-age=0, no-cache
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '243'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Mon, 10 Jun 2024 18:19:47 GMT
|
||||
Expires:
|
||||
- Mon, 10 Jun 2024 18:19:47 GMT
|
||||
Last-Modified:
|
||||
- Mon, 10 Jun 2024 13:01:13 GMT
|
||||
Pragma:
|
||||
- no-cache
|
||||
Server:
|
||||
- Apache
|
||||
Strict-Transport-Security:
|
||||
- max-age=86400
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series/observations?api_key=MOCK_API_KEY&file_type=json&limit=100000&observation_end=2024-06-06&observation_start=2024-06-01&series_id=OBFR
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy0TUw0zU0UNJByKbmpaDL5ScVpxaVJZZk
|
||||
5udhaDYwVNJRQlaAqt/ATElHqTQvs6RYyUopJzMPpLi0pKC0JL6ksiBVycpQRyktMycVylPKKs4H
|
||||
KylKSS2KT6pUskIxOiWxJFVJR6k4v6gkPh+kRMlKKbE4WUlHKTm/NK9EycpERyk/La04tUTJykBH
|
||||
KSczN7NEycrQAARQHFmsZBVNSYCAHYIIQANjJR2lssSc0lQlKyVTPWMjpVodahpvQlvjTWlrPCgF
|
||||
oAYOYLG1AItpx4qOAgAA
|
||||
headers:
|
||||
Cache-Control:
|
||||
- max-age=0, no-cache
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '243'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Mon, 10 Jun 2024 18:19:47 GMT
|
||||
Expires:
|
||||
- Mon, 10 Jun 2024 18:19:47 GMT
|
||||
Last-Modified:
|
||||
- Mon, 10 Jun 2024 13:01:13 GMT
|
||||
Pragma:
|
||||
- no-cache
|
||||
Server:
|
||||
- Apache
|
||||
Set-Cookie:
|
||||
- cookiesession1=678A3E1F0CA6C8A55474606044EDFF5F;Expires=Tue, 10 Jun 2025 18:19:47
|
||||
GMT;Path=/;Secure;HttpOnly
|
||||
Strict-Transport-Security:
|
||||
- max-age=86400
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series/observations?api_key=MOCK_API_KEY&file_type=json&limit=100000&observation_end=2024-06-06&observation_start=2024-06-01&series_id=OBFR25
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy0TUw0zU0UNJByKbmpaDL5ScVpxaVJZZk
|
||||
5udhaDYwVNJRQlaAqt/ATElHqTQvs6RYyUopJzMPpLi0pKC0JL6ksiBVycpQRyktMycVylPKKs4H
|
||||
KylKSS2KT6pUskIxOiWxJFVJR6k4v6gkPh+kRMlKKbE4WUlHKTm/NK9EycpERyk/La04tUTJykBH
|
||||
KSczN7NEycrQAARQHFmsZBVNSYCAHYIIQANjJR2lssSc0lQlKyVTPWNDpVodahpvQlvjTWlrPCgF
|
||||
oAYOYLG1AFUfRDKOAgAA
|
||||
headers:
|
||||
Cache-Control:
|
||||
- max-age=0, no-cache
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '243'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Mon, 10 Jun 2024 18:19:47 GMT
|
||||
Expires:
|
||||
- Mon, 10 Jun 2024 18:19:47 GMT
|
||||
Last-Modified:
|
||||
- Mon, 10 Jun 2024 13:01:14 GMT
|
||||
Pragma:
|
||||
- no-cache
|
||||
Server:
|
||||
- Apache
|
||||
Set-Cookie:
|
||||
- cookiesession1=678A3E1F28617F081F9D927A2400B314;Expires=Tue, 10 Jun 2025 18:19:47
|
||||
GMT;Path=/;Secure;HttpOnly
|
||||
Strict-Transport-Security:
|
||||
- max-age=86400
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
Cookie:
|
||||
- ak_bmsc=E9163914DA8EF717A905B89E7988EFA1~000000000000000000000000000000~YAAQlJUeuBXxN/WPAQAAYLRgAxhDw7CCLMCG3ZQVi/WYhq/NuL+dx0wUUYFz3AOQuv2Bf4QcHQaNlhKv4dIDSVo5GqTUuc3k5qi1azrbNhlnVDCLvkoPtKLAvnw4TIyHoC941MqJZgrZ0rNmK8aAuScTeQUPsf0Oh/lkoxeVKmODDsZMyu601YkQyxm0P5/Lt0gOUzFKOAp35wPGyZzX0cqD4UaDIJaJiqTxUh6huFnim+3MCO/sB6TMTxIrHqGHmNIlLZ4csX8/sWXKkxhd+XWNMG4qeQFHKeToiaS0+7A58IdADdW6bK3fAC1Yp12qe+zuEa8vDhbgtEey7zC2nTjZosCkv4z9u2/AhC/gBu7ZGdKa1zn2yQI0RefrfHRL
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series?api_key=MOCK_API_KEY&file_type=json&series_id=OBFR99
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy0TUw0zU0UNJByKbmpaDLFacWZaYWFytZ
|
||||
RVcrZYJk/Z3cgiwtkXWRbGZJZklOqpKVkn9ZalFeZnpGiYJTYl62gltpXkpmXrpCUGJJqpWCpWVJ
|
||||
hkJAalFyal5JZk6qko5SflJxalFZYklmfh6SPwzNdA2MdQ0M0RSgesXAXElHKa0otbA0NS+5UslK
|
||||
ySUxM6cSWSy+OCMfHDIuSjpKpXmZJcVKVkpQ62EicDWqSjpKxamJxfl5iTnxiSlZpcUlual5oHD1
|
||||
yy9RCIbK5FQqOILlUlOwq4eb5xfsqKSjlJNYXBJfWpCSWJIKCmhEFCkYWFgZGFoZmugamCrpKBXk
|
||||
F5TmJBZlllQqWRka6Cjl5ZekglwbkpGqkA8P0iRQkKZBg7QosSRVIbNYITkxJ7k0B2SBQmkxKKzT
|
||||
UlNSixJzFEAKixVKihLzihOTQSFcrJCYl6KQnFpUkpiZp+BaWpSfkp+Tk1iEokZPAWQnqhm5iUXZ
|
||||
qSUKyfl5xZnFJcUK+WkKKfm5qcUlmckKpXnFqcmlRakpCkn5RUX55Zl56cUKmXkKoXrBegoQ84sV
|
||||
kioVUlIL8oszS/KLKhUy84pLMktKIU5KK8rPVcgvyUgtwqkE2dUQlaD0U5KZWqyjUFCUmZtYlJlT
|
||||
qZAODidQnOkWF+TnFeeD3JSaV5JaVFCUWQxSW56RmZOqUJKRiux3LH4rhXsJyRMw1xUrZKTmpCgk
|
||||
liiAYqNYIb8IzFBIKkrMS85ILVbILy0pzkxJBQUSyKrQvMyS1BSF4JLEktRiPXCw6CYlFoPCKzEv
|
||||
GxR9eQqJOcX5CiWJ2SgOgwZYMTyoE3NyKhVKMoryS9MzFDJBHstLBIVhYg7YBeCoT0zOzMkEhYyC
|
||||
hqeTW7EmJDbBIQPOlCA3gxMGSDU4BWmAMr8mWkJKLFZIVCjLzynNTdUtTwXpTE1RyE1NyUzMA/kL
|
||||
YR5qOsFIazjSmEJRakF+EShYMvPA8eEWpGBkYmSgEAQWB1kRnJqTmgxS4Zufl1qp4AtJgaBipFhP
|
||||
wS2/SCE3vyhVITMvLb8oFxwKOgrFqakKGSUlBcVWMfox+uXl5Xp5qeWV+UXZaakpevlF6TH6kLgu
|
||||
jtHPT0orAukFTKk2thYATHKpf0oFAAA=
|
||||
headers:
|
||||
Cache-Control:
|
||||
- max-age=0, no-cache
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '878'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Mon, 10 Jun 2024 18:19:47 GMT
|
||||
Expires:
|
||||
- Mon, 10 Jun 2024 18:19:47 GMT
|
||||
Last-Modified:
|
||||
- Mon, 10 Jun 2024 13:01:14 GMT
|
||||
Pragma:
|
||||
- no-cache
|
||||
Server:
|
||||
- Apache
|
||||
Set-Cookie:
|
||||
- ak_bmsc=E9163914DA8EF717A905B89E7988EFA1~000000000000000000000000000000~YAAQlJUeuC/xN/WPAQAA5rRgAxjOtnszbWwtck9+pTsnGMNjInRc5xsWd2QHmwEszVMcbMMcDCGUFwI15fZW6uBRLDndA3VIU3fNqOIDASslyHK++LDsRTU4xT5Rb45uj/pDdjGji3GlDWspaOLSxMBSSqhR6Ge81gi4t6L6p4cgpPGXbdXMEzDqKlz/LRbeNPkleuOW7VyBKDgUnjaap14MzB/cEFvKaDeXhpVe2F3p+ClhIqJrrAfLY7VFRNVmqlonLay0Ku2iZiqg6w5AKLTRYZzBdIeXTSa+vt94OgKHzP+uUYeO+VIYluiwo2FbYYTJdeVakLPD2yPY74sLoepExOnxUBF1CSecMLNwbowaCCbQGhNAJxn+66wRPzpbHWl1ccaW0Kuo7Go=;
|
||||
Domain=.stlouisfed.org; Path=/; Expires=Mon, 10 Jun 2024 20:19:47 GMT; Max-Age=7200
|
||||
Strict-Transport-Security:
|
||||
- max-age=86400
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
Cookie:
|
||||
- ak_bmsc=AAB461B1AF2A7904FB64045131A155DF~000000000000000000000000000000~YAAQlJUeuBLxN/WPAQAAXrRgAxhRzNDCys8rutwk12gmxwwCXs24YhilPRfzyrhKTlFsIPkONLzhV/c7521WkWGKCBT/L9cR/BUveeYX+hqZuc8BzRv+xwSlpwNPG15hhmjmVYhdoG5LRQnlk1qOTtRVBiiEHc3iszn0ohx9AkFtbUQUdsA6PUNgC6xSnVNlXYRltXEGhHKDl3KhMnq6nELXLXA6yRuX+CySIvCd3JXxOakZXR4dfvY0LOc2/smS1/jj/uQBr0zpTwyKTmw6BNED2HwaL/zJmYehyo28UMuJNckQLPP0ORhntV+36KKgGWFsd5wUwTesODiKAwqP1KCZp4GsLrpQFTvh5VUwahH9ZSjAwkPWkLqfoQhr+7U1
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series?api_key=MOCK_API_KEY&file_type=json&series_id=OBFRVOL
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy0TUw0zU0UNJByKbmpaDLFacWZaYWFytZ
|
||||
RVcrZYJk/Z3cgsL8fZC1kWxoSWZJTqqSlZJ/WWpRXmZ6RomCU2JetoJbaV5KZl66Qlh+TmluqpKO
|
||||
Un5ScWpRWWJJZn4ekssNzXQNjHUNDNEUoDrewFxJRymtKLWwNDUvuVLJSsklMTOnElksvjgjHxwW
|
||||
Lko6SqV5mSXFSlZKTpk5OZn5ecUK+WkKoXrBegou+Tk5iUXFMCVwTU6ZOXpwRSpKOkrFqYnF+XmJ
|
||||
OfGJKVmlxSW5qXmgcPbLL1EIhsrkVCo4guVSU7CrhxvuF+yopKOUk1hcEl9akJJYkgoKeESUKRhY
|
||||
WBkYWhma6hqYKukoFeQXlOYkFmWWVCpZGZvoKOXll6SC/BKSkaqQDw/hJFAIp0FDOLNYITkxJ7k0
|
||||
B2S2QmkxKNTTUlNSixJzFEBqihVKihLzihOTQUFfrJCYl6KQnFpUkpiZp+BaWpSfAg4UFDV6CiDr
|
||||
UM3ITSzKTi1RSM7PK84sLgGHaUp+bmpxSWayQmlecWpyaVFqikJSflFRfnlmXnqxQmYeJNAh5hcr
|
||||
JFUqpKQW5BdnluQXVSpk5hWXZJaUQpyUVpSfq5BfkpFahFMJsqshKlPzSjJLMlOLdRQKijJzE4sy
|
||||
cyoV0sFBBIou3eKC/LzifJCbUvNKUosKijKLQWrLMzJzUhVKMlKR/Y7FbwgvgVMOxBMw1xUrZKTm
|
||||
pCgkliiAIqJYIb8IzFBIKkrMS85ILVbILy0pzkxJBaUpkFWheZklqSkKwSWJJanFeuBg0U1KLAaF
|
||||
V2JeNij68hQSc4rzFUoSs1EcBg2wYgVYUCfm5FQqlGQU5ZemZyhkgjyWlwgKw8QcsAvAUZ+YnJkD
|
||||
DhkFDU8nt2JNSGyCQwacPUFuBicMkOqixJJUBQ1QOaCpgJqQEosVEhXKwLlXtzwVpDM1RSE3NSUz
|
||||
MQ/kL4R5qOkEI63hSGMKRakF+UWgYMnMA8eHW5CCkYmRgUIQWBxkRXBqTmoySIVvfl5qpYIvJAUG
|
||||
QQLRLb9IITe/KFUhMy8tvygXHAo6CsWpqQoZJSUFxVYx+jH65eXlenmp5ZX5RdlpqSl6+UXpMfqQ
|
||||
uC6O0c9PSisC6QVMqTa2FgCeyedZVQUAAA==
|
||||
headers:
|
||||
Cache-Control:
|
||||
- max-age=0, no-cache
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '880'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Mon, 10 Jun 2024 18:19:47 GMT
|
||||
Expires:
|
||||
- Mon, 10 Jun 2024 18:19:47 GMT
|
||||
Last-Modified:
|
||||
- Mon, 10 Jun 2024 13:01:15 GMT
|
||||
Pragma:
|
||||
- no-cache
|
||||
Server:
|
||||
- Apache
|
||||
Set-Cookie:
|
||||
- ak_bmsc=AAB461B1AF2A7904FB64045131A155DF~000000000000000000000000000000~YAAQlJUeuDDxN/WPAQAA6LRgAxhgSduyVrWI2nOZlmt3OV+2M24EYtm8IQ1WoylYFTK1pjQPTZbQcSCB2lCbabsXt1uFcm2qMoRX1gscvXJ71RR109YfXJCucD3ejnCJ0hvCkrAcnFD//B4IdXAnAWNy5sdmMP2CYC/7Sx58WfuEC3pzmIV1B3+9Iri75FvqWpPIXRcJrdPZBNp8OU/3yUL2vFXGOEKvm0oImXq5bviReHEnyDb1li2QVL9Jzhq8XWvDpnnFS2+ylGja/FBZ0ZxdjEmLAKAiB+qUuUsRxtHjzUsCm+0YCsTDFkdsXXtvuxGJmOg3TxVQYRf04LTBMuri1yeUPx+Zcea9Ns1H/MzQAsj9lMHRxFHbHMz5fCRFjCgzpQtQQ/43xsU=;
|
||||
Domain=.stlouisfed.org; Path=/; Expires=Mon, 10 Jun 2024 20:19:47 GMT; Max-Age=7200
|
||||
Strict-Transport-Security:
|
||||
- max-age=86400
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series/observations?api_key=MOCK_API_KEY&file_type=json&limit=100000&observation_end=2024-06-06&observation_start=2024-06-01&series_id=OBFR75
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy0TUw0zU0UNJByKbmpaDL5ScVpxaVJZZk
|
||||
5udhaDYwVNJRQlaAqt/ATElHqTQvs6RYyUopJzMPpLi0pKC0JL6ksiBVycpQRyktMycVylPKKs4H
|
||||
KylKSS2KT6pUskIxOiWxJFVJR6k4v6gkPh+kRMlKKbE4WUlHKTm/NK9EycpERyk/La04tUTJykBH
|
||||
KSczN7NEycrQAARQHFmsZBVNSYCAHYIIQANjJR2lssSc0lQlKyVTPWNjpVodahpvQlvjTWlrPCgF
|
||||
oAYOYLG1AMG7ueKOAgAA
|
||||
headers:
|
||||
Cache-Control:
|
||||
- max-age=0, no-cache
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '243'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Mon, 10 Jun 2024 18:19:47 GMT
|
||||
Expires:
|
||||
- Mon, 10 Jun 2024 18:19:47 GMT
|
||||
Last-Modified:
|
||||
- Mon, 10 Jun 2024 13:01:14 GMT
|
||||
Pragma:
|
||||
- no-cache
|
||||
Server:
|
||||
- Apache
|
||||
Strict-Transport-Security:
|
||||
- max-age=86400
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
Cookie:
|
||||
- ak_bmsc=E9163914DA8EF717A905B89E7988EFA1~000000000000000000000000000000~YAAQlJUeuBXxN/WPAQAAYLRgAxhDw7CCLMCG3ZQVi/WYhq/NuL+dx0wUUYFz3AOQuv2Bf4QcHQaNlhKv4dIDSVo5GqTUuc3k5qi1azrbNhlnVDCLvkoPtKLAvnw4TIyHoC941MqJZgrZ0rNmK8aAuScTeQUPsf0Oh/lkoxeVKmODDsZMyu601YkQyxm0P5/Lt0gOUzFKOAp35wPGyZzX0cqD4UaDIJaJiqTxUh6huFnim+3MCO/sB6TMTxIrHqGHmNIlLZ4csX8/sWXKkxhd+XWNMG4qeQFHKeToiaS0+7A58IdADdW6bK3fAC1Yp12qe+zuEa8vDhbgtEey7zC2nTjZosCkv4z9u2/AhC/gBu7ZGdKa1zn2yQI0RefrfHRL
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series?api_key=MOCK_API_KEY&file_type=json&series_id=OBFR1
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy0TUw0zU0UNJByKbmpaDLFacWZaYWFytZ
|
||||
RVcrZYJk/Z3cggyRNZFsZElmSU6qkpWSf1lqUV5mekaJglNiXraCW2leSmZeukJQYkmqlYJhcYlC
|
||||
QGpRcmpeSWZOqpKOUn5ScWpRWWJJZn4eki8MzXQNjHUNQA5CVoDqEQNzJR2ltKLUwtLUvORKJSsl
|
||||
l8TMnEpksfjijHxwuLgo6SiV5mWWFCtZKUGth4nA1agq6SgVpyYW5+cl5sQnpmSVFpfkpuaBQtUv
|
||||
v0QhGCqTU6ngCJZLTcGuHm6eX7Cjko5STmJxSXxpQUpiSSoomBERpGBgYWVgaGVorGtgqqSjVJBf
|
||||
UJqTWJRZUqlkZWSoo5SXX5IKcm1IRqpCPjxEk0AhmgYN0aLEklSFzGKF5MSc5NIckAUKpcWgoE5L
|
||||
TUktSsxRACksVigpSswrTkwGhXCxQmJeikJyalFJYmaegmtpUX5Kfk5OYhGKGj0FkJ2oZuQmFmWn
|
||||
ligk5+cVZxaXFCvkpymk5OemFpdkJiuU5hWnJpcWpaYoJOUXFeWXZ+alFytk5imE6gXrKUDML1ZI
|
||||
qlRISS3IL84syS+qVMjMKy7JLCmFOCmtKD9XIb8kI7UIpxJkV0NUgtJPSWZqsY5CQVFmbmJRZk6l
|
||||
Qjo4nEBxpltckJ9XnA9yU2peSWpRQVFmMUhteUZmTqpCSUYqst+x+K0U7iUkT8BcV6yQkZqTopBY
|
||||
ogCKjWKF/CIwQyGpKDEvOSO1WCG/tKQ4MyUVFEggq0LzMktSUxSCSxJLUov1wMGim5RYDAqvxLxs
|
||||
UPTlKSTmFOcrlCRmozgMGmDF8KBOzMmpVCjJKMovTc9QyAR5LC8RFIaJOWAXgKM+MTkzJxMUMgoa
|
||||
nk5uxZqQ2ASHDDhPgtwMThgg1eAUpAHK+ppoCSmxWCFRoSw/pzQ3Vbc8FaQzNUUhNzUlMzEP5C+E
|
||||
eajpBCOt4UhjCkWpBflFoGDJzAPHh1uQgpGJkYFCEFgcZEVwak5qMkiFb35eaqWCLyQFgkqRYj0F
|
||||
t/wihdz8olSFzLy0/KJccCjoKBSnpipklJQUFFvF6Mfol5eX6+WlllfmF2Wnpabo5Relx+hD4ro4
|
||||
Rj8/Ka0IpBcwpdrYWgBw9UPdSAUAAA==
|
||||
headers:
|
||||
Cache-Control:
|
||||
- max-age=0, no-cache
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '877'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Mon, 10 Jun 2024 18:19:47 GMT
|
||||
Expires:
|
||||
- Mon, 10 Jun 2024 18:19:47 GMT
|
||||
Last-Modified:
|
||||
- Mon, 10 Jun 2024 13:01:13 GMT
|
||||
Pragma:
|
||||
- no-cache
|
||||
Server:
|
||||
- Apache
|
||||
Set-Cookie:
|
||||
- ak_bmsc=E9163914DA8EF717A905B89E7988EFA1~000000000000000000000000000000~YAAQlJUeuDTxN/WPAQAAE7VgAxjh6dMptSkflG37KK/TGq2gr00nJFwNPLoaYxVSKGxVwnXO5v8WO7rjpBKJxGFfg82y4Z7RIOvFdnDVR0oj8ZgWZzE/m+tTGotj+uyNDqtcWxoBxoq+1E1fW7hl56xQ5vijeoc3P9MQDW87qFXyiTp8mEChJtM+eBzyrnulkn3NNSqbRnG+W+TBQ6y+2XeWkG0DA5rSz6a+dmCUHwT27cGt3PtCaS15mKjcUa/2FN7OubrzO0od4HM5amM/jwkr2djwT1fB79WGv6fHd9hPL29ztw+75XObTV4y2kWuuE70Ce16aD5cAuClSDbEcRfhKLLh4YEekdZEe3CF3Z1dudiLPIrNC/bMWaREiF8MzQ6K+BvDXm9ZBtk=;
|
||||
Domain=.stlouisfed.org; Path=/; Expires=Mon, 10 Jun 2024 20:19:47 GMT; Max-Age=7200
|
||||
Strict-Transport-Security:
|
||||
- max-age=86400
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
Cookie:
|
||||
- ak_bmsc=E9163914DA8EF717A905B89E7988EFA1~000000000000000000000000000000~YAAQlJUeuBXxN/WPAQAAYLRgAxhDw7CCLMCG3ZQVi/WYhq/NuL+dx0wUUYFz3AOQuv2Bf4QcHQaNlhKv4dIDSVo5GqTUuc3k5qi1azrbNhlnVDCLvkoPtKLAvnw4TIyHoC941MqJZgrZ0rNmK8aAuScTeQUPsf0Oh/lkoxeVKmODDsZMyu601YkQyxm0P5/Lt0gOUzFKOAp35wPGyZzX0cqD4UaDIJaJiqTxUh6huFnim+3MCO/sB6TMTxIrHqGHmNIlLZ4csX8/sWXKkxhd+XWNMG4qeQFHKeToiaS0+7A58IdADdW6bK3fAC1Yp12qe+zuEa8vDhbgtEey7zC2nTjZosCkv4z9u2/AhC/gBu7ZGdKa1zn2yQI0RefrfHRL;
|
||||
cookiesession1=678A3E1F0CA6C8A55474606044EDFF5F
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series?api_key=MOCK_API_KEY&file_type=json&series_id=OBFR
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy0TUw0zU0UNJByKbmpaDLFacWZaYWFytZ
|
||||
RVcrZYJk/Z3cgpD1kGxiSWZJTqqSlZJ/WWpRXmZ6RomCU2JetoJbaV5KZl66QlBiSaqSjlJ+UnFq
|
||||
UVliSWZ+HpKjDc10DYx1DQzRFKC628BcSUcprSi1sDQ1L7lSyUrJJTEzpxJZLL44Ix8cDC5KOkql
|
||||
eZklxUpWSgGpRcmpeSUwEbgaVSUdpeLUxOL8vMSc+MSUrNLiklyQOislv/wShWCoTE6lgiNYLjUF
|
||||
u3q4eX7Bjko6SjmJxSXxpQUpiSWpoFBFxIeCgYWVgaGVobGugamSjlJBfkFpTmJRZkmlkpWZgY5S
|
||||
Xn5JKsi1IRmpCvnwEEwChWAaNASLEktSFTKLFZITc5JLc0AWKJQWg4I2LTUltSgxRwGksFihpCgx
|
||||
rzgxGRTCxQqJeSkKyalFJYmZeQqupUX5Kfk5OYlFKGr0FEB2opqRm1iUnVqikJyfV5xZXFKskJ+m
|
||||
kJKfm1pckpmsUJpXnJpcWpSaopCUX1SUX56Zl16skJmnEKoXrKcAMb9YIalSISW1IL84syS/qFIh
|
||||
M6+4JLOkFOKktKL8XIX8kozUIpxKkF0NUZmaV5JZkplarKNQUJSZm1iUmVOpkA4OJ1Cc6RYX5OcV
|
||||
54PclJpXklpUUJRZDFJbnpGZk6pQkpGK7HcsfiuFewnJEzDXFStkpOakKCSWKIBio1ghvwjMUEgq
|
||||
SsxLzkgtVsgvLSnOTEkFBRLIqtC8zJLUFIXgksSS1GI9cLDoJiUWg8IrMS8bFH15Cok5xfkKJYnZ
|
||||
KA6DBlgxPKgTc3IqFUoyivJL0zMUMkEey0sEhWFiDtgF4KhPTM7MAYeMgoank1uxJiQ2wSEDzoMg
|
||||
N4MTBkg1OAVpgHK6JlpCSixWSFQoy88pzU3VLU8F6UxNUchNTclMzAP5C2EeajrBSGs40phCUWpB
|
||||
fhEoWDLzwPHhFqRgZGJkoBAEFgdZEZyak5oMUuGbn5daqeALSYGgUqNYLyYvDLvTMovBpoH9lVhc
|
||||
nJ+cCc4W5ZklGShpHBR7oLgxNSjJUCiAFAigpJGfhqwMGgB6CsEFqcmZaZnJoAjQAduAI2jAFqNm
|
||||
yaRKhfyilNQiUHiDrEQJInDaz8kvTy0uUSjJV8jITM8AMUHG6CiUJGbDNCWX5oJyeGZZqkJxaS4o
|
||||
eCAOAOfEkozU4lRkdxfrgPN5Zgool6RVwgwBmaqAESoZYK0pqcV4wgSSi+HBASofCkqTcjKLM1JT
|
||||
FEDGFiskFkEyFsRdGGkG5muoeh2FovzSvJTUFJCvQaGSl5pYBPJ5UmJxZrFCQX5mXoleTJ5bfpFC
|
||||
bn5RqkJmXlp+UW4iKLHrKBSnpipklJQUFFvF6Mfol5eX6+WlllfmF2Wnpabo5Relx+hDsnRxjH5+
|
||||
UloRSC9gSrWxtQDdJyygHgcAAA==
|
||||
headers:
|
||||
Cache-Control:
|
||||
- max-age=0, no-cache
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '1102'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Mon, 10 Jun 2024 18:19:47 GMT
|
||||
Expires:
|
||||
- Mon, 10 Jun 2024 18:19:47 GMT
|
||||
Last-Modified:
|
||||
- Mon, 10 Jun 2024 13:01:13 GMT
|
||||
Pragma:
|
||||
- no-cache
|
||||
Server:
|
||||
- Apache
|
||||
Set-Cookie:
|
||||
- ak_bmsc=E9163914DA8EF717A905B89E7988EFA1~000000000000000000000000000000~YAAQlJUeuEPxN/WPAQAASrVgAxgrJbYAK3JO+4sNISl1Z0G8LktiOYFjcR6LRLJA6Lub+KFkOhAKK/ETa9AL6CGyKI1X4MYTYZxZOETwmzDH6zMt3o3PSYPPD+NpG7OMws5UVAuTl+X6RMcgkUn2cOCShcgop6eKAYdb+mAkQ4UERaoHkek2xXRUpBxxZGjOn7/89I8lw6CCdAQHOxhWyCvUc9wR+CK/D++Ju2gw0oMSE/gUshKQQRBMILq8NBMslujhaq+iOrkDBWnC5rp7ZMw9ekiQL4tX1KZP26fObnQMny+R5Q/2/OzIjw/Il7SMo0WJ7GcMsn1HzGflAWMF3clrcPFlXWKCdJwS7z5ize6wt67aBEUzdGqcZ06Gdxqk70D2A8JtIyWrd8w=;
|
||||
Domain=.stlouisfed.org; Path=/; Expires=Mon, 10 Jun 2024 20:19:47 GMT; Max-Age=7200
|
||||
Strict-Transport-Security:
|
||||
- max-age=86400
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
Cookie:
|
||||
- ak_bmsc=E9163914DA8EF717A905B89E7988EFA1~000000000000000000000000000000~YAAQlJUeuBXxN/WPAQAAYLRgAxhDw7CCLMCG3ZQVi/WYhq/NuL+dx0wUUYFz3AOQuv2Bf4QcHQaNlhKv4dIDSVo5GqTUuc3k5qi1azrbNhlnVDCLvkoPtKLAvnw4TIyHoC941MqJZgrZ0rNmK8aAuScTeQUPsf0Oh/lkoxeVKmODDsZMyu601YkQyxm0P5/Lt0gOUzFKOAp35wPGyZzX0cqD4UaDIJaJiqTxUh6huFnim+3MCO/sB6TMTxIrHqGHmNIlLZ4csX8/sWXKkxhd+XWNMG4qeQFHKeToiaS0+7A58IdADdW6bK3fAC1Yp12qe+zuEa8vDhbgtEey7zC2nTjZosCkv4z9u2/AhC/gBu7ZGdKa1zn2yQI0RefrfHRL;
|
||||
cookiesession1=678A3E1F28617F081F9D927A2400B314
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series?api_key=MOCK_API_KEY&file_type=json&series_id=OBFR25
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy0TUw0zU0UNJByKbmpaDLFacWZaYWFytZ
|
||||
RVcrZYJk/Z3cgoxMkXWRbGZJZklOqpKVkn9ZalFeZnpGiYJTYl62gltpXkpmXrpCUGJJqpWCkWlJ
|
||||
hkJAalFyal5JZk6qko5SflJxalFZYklmfh6SPwzNdA2MdQ0M0RSgesXAXElHKa0otbA0NS+5UslK
|
||||
ySUxM6cSWSy+OCMfHDIuSjpKpXmZJcVKVkpQ62EicDWqSjpKxamJxfl5iTnxiSlZpcUlual5oHD1
|
||||
yy9RCIbK5FQqOILlUlOwq4eb5xfsqKSjlJNYXBJfWpCSWJIKCmhEFCkYWFgZGFoZmugagAK+IL+g
|
||||
NCexKLOkUsnKQkcpL78kFeTYkIxUhXx4iCaBQjQNGqJFiSWpCpnFCsmJOcmlOSDzFUqLQUGdlpqS
|
||||
WpSYowBSWKxQUpSYV5yYDArgYoXEvBSF5NSiksTMPAXX0qL8lPycnMQiFDV6CiA7Uc3ITSzKTi1R
|
||||
SM7PK84sLilWyE9TSMnPTS0uyUxWKM0rTk0uLUpNUUjKLyrKL8/MSy9WyMxTCNUL1lOAmF+skFSp
|
||||
kJJakF+cWZJfVKmQmVdckllSCnFSWlF+rkJ+SUZqEU4lyK6GqAQln5LM1GIdhYKizNzEosycSoV0
|
||||
cDiBoky3uCA/rzgf5KbUvJLUooKizGKQ2vKMzJxUhZKMVGS/Y/FbKdxLSJ6Aua5YISM1J0UhsUQB
|
||||
FBvFCvlFYIZCUlFiXnJGarFCfmlJcWZKKiiQQFaF5mWWpKYoBJcklqQW64GDRTcpsRgUXol52aDo
|
||||
y1NIzCnOVyhJzEZxGDTAiuFBnZiTU6lQklGUX5qeoZAJ8lheIigME3PALgBHfWJyZk4mKGQUNDyd
|
||||
3Io1IbEJDhlwngS5GZwwQKrBKUgDlPc10RJSYrFCokJZfk5pbqpueSpIZ2qKQm5qSmZiHshfCPNQ
|
||||
0wlGWsORxhSKUgvyi0DBkpkHjg+3IAUjEyMDhSCwOMiK4NSc1GSQCt/8vNRKBV9ICgSVIsV6Cm75
|
||||
RQq5+UWpCpl5aflFueBQ0FEoTk1VyCgpKSi2itGP0S8vL9fLSy2vzC/KTktN0csvSo/Rh8R1cYx+
|
||||
flJaEUgvYEq1sbUALuz0ZUkFAAA=
|
||||
headers:
|
||||
Cache-Control:
|
||||
- max-age=0, no-cache
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '875'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Mon, 10 Jun 2024 18:19:47 GMT
|
||||
Expires:
|
||||
- Mon, 10 Jun 2024 18:19:47 GMT
|
||||
Last-Modified:
|
||||
- Mon, 10 Jun 2024 13:01:14 GMT
|
||||
Pragma:
|
||||
- no-cache
|
||||
Server:
|
||||
- Apache
|
||||
Set-Cookie:
|
||||
- ak_bmsc=E9163914DA8EF717A905B89E7988EFA1~000000000000000000000000000000~YAAQlJUeuEnxN/WPAQAAZbVgAxiY3sLkbh8bRJM++9EYNJW/5I7pXpsdBoH6kV5Mh/fhdTFPLZV5H4mrWsR+wdFaWQlaqMgu+f7ik6MvHUSjZDMCXE1Ux1BkSHbVU1dvAvA1RvMsk6QlSvfnR+sgoQ+33S+s+MpjFfIbUlpNUiAczNPoChOcJtqtlATno+wHh4EhGE//f9B7P7NBieArVPGwj1H7M4FdiZBpiTl2WOOq8gaFDQgOrtAPsC+hs9XuTWgxxjEvgfdNUoGh7gAR8m4ADxmqrvAtAhsycoFkXT/Py55JDiPDTmbL44EvftG66D5MW+n8fsdi47qMPayxyCW76fZdB1Yu2AL6m/MvnF8nUqUX5JW2c0QPEBgxhjz4OuqFB5mKwphTpzuxZwqn4A==;
|
||||
Domain=.stlouisfed.org; Path=/; Expires=Mon, 10 Jun 2024 20:19:47 GMT; Max-Age=7200
|
||||
- bm_sv=63F21E791AEBECCCD85CA154B53AADFF~YAAQlJUeuErxN/WPAQAAZbVgAxgqeZNXkb5VIHsfmPAAf5i1EoxAeB3rLnl+ErMa5kZZs5uM1bX+yH5OCF3Afdo+heuZ+LPqT1djCpdtuAim927tP0v5A8zdxIZfXiHwqdvK6V/KPUiQwU0ucYkVw/kYvWL49NWHz/rbnYSJSk2xlUBLi+uhcCTwfMQxH8R9eYInwYgOFYuBLBYj7nYd9MUx8RLV/ee/QeNx+kRQ/3InzRg4jjiHomGwVPkrnSZ5cQoPNw==~1;
|
||||
Domain=.stlouisfed.org; Path=/; Expires=Mon, 10 Jun 2024 20:19:47 GMT; Max-Age=7200;
|
||||
Secure
|
||||
Strict-Transport-Security:
|
||||
- max-age=86400
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
Cookie:
|
||||
- ak_bmsc=AAB461B1AF2A7904FB64045131A155DF~000000000000000000000000000000~YAAQlJUeuDDxN/WPAQAA6LRgAxhgSduyVrWI2nOZlmt3OV+2M24EYtm8IQ1WoylYFTK1pjQPTZbQcSCB2lCbabsXt1uFcm2qMoRX1gscvXJ71RR109YfXJCucD3ejnCJ0hvCkrAcnFD//B4IdXAnAWNy5sdmMP2CYC/7Sx58WfuEC3pzmIV1B3+9Iri75FvqWpPIXRcJrdPZBNp8OU/3yUL2vFXGOEKvm0oImXq5bviReHEnyDb1li2QVL9Jzhq8XWvDpnnFS2+ylGja/FBZ0ZxdjEmLAKAiB+qUuUsRxtHjzUsCm+0YCsTDFkdsXXtvuxGJmOg3TxVQYRf04LTBMuri1yeUPx+Zcea9Ns1H/MzQAsj9lMHRxFHbHMz5fCRFjCgzpQtQQ/43xsU=;
|
||||
cookiesession1=678A3E1F28617F081F9D927A2400B314
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series?api_key=MOCK_API_KEY&file_type=json&series_id=OBFR75
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy0TUw0zU0UNJByKbmpaDLFacWZaYWFytZ
|
||||
RVcrZYJk/Z3cgsxNkXWRbGZJZklOqpKVkn9ZalFeZnpGiYJTYl62gltpXkpmXrpCUGJJqpWCuWlJ
|
||||
hkJAalFyal5JZk6qko5SflJxalFZYklmfh6SPwzNdA2MdQ0M0RSgesXAXElHKa0otbA0NS+5UslK
|
||||
ySUxM6cSWSy+OCMfHDIuSjpKpXmZJcVKVkpQ62EicDWqSjpKxamJxfl5iTnxiSlZpcUlual5oHD1
|
||||
yy9RCIbK5FQqOILlUlOwq4eb5xfsqKSjlJNYXBJfWpCSWJIKCmhEFCkYWFgZGFoZmugagAK+IL+g
|
||||
NCexKLOkUsnKQkcpL78kFeTYkIxUhXx4iCaBQjQNGqJFiSWpCpnFCsmJOcmlOSDzFUqLQUGdlpqS
|
||||
WpSYowBSWKxQUpSYV5yYDArgYoXEvBSF5NSiksTMPAXX0qL8lPycnMQiFDV6CiA7Uc3ITSzKTi1R
|
||||
SM7PK84sLilWyE9TSMnPTS0uyUxWKM0rTk0uLUpNUUjKLyrKL8/MSy9WyMxTCNUL1lOAmF+skFSp
|
||||
kJJakF+cWZJfVKmQmVdckllSCnFSWlF+rkJ+SUZqEU4lyK6GqAQln5LM1GIdhYKizNzEosycSoV0
|
||||
cDiBoky3uCA/rzgf5KbUvJLUooKizGKQ2vKMzJxUhZKMVGS/Y/FbKdxLSJ6Aua5YISM1J0UhsUQB
|
||||
FBvFCvlFYIZCUlFiXnJGarFCfmlJcWZKKiiQQFaF5mWWpKYoBJcklqQW64GDRTcpsRgUXol52aDo
|
||||
y1NIzCnOVyhJzEZxGDTAiuFBnZiTU6lQklGUX5qeoZAJ8lheIigME3PALgBHfWJyZk4mKGQUNDyd
|
||||
3Io1IbEJDhlwngS5GZwwQKrBKUgDlPc10RJSYrFCokJZfk5pbqpueSpIZ2qKQm5qSmZiHshfCPNQ
|
||||
0wlGWsORxhSKUgvyi0DBkpkHjg+3IAUjEyMDhSCwOMiK4NSc1GSQCt/8vNRKBV9ICgSVIsV6Cm75
|
||||
RQq5+UWpCpl5aflFueBQ0FEoTk1VyCgpKSi2itGP0S8vL9fLSy2vzC/KTktN0csvSo/Rh8R1cYx+
|
||||
flJaEUgvYEq1sbUAKfZB0UkFAAA=
|
||||
headers:
|
||||
Cache-Control:
|
||||
- max-age=0, no-cache
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '875'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Mon, 10 Jun 2024 18:19:48 GMT
|
||||
Expires:
|
||||
- Mon, 10 Jun 2024 18:19:48 GMT
|
||||
Last-Modified:
|
||||
- Mon, 10 Jun 2024 13:01:14 GMT
|
||||
Pragma:
|
||||
- no-cache
|
||||
Server:
|
||||
- Apache
|
||||
Set-Cookie:
|
||||
- ak_bmsc=AAB461B1AF2A7904FB64045131A155DF~000000000000000000000000000000~YAAQlJUeuGnxN/WPAQAAD7ZgAxhbU3GyRPyEidOPJVcdXTub9wRVSDQRz4K4LoqQdhU5qkU1gyINziNgBpp+3TT7VdDq4Ce74wsfsCGgc5R2Ya77EDVJEOOS9lYwMDyhtIPrgv9ZqMYRYL+C2K+60PQThCLGyP3p1jo9m+gA13z4dSzOMToeClQsjr2Y2JPsezEUinlAZJDitkV8z2RUhM9gUYDrO+9uenV3vHG1yQY3+87m4uypkb7cGcvZlXSkNX1yFGKpmP3HHG9quHQQy6AKrkbV3ZvapeqW6a9G+omoRxWf6kYUr1yMStqTmiq3FufnnRmbo5MfNodYavLaryJlWENL0tGOJE4nnQ7u5frZ1UIaWyWEJj/oaSfm5+Z9N1QqrNXWSQO3T+m88oZtaFcV4+Ma;
|
||||
Domain=.stlouisfed.org; Path=/; Expires=Mon, 10 Jun 2024 20:19:47 GMT; Max-Age=7199
|
||||
Strict-Transport-Security:
|
||||
- max-age=86400
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
version: 1
|
||||
1030
openbb_platform/providers/fred/tests/record/http/test_fred_fetchers/test_fred_sofr_fetcher.yaml
vendored
Normal file
1030
openbb_platform/providers/fred/tests/record/http/test_fred_fetchers/test_fred_sofr_fetcher.yaml
vendored
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,538 +0,0 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- '*/*'
|
||||
Accept-Encoding:
|
||||
- gzip, deflate, br
|
||||
Connection:
|
||||
- keep-alive
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series/observations?api_key=MOCK_API_KEY&file_type=json&series_id=AMERIBOR
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
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
|
||||
AUAtA1RAVAQA
|
||||
headers:
|
||||
Accept-Ranges:
|
||||
- bytes
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '28224'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Mon, 18 Sep 2023 09:59:52 GMT
|
||||
Expires:
|
||||
- Mon, 18 Sep 2023 10:00:51 GMT
|
||||
Last-Modified:
|
||||
- Fri, 15 Sep 2023 12:03:10 GMT
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
x-rate-limit-limit:
|
||||
- '120'
|
||||
x-rate-limit-remaining:
|
||||
- '104'
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
version: 1
|
||||
@@ -1,179 +0,0 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- '*/*'
|
||||
Accept-Encoding:
|
||||
- gzip, deflate, br
|
||||
Connection:
|
||||
- keep-alive
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series/observations?api_key=MOCK_API_KEY&file_type=json&series_id=ECBESTRVOLWGTTRMDMNRT
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
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
|
||||
0zJmMFpV1I4Z9AwEmFJtbC0AfauOfIeVAQA=
|
||||
headers:
|
||||
Accept-Ranges:
|
||||
- bytes
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '7550'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Mon, 18 Sep 2023 09:59:51 GMT
|
||||
Expires:
|
||||
- Mon, 18 Sep 2023 10:00:51 GMT
|
||||
Last-Modified:
|
||||
- Mon, 18 Sep 2023 08:31:03 GMT
|
||||
Set-Cookie:
|
||||
- ak_bmsc=6BB4D3D3A59B20D3818DD1E14A5E85C7~000000000000000000000000000000~YAAQFk4SAk8HZJOKAQAAUGa7pxUGEDWHb3oa/qFWKkiodi7FWgH58ieCCMVauAQl7DOYb3FAAEmFJtMW0Dh2ZjXVTjeDrQo2tUowbJwSuN1srdvQ0GqlozvQjows4fxAvMkJZ5wnXGbPE/9O3JFjGGt4UbSa8ru5z4nrFuO+6uusFQs9yJkCwUZL+5wfqG2YI9PEoIW3LbsMAinEFfT5Rwsp/qedwPskTOX2iuMrdksKnl8d9uUoNF1gxEyl9ywh/Kn6+ufh7PwgO8chH0KXZVWfxCIHMo0cj8lNzWW4WkB1NtFepZyEC1uSOHF7sHJGPVRy7mbdaRtg4GOr8QrH0P6uxqAxTEDJ1E9+/zA02N2E/210A1e+TWFDtkzczU53;
|
||||
Domain=.stlouisfed.org; Path=/; Expires=Mon, 18 Sep 2023 11:59:50 GMT; Max-Age=7199;
|
||||
HttpOnly
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
x-rate-limit-limit:
|
||||
- '120'
|
||||
x-rate-limit-remaining:
|
||||
- '106'
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
version: 1
|
||||
@@ -1,597 +0,0 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- '*/*'
|
||||
Accept-Encoding:
|
||||
- gzip, deflate, br
|
||||
Connection:
|
||||
- keep-alive
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series/observations?api_key=MOCK_API_KEY&file_type=json&series_id=FF
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
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
|
||||
HaKmvvEoQ9QQ4wGLrQUA3ab+KsY7BQA=
|
||||
headers:
|
||||
Accept-Ranges:
|
||||
- bytes
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '31601'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Mon, 18 Sep 2023 09:59:52 GMT
|
||||
Expires:
|
||||
- Mon, 18 Sep 2023 10:00:52 GMT
|
||||
Last-Modified:
|
||||
- Thu, 14 Sep 2023 20:19:06 GMT
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
x-rate-limit-limit:
|
||||
- '120'
|
||||
x-rate-limit-remaining:
|
||||
- '103'
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
version: 1
|
||||
@@ -1,212 +0,0 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- '*/*'
|
||||
Accept-Encoding:
|
||||
- gzip, deflate, br
|
||||
Connection:
|
||||
- keep-alive
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series/observations?api_key=MOCK_API_KEY&file_type=json&series_id=SOFR
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
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
|
||||
headers:
|
||||
Accept-Ranges:
|
||||
- bytes
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '9457'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Mon, 18 Sep 2023 09:59:50 GMT
|
||||
Expires:
|
||||
- Mon, 18 Sep 2023 10:00:50 GMT
|
||||
Last-Modified:
|
||||
- Fri, 15 Sep 2023 12:01:03 GMT
|
||||
Set-Cookie:
|
||||
- ak_bmsc=3717B9CDF3F78B0F7113C27E36096262~000000000000000000000000000000~YAAQFk4SAscGZJOKAQAAXWO7pxVe9bV2HlkCKt3BUW7oB4jPnA73V+BVxba3AFaBWIPkkT78l8H3w72OoCXZNV0RccLajhniT1Vzk93Cdhk7PuHmgkMdjVG1wWOvSqzT5MmNOr/Hplz0oYhpD6HyXQHuoQWmiCRXOhuB5QFKGUTJVGYH1gREW5RjKtRnVCQsRGup4PnVFwfnlp61wU1EFN1LUmC4xji6RiaKaVipJkgk1mUnJQrSwpS5sLAGr3BSXGEBkp9RHg1yyvOitz0VQDRvCvPYJHKDlMXlFplEjWbF3m4XAJmsUX++mv9snBCH4BWVEGOYLXhMdtua9ug4SCFJyS/AK4NpsCFTd2025NFPvszvsC58F4JqqKAioZ7B;
|
||||
Domain=.stlouisfed.org; Path=/; Expires=Mon, 18 Sep 2023 11:59:50 GMT; Max-Age=7200;
|
||||
HttpOnly
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
x-rate-limit-limit:
|
||||
- '120'
|
||||
x-rate-limit-remaining:
|
||||
- '107'
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
version: 1
|
||||
@@ -4,20 +4,22 @@ import datetime
|
||||
|
||||
import pytest
|
||||
from openbb_core.app.service.user_service import UserService
|
||||
from openbb_fred.models.ameribor_rates import FREDAMERIBORFetcher
|
||||
from openbb_fred.models.ameribor import FredAmeriborFetcher
|
||||
from openbb_fred.models.balance_of_payments import FredBalanceOfPaymentsFetcher
|
||||
from openbb_fred.models.bond_indices import FredBondIndicesFetcher
|
||||
from openbb_fred.models.commercial_paper import FREDCommercialPaperFetcher
|
||||
from openbb_fred.models.consumer_price_index import FREDConsumerPriceIndexFetcher
|
||||
from openbb_fred.models.cp import FREDCommercialPaperFetcher
|
||||
from openbb_fred.models.dwpcr_rates import FREDDiscountWindowPrimaryCreditRateFetcher
|
||||
from openbb_fred.models.ecb_interest_rates import (
|
||||
FREDEuropeanCentralBankInterestRatesFetcher,
|
||||
)
|
||||
from openbb_fred.models.estr_rates import FREDESTRFetcher
|
||||
from openbb_fred.models.euro_short_term_rate import FredEuroShortTermRateFetcher
|
||||
from openbb_fred.models.fed_projections import FREDPROJECTIONFetcher
|
||||
from openbb_fred.models.fed_rates import FREDFEDFetcher
|
||||
from openbb_fred.models.federal_funds_rate import FredFederalFundsRateFetcher
|
||||
from openbb_fred.models.ffrmc import FREDSelectedTreasuryConstantMaturityFetcher
|
||||
from openbb_fred.models.hqm import FREDHighQualityMarketCorporateBondFetcher
|
||||
from openbb_fred.models.high_quality_market import (
|
||||
FredHighQualityMarketCorporateBondFetcher,
|
||||
)
|
||||
from openbb_fred.models.ice_bofa import FREDICEBofAFetcher
|
||||
from openbb_fred.models.iorb_rates import FREDIORBFetcher
|
||||
from openbb_fred.models.manufacturing_outlook_texas import (
|
||||
@@ -25,6 +27,9 @@ from openbb_fred.models.manufacturing_outlook_texas import (
|
||||
)
|
||||
from openbb_fred.models.moody import FREDMoodyCorporateBondIndexFetcher
|
||||
from openbb_fred.models.mortgage_indices import FredMortgageIndicesFetcher
|
||||
from openbb_fred.models.overnight_bank_funding_rate import (
|
||||
FredOvernightBankFundingRateFetcher,
|
||||
)
|
||||
from openbb_fred.models.regional import FredRegionalDataFetcher
|
||||
from openbb_fred.models.retail_prices import FredRetailPricesFetcher
|
||||
from openbb_fred.models.search import (
|
||||
@@ -34,7 +39,7 @@ from openbb_fred.models.senior_loan_officer_survey import (
|
||||
FredSeniorLoanOfficerSurveyFetcher,
|
||||
)
|
||||
from openbb_fred.models.series import FredSeriesFetcher
|
||||
from openbb_fred.models.sofr_rates import FREDSOFRFetcher
|
||||
from openbb_fred.models.sofr import FREDSOFRFetcher
|
||||
from openbb_fred.models.sonia_rates import FREDSONIAFetcher
|
||||
from openbb_fred.models.spot import FREDSpotRateFetcher
|
||||
from openbb_fred.models.survey_of_economic_conditions_chicago import (
|
||||
@@ -85,9 +90,12 @@ def test_fred_us_yield_curve_fetcher(credentials=test_credentials):
|
||||
|
||||
|
||||
@pytest.mark.record_http
|
||||
def test_fredsofr_fetcher(credentials=test_credentials):
|
||||
def test_fred_sofr_fetcher(credentials=test_credentials):
|
||||
"""Test FREDSOFRFetcher."""
|
||||
params = {}
|
||||
params = {
|
||||
"start_date": datetime.date(2024, 6, 1),
|
||||
"end_date": datetime.date(2024, 6, 6),
|
||||
}
|
||||
|
||||
fetcher = FREDSOFRFetcher()
|
||||
result = fetcher.test(params, credentials)
|
||||
@@ -95,11 +103,14 @@ def test_fredsofr_fetcher(credentials=test_credentials):
|
||||
|
||||
|
||||
@pytest.mark.record_http
|
||||
def test_fredestr_fetcher(credentials=test_credentials):
|
||||
"""Test FREDESTRFetcher."""
|
||||
params = {}
|
||||
def test_fred_euro_short_term_rate_fetcher(credentials=test_credentials):
|
||||
"""Test FREDEuroShortTermRateFetcher."""
|
||||
params = {
|
||||
"start_date": datetime.date(2024, 6, 1),
|
||||
"end_date": datetime.date(2024, 6, 6),
|
||||
}
|
||||
|
||||
fetcher = FREDESTRFetcher()
|
||||
fetcher = FredEuroShortTermRateFetcher()
|
||||
result = fetcher.test(params, credentials)
|
||||
assert result is None
|
||||
|
||||
@@ -115,21 +126,29 @@ def test_fredsonia_fetcher(credentials=test_credentials):
|
||||
|
||||
|
||||
@pytest.mark.record_http
|
||||
def test_fredameribor_fetcher(credentials=test_credentials):
|
||||
"""Test FREDAMERIBORFetcher."""
|
||||
params = {}
|
||||
def test_fred_ameribor_fetcher(credentials=test_credentials):
|
||||
"""Test FredAmeriborFetcher."""
|
||||
params = {
|
||||
"start_date": datetime.date(2023, 1, 1),
|
||||
"end_date": datetime.date(2023, 6, 6),
|
||||
"maturity": "overnight",
|
||||
}
|
||||
|
||||
fetcher = FREDAMERIBORFetcher()
|
||||
fetcher = FredAmeriborFetcher()
|
||||
result = fetcher.test(params, credentials)
|
||||
assert result is None
|
||||
|
||||
|
||||
@pytest.mark.record_http
|
||||
def test_fredfed_fetcher(credentials=test_credentials):
|
||||
"""Test FREDFEDFetcher."""
|
||||
params = {}
|
||||
def test_fred_federal_funds_rate_fetcher(credentials=test_credentials):
|
||||
"""Test FRED Federal Funds Rate Fetcher."""
|
||||
params = {
|
||||
"start_date": datetime.date(2023, 1, 1),
|
||||
"end_date": datetime.date(2023, 6, 6),
|
||||
"effr_only": True,
|
||||
}
|
||||
|
||||
fetcher = FREDFEDFetcher()
|
||||
fetcher = FredFederalFundsRateFetcher()
|
||||
result = fetcher.test(params, credentials)
|
||||
assert result is None
|
||||
|
||||
@@ -212,8 +231,10 @@ def test_fred_moody_corporate_bond_index_fetcher(credentials=test_credentials):
|
||||
def test_fred_commercial_paper_fetcher(credentials=test_credentials):
|
||||
"""Test FREDCommercialPaperFetcher."""
|
||||
params = {
|
||||
"start_date": datetime.date(2023, 1, 1),
|
||||
"end_date": datetime.date(2023, 6, 6),
|
||||
"start_date": datetime.date(2024, 1, 1),
|
||||
"end_date": datetime.date(2024, 2, 1),
|
||||
"category": "asset_backed",
|
||||
"maturity": "30d",
|
||||
}
|
||||
|
||||
fetcher = FREDCommercialPaperFetcher()
|
||||
@@ -236,10 +257,10 @@ def test_fred_spot_rate_fetcher(credentials=test_credentials):
|
||||
|
||||
@pytest.mark.record_http
|
||||
def test_fred_high_quality_market_corporate_bond_fetcher(credentials=test_credentials):
|
||||
"""Test FREDHighQualityMarketCorporateBondFetcher."""
|
||||
params = {"date": datetime.date(2023, 1, 1)}
|
||||
"""Test FredHighQualityMarketCorporateBondFetcher."""
|
||||
params = {"date": "2023-01-01"}
|
||||
|
||||
fetcher = FREDHighQualityMarketCorporateBondFetcher()
|
||||
fetcher = FredHighQualityMarketCorporateBondFetcher()
|
||||
result = fetcher.test(params, credentials)
|
||||
assert result is None
|
||||
|
||||
@@ -439,3 +460,16 @@ def test_fred_manufacturing_outlook_texas_fetcher(
|
||||
fetcher = FredManufacturingOutlookTexasFetcher()
|
||||
result = fetcher.test(params, credentials)
|
||||
assert result is None
|
||||
|
||||
|
||||
@pytest.mark.record_http
|
||||
def test_fred_overnight_bank_funding_rate_fetcher(credentials=test_credentials):
|
||||
"""Test FRED Overnight Bank Funding Rate Fetcher."""
|
||||
params = {
|
||||
"start_date": datetime.date(2024, 6, 1),
|
||||
"end_date": datetime.date(2024, 6, 6),
|
||||
}
|
||||
|
||||
fetcher = FredOvernightBankFundingRateFetcher()
|
||||
result = fetcher.test(params, credentials)
|
||||
assert result is None
|
||||
|
||||
Reference in New Issue
Block a user