Share of total assets financed through net assets (equity).
Formula:
er = total_net_assets / total_assetsDefinitional Range
Theoretically bounded [0, 1] when net assets are positive. Values above 1.0 are not possible. Values below zero occur when net assets are negative (accumulated deficit), which is a distress indicator. The empirical range for most nonprofits is approximately [0.10, 0.95].
Benchmarks and rules of thumb
Above 0.50: Equity finances more than half of assets – generally healthy.
Below 0.30: High leverage; common in capital-intensive subsectors.
Most useful as a trend measure: declining values warrant investigation.
Calculated For: 990 + 990EZ filers.
Usage
get_equity_ratio( df,
net_assets = "F9_10_NAFB_TOT_EOY",
total_assets = "F9_10_ASSET_TOT_EOY",
winsorize = 0.98 ,
range = "zo",
sanitize = TRUE,
summarize = FALSE )Arguments
- df
A
data.framecontaining the fields required for computing the metric.- net_assets
Total net assets, EOY.
- total_assets
Total assets, EOY.
- 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
"zo". 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, 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 asummary()of the results and plots density curves for all four output columns (raw, winsorized, z-score, percentile). Defaults toFALSE.
Value
Object of class data.frame: the original dataframe appended with four
new columns:
- `equity` - equity ratio (raw)
- `equity_w` - winsorized version
- `equity_z` - standardized z-score (based on winsorized values)
- `equity_p` - percentile rank (1-100)Details
Primary uses and key insights
The equity ratio measures what share of total assets is financed by net assets (organizational equity) rather than liabilities. It is the arithmetic complement of the debt to asset ratio: equity ratio + debt ratio = 1.0 (when net assets are positive). A higher equity ratio indicates greater financial independence and resilience; the organization owns more of its assets outright.
For nonprofits, the equity ratio is particularly meaningful because net assets represent the accumulated result of mission-related financial decisions over time. A declining equity ratio over several years signals that liabilities are growing faster than assets - a potential sustainability warning.
Formula variations and their sources
Total net assets / total assets. Some formulations use unrestricted net assets in
the numerator to focus on the portion of equity truly available for general
operations. This implementation uses total net assets (restricted + unrestricted)
for maximum coverage across both 990 and 990EZ filers; for a more conservative
version, see get_netassets_composition_ratio().
Canonical citations
Tuckman, H.P. & Chang, C.F. (1991). A methodology for measuring the financial vulnerability of charitable nonprofit organizations. Nonprofit and Voluntary Sector Quarterly, 20(4), 445-460.
Bowman, W. (2011). Financial capacity and sustainability of ordinary nonprofits. Nonprofit Management and Leadership, 22(1), 37-51.
Examples
library( fiscal )
data( dat10k )
d <- get_equity_ratio( df = dat10k )
#> :: Total assets equal to zero :: 268 case(s) replaced with NaN
head( d[ , c( "equity", "equity_w", "equity_z", "equity_p" ) ] )
#> equity equity_w equity_z equity_p
#> <num> <num> <num> <int>
#> 1: 1.0000000 1.0000000 3.7418583 57
#> 2: 1.0000000 1.0000000 3.7418583 57
#> 3: 0.9754022 0.9754022 0.5889451 42
#> 4: 1.0000000 1.0000000 3.7418583 57
#> 5: 0.5197360 0.5197360 -0.8420643 13
#> 6: 1.0000000 1.0000000 3.7418583 57