Calculate Coefficient of Dispersion (COD)#

assesspy.cod(estimate: list[int] | list[float] | Series, sale_price: list[int] | list[float] | Series) float#

COD is the average absolute percent deviation from the median ratio. It is a measure of horizontal equity in assessment. Horizontal equity means properties with a similar fair market value should be similarly assessed.

Lower COD indicates higher uniformity/horizontal equity in assessment. The IAAO sets uniformity standards that define generally accepted ranges for COD depending on property class. See IAAO Standard on Ratio Studies Section 9.1, Table 1.3 for a full list of standard COD ranges.

Note

The IAAO recommends trimming outlier ratios before calculating COD, as it is extremely sensitive to large outliers. The typical method used is dropping values beyond 3 * IQR (inner-quartile range). See IAAO Standard on Ratio Studies Appendix B.1.

Parameters:
  • estimate (Array-like numeric values) – A list or pd.Series of estimated values. Must be the same length as sale_price.

  • sale_price (Array-like numeric values) – A list or pd.Series of sale prices. Must be the same length as estimate.

Returns:

A single float value containing the COD of the inputs.

Return type:

float

Example:

# Calculate COD:
import assesspy as ap

ap.cod(ap.ccao_sample().estimate, ap.ccao_sample().sale_price)
assesspy.cod_ci(estimate: list[int] | list[float] | Series, sale_price: list[int] | list[float] | Series, nboot: int = 1000, alpha: float = 0.05) tuple[float, float]#

Calculate the non-parametric bootstrap confidence interval for COD.

See also:

boot_ci()

assesspy.cod_met(x: float) bool#

Check whether COD meets IAAO standards (between 5 and 15, inclusive).

Parameters:

x (float) – A single float value containing the COD.

Returns:

A boolean value indicating whether the COD meets IAAO standards.

Return type:

bool