Ratio Study for Computer Assisted Mass Appraisal (CAMA) models
Ratio-Study is software package for Python developed by the Municipal Property Assessment Corporation (MPAC) of Ontario, Canada. It has been developed and is maintained by ASMA-DS: the Data Science team within the Assessment Standards and Mass Appraisal Department at MPAC.
This package provides a comprehensive suite of functions for evaluating Computer Assisted Mass Appraisal (CAMA) real estate valuation models. These functions comprise but are not limited to the International Association of Assessing Officers (IAAO)' Standard on Ratio Studies, as well as recent advances in this area.
Backend support (pandas / polars / pyarrow)
The package is backend-agnostic thanks to narwhals.
Public functions (ratios, rts_calculator, asr_median, cod, prd, prb,
rmse, mae, CoC, CoV_adj, vei_analysis, vem,
gini_stats, gini_decomp, gini_factors, bo_decompose, bo_multi_decomposition,
compare_ratios, etc.) accept any of the following:
pandas.DataFrame(default)polars.DataFramepyarrow.Table- A narwhals-wrapped frame (
narwhals.DataFrame/narwhals.LazyFrame) - 1D values can be any of:
numpy.ndarray,pandas.Series,polars.Series,narwhals.Series, or a plain list.
Where the input is a polars / pyarrow / narwhals frame, the result is returned in the same backend so you can keep your pipeline native.
A few third-party libraries remain pandas-only, so the package converts at the function boundary where needed:
seaborn(used ingraphs.py)xlsxwriterviapd.ExcelWriter(used inreporting.py)statsmodels.formula.api.ols(used ingini_factors)
import polars as pl
from ratio_study import ratios, load_sample_dataset
# Load a polars DataFrame from the bundled parquet sample
df = load_sample_dataset("polars")
# Compute IAAO ratio indicators — result is a polars.DataFrame
result = ratios(
df,
market_value_header="time_adjusted_sale_price",
assessment_header="assessment_value_new",
list_of_indicators=["Median", "Mean", "CoD", "PRD", "PRB"],
group_by="property_type",
)
print(result.to_dicts())
References
IAAO's Standard on Ratio Studies available at https://www.iaao.org/media/standards/Standard_on_Ratio_Studies.pdf
Thomas J. DiCiccio. Bradley Efron. "Bootstrap confidence intervals." Statist. Sci. 11 (3) 189 - 228, August 1996. https://doi.org/10.1214/ss/1032280214
Quintos, C. (2020). A Gini measure for vertical equity in property assessments. Journal of Property Tax Assessment & Administration, 17(2). Retrieved from https://researchexchange.iaao.org/jptaa/vol17/iss2/2
Quintos, C. (2021). A Gini decomposition of the sources of inequality in property assessments. Journal of Property Tax Assessment & Administration, 18(2). Retrieved from https://researchexchange.iaao.org/jptaa/vol18/iss2/6
Formulas on article by David Zaslavsky, retrieved from https://www.ellipsix.net/blog/2012/11/the-gini-coefficient-for-distribution-inequality.html
Metadata
Release files for ratio-study 1.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ratio_study-1.0.1.tar.gz | 1.1 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ratio_study-1.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 2.2 MB
Release files / ratio_study-1.0.1.tar.gz
| Download URL | ratio_study-1.0.1.tar.gz |
|---|---|
| Size | 1.1 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3c035c287bdcb487af183ff7a7002cf5618d153afb2234878212f16c96a70c93
|
|
BLAKE2b-256 checksum How to use checksums |
6f94e0d9900a8b862be9f46489425e42b1a7595c7e4308572bc00caebdaf4c63
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.5
|
Release files / ratio_study-1.0.1-py3-none-any.whl
| Download URL | ratio_study-1.0.1-py3-none-any.whl |
|---|---|
| Size | 1.0 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
90f419ed54d1dc83490cdf97a0b27d9f94775d98121d88fc36843e0aac59423e
|
|
BLAKE2b-256 checksum How to use checksums |
299427a38d5a291beb9a193a244770feec596964540cc4e0da529d5b34467eaa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.5
|