Skip to content

BLSEconomicSurveysCpi

QuantConnect.DataSource.BLSEconomicSurveysCpi

BLSEconomicSurveysCpi()
BLSEconomicSurveysCpi(line: str)

Bases: BaseData

BLS Consumer Price Index (CPI) data. Contains 15 non-seasonally-adjusted CPI series including headline CPI, core CPI, and major expenditure categories. CPI measures the average change over time in the prices paid by urban consumers for a market basket of consumer goods and services. Released monthly by the Bureau of Labor Statistics.

Signature descriptions:

  • Default constructor required for LEAN deserialization.

  • Constructor that parses a CSV line into the data model. CSV format: time,endtime,allitems,corecpi,food,foodathome,foodawayfromhome,energy,shelter,rentofprimaryresidence,gasoline,medicalcare,apparel,educationandcommunication,newvehicles,usedcarsandtrucks,collegetuitionandfees

Parameters:

Name Type Description Default
line Optional[str]

CSV line to parse

None

end_time

end_time: datetime

End time of this data point — the actual release date/time when this CPI data was published. Overridden to decouple from Time (BaseData.EndTime setter overwrites Time). Release dates are scraped from BLS schedule pages at https://www.bls.gov/schedule/{year}/home.htm

all_items

all_items: Optional[float]

All items, U.S. city average, all urban consumers, NSA (CUUR0000SA0). Headline CPI index. Base period: 1982-84=100.

core_cpi

core_cpi: Optional[float]

All items less food and energy (Core CPI), NSA (CUUR0000SA0L1E). Base period: 1982-84=100.

food

food: Optional[float]

Food, NSA (CUUR0000SAF1). Base period: 1982-84=100.

food_at_home

food_at_home: Optional[float]

Food at home, NSA (CUUR0000SAF11). Base period: 1982-84=100.

food_away_from_home

food_away_from_home: Optional[float]

Food away from home, NSA (CUUR0000SEFV). Base period: 1982-84=100.

energy

energy: Optional[float]

Energy, NSA (CUUR0000SA0E). Base period: 1982-84=100.

shelter

shelter: Optional[float]

Shelter, NSA (CUUR0000SAH1). Base period: 1982-84=100.

rent_of_primary_residence

rent_of_primary_residence: Optional[float]

Rent of primary residence, NSA (CUUR0000SEHA). Base period: 1982-84=100.

gasoline

gasoline: Optional[float]

Gasoline (all types), NSA (CUUR0000SETB01). Base period: 1982-84=100.

medical_care

medical_care: Optional[float]

Medical care, NSA (CUUR0000SAM). Base period: 1982-84=100.

apparel

apparel: Optional[float]

Apparel, NSA (CUUR0000SAA). Base period: 1982-84=100.

education_and_communication

education_and_communication: Optional[float]

Education and communication, NSA (CUUR0000SAE). Base period: 1982-84=100.

new_vehicles

new_vehicles: Optional[float]

New vehicles, NSA (CUUR0000SETA01). Base period: 1982-84=100.

used_cars_and_trucks

used_cars_and_trucks: Optional[float]

Used cars and trucks, NSA (CUUR0000SETA02). Base period: 1982-84=100.

college_tuition_and_fees

college_tuition_and_fees: Optional[float]

College tuition and fees, NSA (CUUR0000SEEB01). Base period: 1982-84=100.

symbol

symbol: Symbol

Symbol representation for underlying Security

data_type

data_type: MarketDataType

Market Data Type of this data - does it come in individual price packets or is it grouped into OHLC.

time

time: datetime

Current time marker of this data packet.

value

value: float

Value representation of this data packet. All data requires a representative value for this moment in time. For streams of data this is the price now, for OHLC packets this is the closing price.

price

price: float

As this is a backtesting platform we'll provide an alias of value as price.

ALL_RESOLUTIONS

ALL_RESOLUTIONS: List[Resolution] = ...

A list of all Resolution

This Field is protected.

DAILY_RESOLUTION

DAILY_RESOLUTION: List[Resolution] = ...

A list of Resolution.DAILY

This Field is protected.

MINUTE_RESOLUTION

MINUTE_RESOLUTION: List[Resolution] = ...

A list of Resolution.MINUTE

This Field is protected.

HIGH_RESOLUTION

HIGH_RESOLUTION: List[Resolution] = ...

A list of high Resolution, including minute, second, and tick.

This Field is protected.

OPTION_RESOLUTIONS

OPTION_RESOLUTIONS: List[Resolution] = ...

A list of resolutions support by Options

This Field is protected.

is_fill_forward

is_fill_forward: bool

True if this is a fill forward piece of data

clone

clone() -> BaseData

Creates a copy of the instance.

Returns:

Type Description
BaseData

Clone of the instance.

data_time_zone

data_time_zone() -> Any

Indicates the data time zone for this data source. BLS releases are in Eastern Time.

Returns:

Type Description
Any

The DateTimeZone of this data source.

default_resolution

default_resolution() -> Resolution

Gets the default resolution for this data type.

Returns:

Type Description
Resolution

The default resolution.

get_source

get_source(
    config: SubscriptionDataConfig,
    date: datetime,
    is_live_mode: bool,
) -> SubscriptionDataSource

Return the URL/path string source of the file. This will be converted to a stream.

Parameters:

Name Type Description Default
config SubscriptionDataConfig

Configuration object

required
date datetime

Date of this source file

required
is_live_mode bool

true if we're in live mode, false for backtesting

required

Returns:

Type Description
SubscriptionDataSource

Subscription data source object pointing to the data location.

is_sparse_data

is_sparse_data() -> bool

CPI data is sparse — released monthly, so most days have no data.

Returns:

Type Description
bool

true because CPI is monthly data.

reader

reader(
    config: SubscriptionDataConfig,
    line: str,
    date: datetime,
    is_live_mode: bool,
) -> BaseData

Parses the data from the line provided and loads it into LEAN.

Parameters:

Name Type Description Default
config SubscriptionDataConfig

Subscription data config setup object

required
line str

Line of the source document

required
date datetime

Date of the requested data

required
is_live_mode bool

true if we're in live mode, false for backtesting

required

Returns:

Type Description
BaseData

Instance of the class with parsed data.

requires_mapping

requires_mapping() -> bool

This is unlinked macro data, not tied to specific securities.

Returns:

Type Description
bool

false.

supported_resolutions

supported_resolutions() -> List[Resolution]

Gets the supported resolutions for this data type.

Returns:

Type Description
List[Resolution]

List of supported resolutions.

to_string

to_string() -> str

Returns a string representation for debugging.

Returns:

Type Description
str

String representation of the data point.

protobuf_serialize

protobuf_serialize(guid: Guid) -> List[int]
protobuf_serialize(stream: Stream) -> None

Serialize a base data instance using protobuf

Parameters:

Name Type Description Default
guid Optional[Guid]

Unique guid

None
stream Optional[Stream]

The destination stream

None

Returns:

Type Description
Optional[List[int]]

The resulting byte array.

deserialize_message

deserialize_message(serialized: str) -> Sequence[BaseData]

Deserialize the message from the data server

Parameters:

Name Type Description Default
serialized str

The data server's message

required

Returns:

Type Description
Sequence[BaseData]

An enumerable of base data, if unsuccessful, returns an empty enumerable.

get_update_price_scale_frontier

get_update_price_scale_frontier() -> datetime

Helper method to determine if price scales need an update based on the given data point

normalize

normalize(
    factor: float,
    normalization_mode: DataNormalizationMode,
    sum_of_dividends: float,
) -> BaseData

Normalize prices based on configuration

Parameters:

Name Type Description Default
factor float

Price scale

required
normalization_mode DataNormalizationMode

The price scaling normalization mode

required
sum_of_dividends float

The current dividend sum

required

Returns:

Type Description
BaseData

The provided data point adjusted.

scale

scale(
    factor_func: Callable[[float, float, float], float],
    volume_factor: float,
    factor: float,
    sum_of_dividends: float,
) -> BaseData

Scale data based on factor function

Parameters:

Name Type Description Default
factor_func Callable[[float, float, float], float]

Function to factor prices by

required
volume_factor float

Factor to multiply volume/askSize/bidSize/quantity by

required
factor float

Price scale

required
sum_of_dividends float

The current dividend sum

required

should_cache_to_security

should_cache_to_security() -> bool

Indicates whether this contains data that should be stored in the security cache

Returns:

Type Description
bool

Whether this contains data that should be stored in the security cache.

update

update(
    last_trade: float,
    bid_price: float,
    ask_price: float,
    volume: float,
    bid_size: float,
    ask_size: float,
) -> None

Update routine to build a bar/tick from a data update.

Parameters:

Name Type Description Default
last_trade float

The last trade price

required
bid_price float

Current bid price

required
ask_price float

Current asking price

required
volume float

Volume of this trade

required
bid_size float

The size of the current bid, if available

required
ask_size float

The size of the current ask, if available

required

update_ask

update_ask(ask_price: float, ask_size: float) -> None

Updates this base data with the new quote ask information

Parameters:

Name Type Description Default
ask_price float

The current ask price

required
ask_size float

The current ask size

required

update_bid

update_bid(bid_price: float, bid_size: float) -> None

Updates this base data with the new quote bid information

Parameters:

Name Type Description Default
bid_price float

The current bid price

required
bid_size float

The current bid size

required

update_quote

update_quote(
    bid_price: float,
    bid_size: float,
    ask_price: float,
    ask_size: float,
) -> None

Updates this base data with new quote information

Parameters:

Name Type Description Default
bid_price float

The current bid price

required
bid_size float

The current bid size

required
ask_price float

The current ask price

required
ask_size float

The current ask size

required

update_trade

update_trade(last_trade: float, trade_size: float) -> None

Updates this base data with a new trade

Parameters:

Name Type Description Default
last_trade float

The price of the last trade

required
trade_size float

The quantity traded

required