Project

proptax

0.0
No commit activity in last 3 years
No release in over 3 years
This software produces reports from property data collected and provided by the City of Calgary. The versions used in previous years have won three victories before Calgary's Assessment Review Board, the quasi-judicial body that rules on property tax appeals.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 0.14.3
~> 1.15
~> 10.0
~> 3.0

Runtime

>= 0
 Project Readme

Proptax

Process property assessment reports provided by the City of Calgary and automatically report and visualize on discrepencies in the data.

I currently have three victories before Calgary's Assessment Review Board. Go to TaxReformYYC for more information.

This software automatically generates the reports I submit as evidence before the ARB.

Setup

proptax is a command line ruby program developed under Ubuntu 16.04. It is free to use and entirely open source, so it is probably deployable on MacOS and maybe Windows with some massaging. If you figure it out, please document the process and submit a pull request. I will gladly add your contribution to this software.

Dependencies

proptax combines and coordinates the output of multiple open source resources. In broad terms, it requires the following packages to generate the reports:

  1. gs
  2. tesseract
  3. enscript
  4. pandoc
  5. R

The following commands will install all third party dependencies on Ubuntu 16.04:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
sudo add-apt-repository 'deb [arch=amd64,i386] https://cran.rstudio.com/bin/linux/ubuntu xenial/'
sudo apt update
sudo apt install -y ghostscript tesseract-ocr enscript pandoc r-base r-base-dev r-cran-scales libmagick++-dev mesa-common-dev libglu1-mesa-dev texlive-fonts-recommended texlive-latex-recommended

R

R does the bulk of the data processing. It has some dependencies that are not available from Ubuntu PPAs. They need to be installed into the R environment directly.

Execute the following to open the R command prompt:

R

Then, at the > prompt, execute the following R commands:

install.packages('knitr', dependencies = TRUE)
install.packages('scales', dependencies = TRUE)
install.packages('formattable', dependencies = TRUE)
install.packages('ggplot2', dependencies = TRUE)

Assuming successful installation, you can exit R by holding Ctrl-D.

Install proptax

proptax is a ruby program. As such, you need to install ruby.

Assuming ruby, et al, are installed, you install the latest release of proptax like this:

gem install proptax

Usage

proptax reports-on and visualizes the data contained in residential property reports provided by the City of Calgary. Your property report and those of your neighbours can be obtained at assessmentsearch.calgary.ca.

Last year I made a whole series of super-boring YouTube tutorials on how to collect and process your property data. The collection process has changed slightly, but the first video should point you in the right direction. You only get 50 reports per year for some reason, so use 'em all up (and send them to me)!

Analyze your immediate neighbours

I collect reports for all the houses on my street - from one corner to the next - and save them into their own folder. I live on a very long street, so I collect 18 reports. You can do the same, or you can pick the houses against which you want to draw comparisons (see cherry picking below). This is handy for when the City provides their own sales comparison reports as evidence before the ARB.

Suppose all my reports are saved in ~/prop-reports-2019. From the command line, I execute the following:

proptax auto ~/prop-reports-2019

This is as basic as you can get. You'll see the software's progress on the screen. Once completed, execute:

ls -l ~/prop-reports-2019/reports/*.pdf

You'll see the same property analysis for every house on your street. Find the one labelled with your address and see how you stack up against your neighbours. There are several related files in the newly-generated reports/ directory. The PDFs are the ones I submit as evidence in my property tax appeals. I also submit consolidated.csv. It's from this CSV data that the reports are generated.

Cherry-picked analysis

Supposing you submit your PDF as evidence in your hearing before the ARB, the City will likely submit the houses against which they assessed your own house. These houses will probably be in your neighbourhood, but won't be all on your street. This requires a special --template command line option.

Again, having saved your property reports in their own folder (e.g., ~/prop-reports-2019-cp), execute:

proptax auto ~/prop-reports-2019-cp --template cherry-picked

The analysis is identical, only the language contained in the reports changes. Developers, create any report template you like and submit a pull request!

As with the example above, your report and the reports for all the houses analyzed can be found here:

ls -l ~/prop-reports-2019-cp/reports/*.pdf

Development

Install third-party software as with Setup > Dependencies, above.

Clone this repository:

git clone https://github.com/TaxReformYYC/report-generator-2019.git

Install ruby dependencies:

cd report-generator-2019
bin/setup

Test:

bundle exec rake spec

To run a single test:

bundle exec rake spec SPEC=spec/cli_consolidator_spec.rb

To execute the proptax script within the development environment:

bundle exec exe/proptax

To build the gem:

bundle exec rake build

The package will be found in the pkg/ directory.

To install this gem onto your local machine, run:

bundle exec rake install

If that doesn't work, try this:

gem install pkg/proptax-0.1.0.gem # Note version number

Execute the program:

proptax

If installed correctly, you will see help instructions.

To release a new version:

Update the version number in version.rb, and then run:

bundle exec rake release

This will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org:

Contributing

Bug reports and pull requests are welcome.

TODOs:

  • Speed up tests. Remove setup redundancies
  • Deploy auto CHANGELOG
  • DRY out R code
  • Deploy tesseract OCR on rasterized PDFs (as with Windows 7).
  • Custom report template documentation
  • Auto-install gem's third-party dependencies
  • Set up wiki for use on different operating systems
  • Dependencies require X11. It would be nice to run this on an Ubuntu 16.04 Server somehow

Suggestions? Contribute or donate!

Future:

  • Basic API for property data submission, collection, and retrieval

Licence

GNU General Public License v3.0