Skip to contents

Share of total assets invested in land, buildings, and equipment.

Formula:

lar = land_buildings_equipment / total_assets

Definitional Range

Bounded [0, 1] in normal conditions. The distribution is highly right-skewed: most nonprofits with no owned real estate show values near zero, while capital-intensive organizations (healthcare, housing, higher education) may show values above 0.50.

Benchmarks and rules of thumb

  • Most informative for within-subsector comparisons.

  • High values indicate illiquidity risk: if the majority of assets are fixed property, the organization has limited ability to quickly convert assets to cash.

Calculated For: 990 filers only.

Usage

get_land_assets_gross_ratio( df,
  land_buildings = "F9_10_ASSET_LAND_BLDG_DEPREC",
  total_assets   = "F9_10_ASSET_TOT_EOY",
  winsorize = 0.98 ,
  range     = "zo",
  sanitize  = TRUE,
  summarize = FALSE )

Arguments

df

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

land_buildings

Net land, buildings, and equipment (after depreciation), 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). 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:

- `land_assets_gross`   - land asset ratio (raw)
- `land_assets_gross_w` - winsorized version
- `land_assets_gross_z` - standardized z-score (based on winsorized values)
- `land_assets_gross_p` - percentile rank (1-100)

Details

Primary uses and key insights

The land, buildings, and equipment to assets ratio (gross version) measures what share of total assets is represented by the gross book value of fixed physical assets before accumulated depreciation is netted out. A high ratio indicates a capital-intensive organization with a large physical footprint; a low ratio indicates a lean service organization whose assets are primarily financial.

The gross version uses the accumulated depreciation field (Part X line 10b) as a proxy for the gross value of the fixed asset base. This is distinct from the net version (get_land_assets_net_ratio()), which uses the net book value after depreciation (Part X line 10cB). The gross version gives a better picture of the original investment in fixed assets; the net version better reflects current book value.

Formula variations and their sources

F9_10_ASSET_LAND_BLDG_DEPREC (accumulated depreciation, line 10b) / total assets. Note: this field contains the accumulated depreciation amount, not the gross cost. Using it as a proxy for the scale of fixed asset investment is an approximation. For a cleaner measure of fixed asset intensity, get_land_assets_net_ratio() uses the net value directly.

Canonical citations

  • Frumkin, P. & Keating, E.K. (2001). The price of doing good. Policy and Society, 20(4), 94-112. - Asset composition analysis for nonprofits.

Variables used:

  • F9_10_ASSET_LAND_BLDG_DEPREC: Accumulated depreciation on land and buildings (land_buildings)

  • F9_10_ASSET_TOT_EOY: Total assets, EOY (total_assets)

Examples

library( fiscal )
data( dat10k )

d <- get_land_assets_gross_ratio( df = dat10k )
#>    :: Total assets equal to zero :: 268 case(s) replaced with NaN
head( d[ , c( "land_assets_gross", "land_assets_gross_w", "land_assets_gross_z", "land_assets_gross_p" ) ] )
#>    land_assets_gross land_assets_gross_w land_assets_gross_z
#>                <num>               <num>               <num>
#> 1:                NA                  NA                  NA
#> 2:        0.04993167          0.04993167          -0.5601316
#> 3:        0.03381469          0.03381469          -0.6470599
#> 4:                NA                  NA                  NA
#> 5:        1.44265806          1.44265806           1.8466238
#> 6:                NA                  NA                  NA
#>    land_assets_gross_p
#>                  <int>
#> 1:                  NA
#> 2:                  54
#> 3:                  50
#> 4:                  NA
#> 5:                  96
#> 6:                  NA