Downloads pre-processed risk-free rate data from the
tidy-finance/risk-free dataset on HuggingFace. The dataset is
updated monthly via a scheduled GitHub Actions workflow that splices the
3-Month Treasury Bill Secondary Market Rate (pre-2001) with the 4-Week
Treasury Bill Secondary Market Rate (from 2001 onwards) sourced from FRED.
For monthly data, the monthly TB3MS series is spliced with the daily DTB4WK
series aggregated to month-end. For daily data, the daily DTB3 series is
spliced with the daily DTB4WK series, both at the business-day frequency
provided by FRED.
Arguments
- start_date
Optional. A character string or Date object in "YYYY-MM-DD" format specifying the start date for the data. If not provided, the full dataset is returned.
- end_date
Optional. A character string or Date object in "YYYY-MM-DD" format specifying the end date for the data. If not provided, the full dataset is returned.
- frequency
A character string, either
"monthly"(default) or"daily", specifying the frequency of the returned data. Daily data starts in 1954-01-04 because of availability of DTB3, while monthly data starts in 1934-01-01.
Value
A tibble with two columns:
- date
The date of the observation.
- risk_free
The risk-free rate for the period.
Details
Both series are quoted as annualised bank discount rates on a
360-day basis. Given an annualised discount rate d and a T-bill
with n days to maturity, the holding-period return is
HPR = d * n/360 / (1 - d * n/360), which is then converted to the
target period length via (1 + HPR)^(target/source) - 1.
The series are spliced at 2001-07-01:
Pre-2001: TB3MS (monthly) or DTB3 (daily), 3-month T-bill with n = 90. Monthly conversion uses exponent
1/3; daily conversion uses exponent1/63(approx. trading days per quarter).From 2001: DTB4WK, 4-week T-bill with n = 28. For monthly data, the last non-NA observation per calendar month is taken and the exponent is
365/(28*12). For daily data, observations are used as-is and the exponent is1/20(approx. trading days per 4-week period).
Business-day gaps in the daily series (e.g. holidays) are handled by forward-filling the most recent available rate.
Monthly data starts in 1934-01-01 (TB3MS). Daily data starts in 1954-01-04 due to the availability of DTB3.
See also
Other download functions:
download_data(),
download_data_constituents(),
download_data_factors_ff(),
download_data_factors_q(),
download_data_fred(),
download_data_fred_md(),
download_data_huggingface(),
download_data_jkp(),
download_data_macro_predictors(),
download_data_osap(),
download_data_pastor_stambaugh(),
download_data_stambaugh_yuan(),
download_data_stock_prices(),
download_factor_library_grid(),
download_factor_library_ids()
Examples
# \donttest{
download_data_risk_free("2020-01-01", "2020-12-31")
#> # A data frame: 12 × 2
#> date risk_free
#> <date> <dbl>
#> 1 2020-01-01 0.00129
#> 2 2020-02-01 0.00121
#> 3 2020-03-01 0.0000338
#> 4 2020-04-01 0.0000845
#> 5 2020-05-01 0.000110
#> 6 2020-06-01 0.000110
#> 7 2020-07-01 0.0000760
#> 8 2020-08-01 0.0000676
#> 9 2020-09-01 0.0000676
#> 10 2020-10-01 0.0000676
#> 11 2020-11-01 0.0000676
#> 12 2020-12-01 0.0000676
download_data_risk_free(
"2020-01-01", "2020-12-31", frequency = "daily"
)
#> # A data frame: 262 × 2
#> date risk_free
#> <date> <dbl>
#> 1 2020-01-01 0.0000564
#> 2 2020-01-02 0.0000584
#> 3 2020-01-03 0.0000580
#> 4 2020-01-06 0.0000588
#> 5 2020-01-07 0.0000580
#> 6 2020-01-08 0.0000572
#> 7 2020-01-09 0.0000584
#> 8 2020-01-10 0.0000580
#> 9 2020-01-13 0.0000588
#> 10 2020-01-14 0.0000584
#> # ℹ 252 more rows
# }