proptax 0.0.4 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/README.md +14 -8
- data/lib/proptax.rb +17 -17
- data/lib/proptax/cli.rb +1 -1
- data/lib/proptax/generators/report/cherry-picked.Rmd +1 -1
- data/lib/proptax/generators/report/default.Rmd +1 -1
- data/lib/proptax/version.rb +1 -1
- data/proptax.gemspec +2 -2
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 690772cc1ab3218c8584a708be768edc01281a576f80c8ab8acd11ab8245e303
|
4
|
+
data.tar.gz: b7cbfcdf1dfbd617cf814b631efa7167fc65e5ad4e35bd02418b1a7d7d9299c5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f735715dbbd8cf5247fb6f780c40d0938960448f4665eda91a37bf35c7c0dd508918bf34a3eb69568eceaa3627d5eff953ee39dc285eb40f0bec918c1025543e
|
7
|
+
data.tar.gz: 49418dee28182e11b3d4a8e27b7b5b5b8a2a7b5bdf726f4849dceed3baac50065eff90c7ecaa5c20e4b029368ec3d734acf37ee980fd8d0921620115b3b8aca8
|
data/README.md
CHANGED
@@ -70,16 +70,16 @@ Last year I made a whole series of super-boring [YouTube tutorials](https://www.
|
|
70
70
|
|
71
71
|
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.
|
72
72
|
|
73
|
-
Suppose all my reports are saved in `~/prop-reports-
|
73
|
+
Suppose all my reports are saved in `~/prop-reports-2019`. From the command line, I execute the following:
|
74
74
|
|
75
75
|
```
|
76
|
-
proptax auto ~/prop-reports-
|
76
|
+
proptax auto ~/prop-reports-2019
|
77
77
|
```
|
78
78
|
|
79
79
|
This is as basic as you can get. You'll see the software's progress on the screen. Once completed, execute:
|
80
80
|
|
81
81
|
```
|
82
|
-
ls -l ~/prop-reports-
|
82
|
+
ls -l ~/prop-reports-2019/reports/*.pdf
|
83
83
|
```
|
84
84
|
|
85
85
|
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.
|
@@ -88,10 +88,10 @@ You'll see the same property analysis for every house on your street. Find the o
|
|
88
88
|
|
89
89
|
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.
|
90
90
|
|
91
|
-
Again, having saved your property reports in their own folder (e.g., `~/prop-reports-
|
91
|
+
Again, having saved your property reports in their own folder (e.g., `~/prop-reports-2019-cp`), execute:
|
92
92
|
|
93
93
|
```
|
94
|
-
proptax auto ~/prop-reports-
|
94
|
+
proptax auto ~/prop-reports-2019-cp --template cherry-picked
|
95
95
|
```
|
96
96
|
|
97
97
|
The analysis is identical, only the language contained in the reports changes. Developers, create any report template you like and submit a pull request!
|
@@ -99,7 +99,7 @@ The analysis is identical, only the language contained in the reports changes. D
|
|
99
99
|
As with the example above, your report and the reports for all the houses analyzed can be found here:
|
100
100
|
|
101
101
|
```
|
102
|
-
ls -l ~/prop-reports-
|
102
|
+
ls -l ~/prop-reports-2019-cp/reports/*.pdf
|
103
103
|
```
|
104
104
|
|
105
105
|
# Development
|
@@ -109,13 +109,13 @@ Install third-party software as with _Setup > Dependencies_, above.
|
|
109
109
|
Clone this repository:
|
110
110
|
|
111
111
|
```
|
112
|
-
git clone https://github.com/TaxReformYYC/report-generator-
|
112
|
+
git clone https://github.com/TaxReformYYC/report-generator-2019.git
|
113
113
|
```
|
114
114
|
|
115
115
|
Install `ruby` dependencies:
|
116
116
|
|
117
117
|
```
|
118
|
-
cd report-generator-
|
118
|
+
cd report-generator-2019
|
119
119
|
bin/setup
|
120
120
|
```
|
121
121
|
|
@@ -125,6 +125,12 @@ bin/setup
|
|
125
125
|
bundle exec rake spec
|
126
126
|
```
|
127
127
|
|
128
|
+
To run a single test:
|
129
|
+
|
130
|
+
```
|
131
|
+
bundle exec rake spec SPEC=spec/cli_consolidator_spec.rb
|
132
|
+
```
|
133
|
+
|
128
134
|
### To execute the `proptax` script within the development environment:
|
129
135
|
|
130
136
|
```
|
data/lib/proptax.rb
CHANGED
@@ -7,17 +7,15 @@ module Proptax
|
|
7
7
|
require 'pathname'
|
8
8
|
|
9
9
|
#
|
10
|
-
# Headers for publicly available assessment data for
|
10
|
+
# Headers for publicly available assessment data for 2019.
|
11
11
|
#
|
12
12
|
Headers = ['Current Assessed Value', 'Roll Number', 'Location Address', 'Taxation Status',
|
13
13
|
'Assessment Class', 'Property Type', 'Property Use', 'Valuation Approach',
|
14
14
|
'Market Adjustment', 'Community', 'Market Area', 'Sub Neighbourhood Code (SNC)',
|
15
15
|
'Sub Market Area', 'Influences', 'Land Use Designation', 'Assessable Land Area',
|
16
16
|
'Building Count', 'Building Type/Structure', 'Year of Construction',
|
17
|
-
'Quality', 'Total Living Area Above Grade', 'Living Area Below Grade',
|
18
|
-
'
|
19
|
-
'Constructed On Original Foundation', 'Modified For Disabled', 'Old House On New Foundation',
|
20
|
-
'Basementless', 'Penthouse']
|
17
|
+
'Quality', 'Total Living Area Above Grade', 'Living Area Below Grade',
|
18
|
+
'Garage Area', 'Fireplace Count']
|
21
19
|
|
22
20
|
#
|
23
21
|
# Keys that can be assigned multiple values
|
@@ -25,12 +23,12 @@ module Proptax
|
|
25
23
|
MultiFieldHeaders = ['Influences']
|
26
24
|
|
27
25
|
#
|
28
|
-
# Section headers for publicly available assessment data for
|
26
|
+
# Section headers for publicly available assessment data for 2019.
|
29
27
|
#
|
30
28
|
Sections = ['Assessment Details', 'Assessment Approach', 'Location Details', 'Land Details', 'Building Details']
|
31
29
|
|
32
30
|
#
|
33
|
-
# Convert a directory containing
|
31
|
+
# Convert a directory containing 2019 PDF assessment reports to text and
|
34
32
|
# write the relevant CSV information to stdout
|
35
33
|
#
|
36
34
|
# @param string - path to directory containing PDFs
|
@@ -59,10 +57,10 @@ module Proptax
|
|
59
57
|
end
|
60
58
|
|
61
59
|
#
|
62
|
-
# Take text-converted
|
60
|
+
# Take text-converted 2019 assessment reports and extract the relevant data
|
63
61
|
# into an array.
|
64
62
|
#
|
65
|
-
# @param string - text converted
|
63
|
+
# @param string - text converted 2019 assessment report
|
66
64
|
#
|
67
65
|
# @return array
|
68
66
|
#
|
@@ -144,14 +142,16 @@ module Proptax
|
|
144
142
|
'Living Area Below Grade',
|
145
143
|
'Garage Area'
|
146
144
|
text = text.split(' ')[0].gsub(/,/, '')
|
147
|
-
when 'Basement Suite',
|
148
|
-
'Walkout Basement',
|
149
|
-
'Constructed On Original Foundation',
|
150
|
-
'Modified For Disabled',
|
151
|
-
'Old House On New Foundation',
|
152
|
-
'Basementless',
|
153
|
-
'Penthouse',
|
154
|
-
'Market Adjustment'
|
145
|
+
# when 'Basement Suite',
|
146
|
+
# 'Walkout Basement',
|
147
|
+
# 'Constructed On Original Foundation',
|
148
|
+
# 'Modified For Disabled',
|
149
|
+
# 'Old House On New Foundation',
|
150
|
+
# 'Basementless',
|
151
|
+
# 'Penthouse',
|
152
|
+
# 'Market Adjustment'
|
153
|
+
# text = text == 'Yes' ? 'T' : 'F'
|
154
|
+
when 'Market Adjustment'
|
155
155
|
text = text == 'Yes' ? 'T' : 'F'
|
156
156
|
end
|
157
157
|
text
|
data/lib/proptax/cli.rb
CHANGED
@@ -19,7 +19,7 @@ module Proptax
|
|
19
19
|
# :default => true,
|
20
20
|
# :description => "Consolidate the PDFs before generating the report"}]
|
21
21
|
|
22
|
-
desc "consolidate DIR", "Outputs CSV data extracted from
|
22
|
+
desc "consolidate DIR", "Outputs CSV data extracted from 2019 property assessment reports"
|
23
23
|
def consolidate(dir)
|
24
24
|
Proptax::Consolidator.process(dir)
|
25
25
|
end
|
data/lib/proptax/version.rb
CHANGED
data/proptax.gemspec
CHANGED
@@ -9,9 +9,9 @@ Gem::Specification.new do |spec|
|
|
9
9
|
spec.authors = ["Daniel Bidulock"]
|
10
10
|
spec.email = ["daniel@capitolhill.ca"]
|
11
11
|
|
12
|
-
spec.summary = %q{Automatically process and visualize residential property data collected by the City of Calgary in
|
12
|
+
spec.summary = %q{Automatically process and visualize residential property data collected by the City of Calgary in 2019.}
|
13
13
|
spec.description = %q{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.}
|
14
|
-
spec.homepage = "https://github.com/TaxReformYYC/report-generator-
|
14
|
+
spec.homepage = "https://github.com/TaxReformYYC/report-generator-2019"
|
15
15
|
|
16
16
|
# Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
|
17
17
|
# to allow pushing to a single host or delete this section to allow pushing to any host.
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: proptax
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Bidulock
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-01-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -109,7 +109,7 @@ files:
|
|
109
109
|
- lib/proptax/generators/report/default.Rmd
|
110
110
|
- lib/proptax/version.rb
|
111
111
|
- proptax.gemspec
|
112
|
-
homepage: https://github.com/TaxReformYYC/report-generator-
|
112
|
+
homepage: https://github.com/TaxReformYYC/report-generator-2019
|
113
113
|
licenses: []
|
114
114
|
metadata: {}
|
115
115
|
post_install_message:
|
@@ -128,9 +128,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
128
128
|
version: '0'
|
129
129
|
requirements: []
|
130
130
|
rubyforge_project:
|
131
|
-
rubygems_version: 2.6
|
131
|
+
rubygems_version: 2.7.6
|
132
132
|
signing_key:
|
133
133
|
specification_version: 4
|
134
134
|
summary: Automatically process and visualize residential property data collected by
|
135
|
-
the City of Calgary in
|
135
|
+
the City of Calgary in 2019.
|
136
136
|
test_files: []
|