Skip to contents

Liquid unrestricted net assets available to cover operating expenses, expressed as a multiple of total annual expenses.

Formula:

orr = operating_reserves / total_expenses

operating_reserves = unrestricted_net_assets - net_fixed_assets

Definitional Range

Unbounded in both directions when expressed in months. Negative values occur when unrestricted net assets are negative or when net fixed assets exceed unrestricted net assets. Values above 24 months are uncommon for operating organizations and may indicate accumulation beyond what is needed for operating risk management.

Benchmarks and rules of thumb

  • Less than 1 month: Acute vulnerability.

  • 1-3 months: Below the commonly recommended minimum.

  • 3-6 months: Generally adequate for most operating nonprofits.

  • 6-12 months: Strong; appropriate for volatile-revenue or capital-intensive organizations.

  • The Nonprofit Finance Fund recommends a minimum of 3 months.

Calculated For: 990 + 990EZ filers.

Usage

get_operating_reserve_ratio( df,
  unrestricted_net_assets = "F9_10_NAFB_UNRESTRICT_EOY",
  net_fixed_assets        = "F9_10_ASSET_LAND_BLDG_NET_EOY",
  total_expenses          = "F9_09_EXP_TOT_TOT",
  winsorize = 0.98 ,
  range     = "np",
  sanitize  = TRUE,
  summarize = FALSE )

Arguments

df

A data.frame containing the fields required for computing the metric.

unrestricted_net_assets

Unrestricted net assets, EOY.

net_fixed_assets

Net land, buildings, and equipment, EOY.

total_expenses

Total functional expenses.

winsorize

The winsorization value (between 0 and 1), defaults to 0.98, which winsorizes at the 1st and 99th percentiles.

range

Character string specifying the theoretical range of the ratio, used to set winsorization bounds. Default "np". Options: "np" (negative to positive), "zp" (zero to positive), "zo" (zero to one), "nz" (negative to zero), or a custom "lo;hi" pair (e.g. "0;10").

sanitize

Logical (default TRUE). If TRUE, NA values in the financial input columns are imputed to zero before the ratio is computed, respecting form scope: Part X and VIII/IX fields (990 only) are imputed only for 990 filers; Part I summary fields (990 + 990EZ) are imputed for all filers. The returned dataframe always contains the original unmodified input columns.

summarize

Logical. If TRUE, prints a summary() of the results and plots density curves for all four output columns (raw, winsorized, z-score, percentile). Defaults to FALSE.

Value

Object of class data.frame: the original dataframe appended with four new columns:

- `op_reserve`   - operating reserves ratio (raw)
- `op_reserve_w` - winsorized version
- `op_reserve_z` - standardized z-score (based on winsorized values)
- `op_reserve_p` - percentile rank (1-100)

Details

Primary uses and key insights

The operating reserve ratio answers a key sustainability question: how many months of operations can the organization fund from its unrestricted liquid assets, excluding illiquid fixed property? It is the recommended primary reserve adequacy metric of the Nonprofit Finance Fund and is widely used in financial health assessments, lender due diligence, and board reporting.

Unlike days/months of cash measures (get_days_cash_operations(), get_months_cash_operations()), which count only cash and receivables, the operating reserve ratio starts from the full unrestricted equity base and removes fixed assets - giving a broader picture of the liquid reserves available to sustain operations.

Formula variations and their sources

(Unrestricted net assets - net fixed assets) / (total expenses / 12). This implementation follows the Nonprofit Finance Fund and Zietlow et al. (2007) definition. An alternative adds back mortgage debt to fixed assets (get_liquid_assets_months()) to more precisely isolate the unencumbered value of fixed property. Some formulations use unrestricted net assets alone (without subtracting fixed assets), which produces higher values.

Canonical citations

  • Nonprofit Finance Fund. Operating Reserve Policy Toolkit for Nonprofits.

    • Primary source for the operating reserve ratio definition and benchmarks.

  • Zietlow, J., Hankin, J.A. & Seidner, A. (2007). Financial Management for Nonprofit Organizations. Wiley.

  • Calabrese, T.D. (2013). Running on empty. Nonprofit Management and Leadership, 23(3), 281-302. - Empirical analysis of operating reserve levels across the U.S. nonprofit sector.

Variables used:

  • F9_10_NAFB_UNRESTRICT_EOY: Unrestricted net assets, EOY (unrestricted_net_assets)

  • F9_10_ASSET_LAND_BLDG_NET_EOY: Net land, buildings, and equipment (net_fixed_assets)

  • F9_09_EXP_TOT_TOT: Total functional expenses (total_expenses)

Examples

library( fiscal )
data( dat10k )

d <- get_operating_reserve_ratio( df = dat10k )
#>    :: Total expenses equal to zero :: 77 case(s) replaced with NaN
head( d[ , c( "op_reserve", "op_reserve_w", "op_reserve_z", "op_reserve_p" ) ] )
#>    op_reserve op_reserve_w op_reserve_z op_reserve_p
#>         <num>        <num>        <num>        <int>
#> 1:         NA           NA           NA           NA
#> 2:  0.0000000    0.0000000   -0.3119309           25
#> 3:  0.9287125    0.9287125    0.6041477           72
#> 4:         NA           NA           NA           NA
#> 5: -5.4165706   -5.4165706   -1.9883114            4
#> 6:         NA           NA           NA           NA