Cash and savings as a share of total assets; measures the liquid composition of the asset base.
Formula:
cash_assets = ( cash + savings ) / total_assetsDefinitional Range
Bounded [0, 1]: zero means no liquid assets; one means the entire asset base is cash and savings. In practice most nonprofits fall in the [0.05, 0.50] range. Values above 0.60 are uncommon for operating nonprofits and may indicate excess cash hoarding.
Benchmarks and rules of thumb
No universally accepted benchmark. Values below 0.05 suggest minimal liquid cushion; values above 0.60 may indicate under-deployment of assets toward mission.
Foundations and endowed institutions naturally show higher ratios than operating nonprofits.
Calculated For: 990 + 990EZ filers.
Usage
get_cash_assets_ratio( df,
cash = "F9_10_ASSET_CASH_EOY",
total_assets = "F9_10_ASSET_TOT_EOY",
savings = "F9_10_ASSET_SAVING_EOY",
winsorize = 0.98 ,
range = "zp",
sanitize = TRUE,
summarize = FALSE )Arguments
- df
A
data.framecontaining the fields required for computing the metric.- cash
Cash on hand, EOY.
- total_assets
Total assets, EOY.
- savings
Savings and temporary cash investments, EOY.
- winsorize
Winsorization proportion between 0 and 1 (default
0.98).- range
Character string specifying the theoretical range of the ratio, used to set winsorization bounds. Default
"zp". 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). IfTRUE, imputes zero for NA financial fields before computing, respecting form scope.- summarize
Logical (default
FALSE). IfTRUE, prints summary statistics and density plots for all four output columns.
Value
The original data.frame with four columns appended:
cash_assets, cash_assets_w,
cash_assets_z, cash_assets_p.
Details
Primary uses and key insights
The cash and savings to assets ratio measures what fraction of an organization's total asset base is held in immediately liquid form. It is an asset composition indicator rather than a pure liquidity test: a high ratio means the organization holds a large share of its resources in cash (potentially signalling under-investment in mission-related assets), while a low ratio may indicate heavy investment in fixed assets or program-related investments.
This metric is distinct from get_cash_liquidity_ratio(), which compares
the same cash+savings numerator to current liabilities (a coverage test), and from
get_cash_on_hand(), which reports the dollar amount rather than a proportion.
Formula variations and their sources
The Stata-derived version of this ratio (cs_ta) used in nonprofit financial structure studies uses exactly this formulation: (cash + savings) / total assets EOY. Some balance sheet decomposition studies include pledges receivable and accounts receivable in the numerator to capture all near-liquid items, but this implementation follows the narrower two-item definition to maintain comparability with the cash ratio literature.
Why this formula was chosen
Cash (line 1B) and savings (line 2B) are the two most reliable, narrowly liquid items on the 990 balance sheet. Total assets (line 16B) is the standard denominator for asset composition ratios. This pairing cleanly answers the question: what share of total resources is in immediately spendable form?
Examples
library( fiscal )
data( dat10k )
d <- get_cash_assets_ratio( df = dat10k )
#> :: Total assets equal to zero :: 268 case(s) replaced with NaN
head( d[ , c( "cash_assets", "cash_assets_w", "cash_assets_z", "cash_assets_p" ) ] )
#> cash_assets cash_assets_w cash_assets_z cash_assets_p
#> <num> <num> <num> <int>
#> 1: 0.00000000 0.00000000 -3.47650149 1
#> 2: 1.00000000 1.00000000 4.89277956 94
#> 3: 0.15969270 0.15969270 -0.04643955 67
#> 4: 0.00000000 0.00000000 -3.47650149 1
#> 5: 0.00155365 0.00155365 -2.23000530 45
#> 6: 0.00000000 0.00000000 -3.47650149 1