Introduction

This vignette is intended to introduce the user to fredr functions for the Categories endpoint of the FRED API.

FRED series are assigned categories. Each FRED category is assigned an integer identifier. For example:

  • “Population, Employment, & Labor Markets” (category_id = 10)
  • “National Accounts” (category_id = 32992)
  • “Production & Business Activity” (category_id = 1)
  • “Housing” (category_id = 97)

Categories are organized in a hierarchical structure where parent categories contain children categories. All categories are children of the root category (category_id = 0). The following examples illustrate usage of the Categories endpoint functions in fredr.

Get a FRED category

fredr_category() returns minimal information for a single category specified by category_id. The data returned is a tibble in which each row represents a category.

fredr_category(category_id = 0L) 
#> # A tibble: 1 × 3
#>      id name       parent_id
#>   <int> <chr>          <int>
#> 1     0 Categories         0
fredr_category(category_id = 97L)
#> # A tibble: 1 × 3
#>      id name    parent_id
#>   <int> <chr>       <int>
#> 1    97 Housing         1

Get the children of a FRED category

fredr_category_children() returns minimal information (child ID, name, and parent ID) for all child categories of the parent category specified by category_id. The data returned is a tibble in which each row represents child category of the parent specified.

fredr_category_children(category_id = 0L)
#> # A tibble: 8 × 3
#>      id name                                    parent_id
#>   <int> <chr>                                       <int>
#> 1 32991 Money, Banking, & Finance                       0
#> 2    10 Population, Employment, & Labor Markets         0
#> 3 32992 National Accounts                               0
#> 4     1 Production & Business Activity                  0
#> 5 32455 Prices                                          0
#> 6 32263 International Data                              0
#> 7  3008 U.S. Regional Data                              0
#> 8 33060 Academic Data                                   0
fredr_category_children(category_id = 1L)
#> # A tibble: 16 × 3
#>       id name                                         parent_id
#>    <int> <chr>                                            <int>
#>  1 32262 Business Cycle Expansions & Contractions             1
#>  2 33936 Business Surveys                                     1
#>  3 32436 Construction                                         1
#>  4 33940 Emissions                                            1
#>  5 33955 Expenditures                                         1
#>  6 33490 Finance Companies                                    1
#>  7 32216 Health Insurance                                     1
#>  8    97 Housing                                              1
#>  9     3 Industrial Production & Capacity Utilization         1
#> 10 32429 Manufacturing                                        1
#> 11 33959 Patents                                              1
#> 12     6 Retail Trade                                         1
#> 13 33441 Services                                             1
#> 14 33492 Technology                                           1
#> 15 33202 Transportation                                       1
#> 16 33203 Wholesale Trade                                      1

Get series in a category

fredr_category_series() returns detailed information for the FRED series belonging to the category specified by category_id. The data returned is a tibble in which each row represents a series belonging to the category specified. For example, to get the top 100 quarterly series in the “Housing” category, ordering the results so that the most recently updated series appear first:

fredr_category_series(
  category_id = 97L, # Housing
  limit = 100L,
  order_by = "last_updated",
  filter_variable = "frequency",
  filter_value = "Quarterly"
)
#> # A tibble: 30 × 16
#>    id              realtime_start realtime_end title observation_sta… observation_end
#>    <chr>           <chr>          <chr>        <chr> <chr>            <chr>          
#>  1 TDSP            2021-10-11     2021-10-11   Hous… 1980-01-01       2021-01-01     
#>  2 MDSP            2021-10-11     2021-10-11   Mort… 1980-01-01       2021-01-01     
#>  3 CDSP            2021-10-11     2021-10-11   Cons… 1980-01-01       2021-01-01     
#>  4 FODSP           2021-10-11     2021-10-11   Hous… 1980-01-01       2021-01-01     
#>  5 RHORUSQ156N     2021-10-11     2021-10-11   Home… 1965-01-01       2021-04-01     
#>  6 RRVRUSQ156N     2021-10-11     2021-10-11   Rent… 1956-01-01       2021-04-01     
#>  7 BOAAAHORUSQ156N 2021-10-11     2021-10-11   Home… 1994-01-01       2021-04-01     
#>  8 ETOTALUSQ176N   2021-10-11     2021-10-11   Hous… 2000-04-01       2021-04-01     
#>  9 EVACANTUSQ176N  2021-10-11     2021-10-11   Hous… 2000-04-01       2021-04-01     
#> 10 RSAHORUSQ156S   2021-10-11     2021-10-11   Home… 1980-01-01       2021-04-01     
#> # … with 20 more rows, and 10 more variables: frequency <chr>,
#> #   frequency_short <chr>, units <chr>, units_short <chr>,
#> #   seasonal_adjustment <chr>, seasonal_adjustment_short <chr>,
#> #   last_updated <chr>, popularity <int>, group_popularity <int>, notes <chr>

To return all series in the “National Accounts” category tagged with "usa" and not "gnp", ordering the results such that higher frequency series appear first:

fredr_category_series(
  category_id = 32992L, # National Accounts
  order_by = "frequency",
  sort_order = "desc",
  tag_names = "usa",
  exclude_tag_names = "gnp"
)
#> # A tibble: 4 × 16
#>   id         realtime_start realtime_end title  observation_sta… observation_end
#>   <chr>      <chr>          <chr>        <chr>  <chr>            <chr>          
#> 1 NGMPUSMP   2021-10-11     2021-10-11   Total… 2001-01-01       2019-01-01     
#> 2 PCRGMPUSMP 2021-10-11     2021-10-11   Total… 2001-01-01       2017-01-01     
#> 3 RGMPUSMP   2021-10-11     2021-10-11   Total… 2001-01-01       2019-01-01     
#> 4 QGMPUSMP   2021-10-11     2021-10-11   Total… 2001-01-01       2019-01-01     
#> # … with 10 more variables: frequency <chr>, frequency_short <chr>,
#> #   units <chr>, units_short <chr>, seasonal_adjustment <chr>,
#> #   seasonal_adjustment_short <chr>, last_updated <chr>, popularity <int>,
#> #   group_popularity <int>, notes <chr>

Get tags within a FRED category

fredr_category_tags() returns information for the FRED tags assigned to series in the category specified by category_id. The data returned is a tibble in which each row represents a tag assigned to a series in the category specified. For example, to get all “source” tags belonging to series in the “Retail Trade” category:

fredr_category_tags(
  category_id = 6L,
  tag_group_id = "src"
)
#> # A tibble: 3 × 6
#>   name    group_id notes                       created   popularity series_count
#>   <chr>   <chr>    <chr>                       <chr>          <int>        <int>
#> 1 census  src      Census                      2012-02-…         80          390
#> 2 frb chi src      Chicago Fed                 2012-02-…         35            8
#> 3 bea     src      Bureau of Economic Analysis 2012-02-…         79            2

To search for tags with the words "usa" in the “Production & Business Activity” category, ordering the results by popularity:

fredr_category_tags(
  category_id = 1L,
  search_text = "usa",
  order_by = "popularity",
  sort_order = "desc"
)
#> # A tibble: 3 × 6
#>   name   group_id notes                    created       popularity series_count
#>   <chr>  <chr>    <chr>                    <chr>              <int>        <int>
#> 1 usa    geo      United States of America 2012-02-27 1…        100         3252
#> 2 census src      Census                   2012-02-27 1…         80         3252
#> 3 ga     geo      Georgia (U.S. state)     2012-02-27 1…         49           48