download_data_wrds_crsp() now errors informatively when version = "v1"
is used with an end_date later than December 2024, reflecting the
discontinuation of the CRSP legacy version at the end of 2024.
Removed the "experimental" lifecycle badge from assign_portfolio(),
compute_breakpoints(), compute_rolling_value(), estimate_model(),
and join_lagged_values(), which are now considered stable.
domain = "pseudo" to download_data() for generating pseudo
data with the same schema as the corresponding real domain. Supported
datasets in this release: "crsp_monthly", "crsp_daily",
"compustat_annual", "compustat_quarterly", and "ccm_links" (all
mirroring domain = "wrds"). Internally, every domain = "pseudo"
call funnels through simulate_pseudo_data(), the unexported router
that dispatches to per-dataset generators. Per-dataset entry points
(download_data_pseudo_crsp(), download_data_pseudo_compustat(),
download_data_pseudo_ccm_links()) remain exported for direct use.
All generators accept n_assets and seed arguments; identical
(seed, n_assets) yields the same identifier universe across datasets,
so pseudo CRSP and Compustat join cleanly via add_ccm_links = TRUE
or ccm_links. Daily CRSP is generated on weekdays only.download_factor_library_grid() to fetch the
tidy-finance/factor-library-grid dataset from Hugging Face. Also
accessible via download_data("tidyfinance", "factor_library_grid").test-coverage.yaml workflow and badge to README.set_wrds_credentials()).httr2,
so frenchdata is no longer declared in Imports. The behavior of
download_data_factors_ff() is unchanged.download_data("tidyfinance", "factor_library", ...) now honors the
canonical start_date and end_date arguments, filtering the returned
portfolio returns to the requested range. When both are omitted, the full
history is returned and the standard "Returning the full data set" message
is emitted (via validate_dates()). Previously these arguments were
accepted but silently ignored for the factor library.using-tidyfinance and dates-in-tidyfinance vignettes.
Both predated the current download_data() interface and are
superseded by the package manuscript. knitr and rmarkdown are no
longer declared in Suggests, and VignetteBuilder has been dropped
from DESCRIPTION.download_data("tidyfinance", "factor_library", ids = <vector>) now
delegates directly to download_factor_library_ids(), bypassing the
grid filter. Passing ids together with filter arguments raises an
informative error.list_supported_types() to list_supported_datasets()
(#242). The
old name remains exported as a soft-deprecated alias that forwards to the
new function. Internal helpers were renamed accordingly
(e.g. list_supported_types_ff() -> list_supported_datasets_ff()).download_data_constituents() now drops symbols equal to "-".only_us parameter in download_data_wrds_compustat() to only_usd
to reflect that the filter keeps USD-denominated shares only. The old name
is deprecated and forwards to only_usd with a warning.arrow, glue, and stringr dependencies and added nanoparquet.implement_portfolio_sort() as a convenience wrapper that combines sample construction filtering and portfolio return computation into a single call.download_data_risk_free() to download and process risk-free rate
data from FRED, splicing TB3MS (pre-2001) with DTB4WK (from 2001
onwards) for monthly data, and using DTB3 for daily data. Also
accessible via download_data("tidyfinance", "risk_free").download_data_wrds_crsp() to use download_data_risk_free()
(FRED-based) instead of the Kenneth French risk-free rate when
computing excess returns.download_data_risk_free().only_us parameter to download_data_wrds_compustat().add_ccm_links, adjust_volume) to download_data_wrds_crsp().prc_adj to "crsp_monthly" version "v1".adjust_volume parameter for "crsp_daily" version "v1" and "v2"
to download_data_wrds_compustat().compute_rolling_value().output parameter to estimate_model() to also return t-stats or residuals.join_lagged_values().list_supported_indexes().download_data_huggingface() and get_available_huggingface_files(). and support for type = "hf_high_frequency_sp500".type parameter in favor of domain and dataset.detail parameter to estimate_fama_macbeth() to include average n_obs, r_squared, and adj_r_squared.download_data_wrds_crsp().add_lag_columns() in favor of add_lagged_columns()."tidyfinance" with datasets "high_frequency_sp500", "factor_library", and "risk_free".renv due to lack of benefits.furrr).download_data_wrds_trace_enhanced() #133.list_supported_types_ff() with underscores #134.compute_portfolio_returns() and implement_portfolio_sort() now apply min_portfolio_size to the reported portfolio cross-section. For bivariate sorts this is the firm count per (main_portfolio, date) summed across secondary buckets, not per (main, secondary, date) cell as before. Previously, setting min_portfolio_size to the number of cells (e.g. n_main * n_secondary) silently voided every cell. Univariate behaviour is unchanged. The default has changed from 0L to 1L, so each reported portfolio is required to have at least one observation by default; pass min_portfolio_size = 0L to deactivate the check. The param documentation has also been corrected to reflect that small portfolios receive NA (not zero).compute_long_short_returns() no longer errors with object 'top' not found when the input panel contains only one distinct portfolio (e.g., because assign_portfolio() collapsed to a single bucket on a constant sorting variable). The long-short return is now NA on such dates, consistent with "no investment, no return", instead of crashing.download_stock_prices()because they were blocked.download_constituents() and download_stock_prices() now also fail gracefully with informative messages instead of errors or warnings.download_factors() returns empty data frame with date column to ensure vignettes are built even if resources are unavailable.start_date and end_date validation across applications.download_*() functions to cover unavailable or broken resources.add_lag_columns() function that is more efficient than lag_column()download_macro_predictors(), download_factors(), and download_osap() now fail gracefully with informative messages instead of errors or warnings.ccmxpf_linktable to the new WRDS default ccmxpf_lnkhist.download_factors_q()winsorize() by reducing quantile recalculationsdownload_data_wrds().estimate_model(), estimate_betas(), and estimate_fama_macbeth().download_data_wrds_clean_trace() to download_data_wrds_trace_enhanced() for improved consistency.vcov_options parameter to estimate_fama_macbeth().list_supported_indexes() and download_data_constituents() to download index constituents.estimate_betas() to estimate risk factor betas.estimate_fama_macbeth() to estimate Fama-MacBeth models.download_data_constituents() to download index constituents.download_data_osap() to download data from Open Source Asset Pricing.download_data_fred() to download data from Federal Reserve Economic Data.compute_portfolio_returns() to implement different portfolio sorting approaches.compute_long_short_returns() to quickly compute long-short portfolio returns.compute_breakpoints() to make assign_portfolio() more flexible.breakpoint_options() and data_options() to provide more flexibility with respect to column names.mktcap_lag in monthly CRSP.cli for error messages and warnings.NULL for optional default values.readxl dependency from download_data_macro_predictors().check_if_package_installed() function.estimate_model() to support both estimate_betas() and estimate_fama_macbeth().assign_portfolio() to support compute_portfolio_returns().download_data_stocks() to download_data_stock_prices() for better naming.list_supported_types()). All type names are created from a string cleaning algorithm and are hence more consistent. We kept implicit support for legacy type names to avoid breaking existing code.download_data_stocks().wrds_compustat_quarterly.additional_columns option for CRSP and Compustat instead of having the error prone option to pass columns via ....-999 by NA in Fama-French types, which was missing in the initial implementation.download_data_factors() to support all available column names in the Fama-French universe.start_date and end_date optional with a message to user which dates are used as defaults.date column and its references across WRDS types (see corresponding vignette for more information).tidyfinance-package.R file.tidyverse style.domain and as_vector parameters to list_supported_types()... with additional_columns parameter and ensured that CRSP and Compustat types consider it correctlymkt_excess column from type "wrds_crsp_monthly"fixed = TRUE to grepl() calls with fixed stringsNA_real_ instead of as.double(NA)toString() instead of paste0() with collapsedplyr::between() instead of unequal signsvignettes/using-tidyfinanceset_wrds_credentials() function for a guided tour to store login data"factors_ff_industry_*" data typeshml and smb columns from "wrds_crsp_monthly" output"v2" of "wrds_crsp_*" data typesdownload_data* functions into multiple files for better maintenance