Resubmission of 0.3.0, which CRAN’s incoming checks rejected on 2026-09-08. Two problems, both now fixed.
The donttest additional check ran
fred_all_vintages() on a machine with no
FRED_API_KEY and it aborted rather than failing gracefully.
0.3.0 wrapped 14 example blocks in try() but missed 14
more, including every vintage helper and fred_get_key()
itself. All of them are wrapped now. Verified by extracting every
generated example with
tools::Rd2ex(commentDonttest = FALSE) and running all 35
with the API key unset: none errors.
inst/CITATION carried
doi = "10.5281/zenodo.fred", a placeholder that was never
replaced with a real deposit. It resolves to 404 on both CrossRef and
DataCite, which CRAN flagged as an invalid DOI. There is no Zenodo
record for this package, so the field has been removed rather than
corrected.
A research-grade upgrade in three logical blocks: (1) discoverability and reference data, (2) workflow utilities and the default plot method, and (3) reproducibility helpers. 35 exports + 4 S3 methods, 275 tests, three new vignettes.
Every \donttest{} example that reaches the FRED API is
wrapped in try(). 14 blocks were affected. CRAN runs these
in its additional-issues donttest check, on build machines the upstream
host routinely refuses or rate-limits, and an example that could not
reach it was an ERROR rather than a printed condition. The
options(op) cache restore stays outside the
try() so it runs either way.
This is the CRAN Repository Policy requirement that a package using an internet resource fail gracefully when the resource is unavailable. It is the rule obr was archived under on 2026-08-22.
fred_catalogue() returns an offline curated
catalogue of around 50 widely used FRED series (GDP, employment,
inflation, rates, housing, financial, money/credit, trade/FX, consumer,
fiscal). Filter by category or free-text. No API call required.fred_browse() pretty-prints the FRED category tree.
With no arguments, shows the eight top-level categories from a static
reference (no API call). Pass a category_id to drill into
children.fred_recession_dates() returns NBER business-cycle
reference dates (peak, trough, duration) since 1857. Pass a vector of
dates to flag to get back per-observation in-recession
indicators for use as a regression covariate.fred_fomc_dates() returns FOMC scheduled meeting
decision dates 2017 to 2026, including SEP-meeting flags. Selected
unscheduled meetings during stress periods are included.fred_tbl now threads through
fred_search(), fred_category(),
fred_category_children(),
fred_category_series(), fred_releases(),
fred_release_series(), fred_release_dates(),
fred_sources(), fred_source_releases(),
fred_tags(), fred_related_tags(), and
fred_updates(). Their print headers now show the endpoint
and search query (where applicable).summary.fred_tbl() prints query metadata,
dimensions, date range, and value range before the standard
summary.data.frame output.[.fred_tbl() preserves the fred_tbl
class and fred_query attribute when subsetting.fred_event_window() extracts data inside a
c(before, after) day window around event dates. Works on
both long and wide format. Handy for event studies around FOMC
decisions, recession peaks, or release dates.fred_aggregate() aggregates long or wide format
data to a coarser calendar frequency (week / month / quarter / year)
using mean, sum, first,
last, median, min, or
max. Complements server-side aggregation in
fred_series(frequency = ...).fred_interpolate() fills NA values via
last-observation-carry- forward ("locf") or linear
interpolation ("linear"). Useful for mixed-frequency
analysis.plot.fred_tbl() default plot method. Detects long
or wide format, draws one line per series, and shades NBER recession
periods. Uses base graphics: no ggplot2 dependency.fred_cite_series() produces a citation for a FRED
series in BibTeX, plain text, or bibentry form. Works
offline (falls back to the series ID as the title); pass
fetch_metadata = TRUE to use the official series title from
fred_info(). Supports vintage-date pinning so cited data is
reproducible even after revisions.fred_manifest() snapshots one or more
fred_tbl objects as a YAML manifest with query metadata,
dimensions, date range, and an MD5 hash of each object. Saving the
manifest alongside paper code lets reviewers verify that the underlying
data is unchanged.fred_vintage_revisions() returns per-observation
revision summary statistics (n_vintages, first/final value, total
revision, mean/SD of inter-vintage changes, days to final). Useful for
choosing low-revision series for nowcasting and real-time analysis.multi-series-workflows: fetch, transform,
widen, plot.nowcasting-with-fred: pseudo-real-time GDP
nowcasting using monthly indicators, with vintage-aware backtesting
(pairs with the nowcast package).inflation-revisions: tracking core
inflation revisions using fred_real_time_panel() aligned to
FOMC SEP meeting dates.CITATION.cff file at the repository root for the
GitHub citation widget and Zenodo deposit workflow.fred_series() gains a format argument.
Pass format = "wide" to get one row per date with a column
per series, instead of the default long layout.fred_series() gains a transform argument
with readable aliases for the FRED units codes:
"level", "diff", "yoy_diff",
"qoq_pct", "yoy_pct",
"annualised", "log", "log_diff",
and more. The raw units codes still work;
transform and units are mutually
exclusive.fred_as_of() returns a series as it appeared on a
chosen vintage date.fred_first_release() returns only the initial release
of each observation, with no subsequent revisions.fred_all_vintages() returns the full revision
history.fred_real_time_panel() returns the values that were
available on each of a chosen set of vintage dates.fred_cache_info() reports the cache directory, file
count, total size, and per-file metadata. Useful for debugging stale
results.fred_tbl, a
thin data.frame subclass with a one-line provenance header
showing the query (series count, observation count, units, transform,
frequency, vintage). The header is informational; downstream code can
keep treating the result as a plain data frame.\donttest with tempdir()
cache instead of \dontrun, fixing CRAN policy
compliance.options(fred.cache_dir = ...).fred_series() for fetching one or more
FRED time series.