fech 0.8.2 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.rdoc CHANGED
@@ -6,10 +6,11 @@
6
6
 
7
7
  Fech makes it easy to parse electronic campaign filings[http://query.nictusa.com/pres/], House candidate filings, PAC filings and independent expenditure filings[http://www.fec.gov/finance/disclosure/ie_reports.shtml] from the Federal Election Commission. It lets you access filing attributes the same way regardless of filing version, and works as a framework for cleaning and filing data.
8
8
 
9
- Fech supports several FEC form types, including all F1 (statements of organization), F2 (statements of candidacy), F3 (House candidate filings), F3L (contributions bundled by lobbyists) F3P (presidential filings), F5 (independent expenditures), F24 (24/48 hour notices of independent expenditures), F56 (contributions to independent expenditure committees) F57 (expenditures by independent expenditure committees), F3X (filings by unauthorized committees) and F9 (electioneering communications).
9
+ Fech supports several FEC form types, including all F1 (statements of organization), F2 (statements of candidacy), F3 (House candidate filings), F3L (contributions bundled by lobbyists) F3P (presidential filings), F4 (convention committee filings), F5 (independent expenditures), F24 (24/48 hour notices of independent expenditures), F56 (contributions to independent expenditure committees) F57 (expenditures by independent expenditure committees), F3X (filings by unauthorized committees) and F9 (electioneering communications).
10
10
 
11
11
  == News
12
12
 
13
+ * Feb. 21, 2012: Version 0.9.0 released. Added support for alternative CSV Parsers, F4 filings.
13
14
  * Feb. 19, 2012: Version 0.8.2 released. Added layouts for F1M and F2 filings.
14
15
  * Feb. 15, 2012: Version 0.8.1 released. Bug-fix to support F3 termination filings.
15
16
  * Feb. 13, 2012: Version 0.8.0 released. Layouts for form 3 and form 1 added, for parsing House candidate committee filings.
@@ -41,6 +42,14 @@ Start by creating a Filing object that corresponds to an electronic filing from
41
42
  * Pass in the FEC filing id
42
43
  * Optional arguments: pass in a :quote_char argument, and Fech will use it as a quote character to parse the file (see details below). Specify the :download_dir on initialization to set where filings are stored. Otherwise, they'll go into a temp folder on your filesystem.
43
44
 
45
+ === CSV Parsers
46
+
47
+ Not all CSV Parsers are created equal. Some are fast and naive, others are slow but handle malformed data more reliably. By default, FasterCSV is used, but you can pass in your own choice of parser with the :csv_parser option:
48
+
49
+ filing = Fech::Filing.new(723604, :csv_parser => Fech::CsvDoctor)
50
+
51
+ Fech::CsvDoctor inherits from FasterCSV, and helps deal with certain types of malformed quotes in the data (see: Handling malformed filings). You could pass in any subclass with special handling.
52
+
44
53
  === Summary Data
45
54
 
46
55
  To get summary data for the filing (various aggregate amounts, stats about the filing):
@@ -157,6 +166,20 @@ You can allow any field (converted, combined, or untranslated) to have an arbitr
157
166
 
158
167
  We found it useful to be able to access attributes using the name the fields in our database they correspond to.
159
168
 
169
+ === Handling malformed filings
170
+
171
+ Some filers put double quotes around each field in their filings, which can cause problems if not done correctly. For example, filing No. 735497 has the following value in the field for the name of a payee:
172
+
173
+ "Stichin" LLC"
174
+
175
+ Because the field is not properly quoted FasterCSV and CSV will not be able to parse it, and will instead raise a MalformedCSVError.
176
+
177
+ To get around this problem, you can pass in Fech::CsvDoctor as the :csv_parser when initializing the filing (see: CSV Parsers). It will then take the following steps when parsing the filing:
178
+ * Try to parse the line using the default CSV parser, using double quotes as the quote character (by default) or a different quote character if specified.
179
+ * If a MalformedCSVError is raised, try to parse the line using a null value as the quote character. If this succeeds, each value in the line is then parsed, so that the quote characters around properly quoted fields are not included in Fech's output.
180
+
181
+ If you'd like to parse an entire filing using a specific CSV quote character, see: Quote character.
182
+
160
183
  === Quote character
161
184
 
162
185
  By default, Fech, like FasterCSV and CSV, assumes that double quotes are used around values that contain reserved characters.
@@ -192,6 +215,7 @@ The following row types are currently supported from filing version 3 through 8.
192
215
  * F3P31 (Items to be Liquidated)
193
216
  * F3S
194
217
  * F3X (Report of Receipts and Disbursements for Other Than an Authorized Committee)
218
+ * F4 (Report of Receipts and Disbursements for a Convention Committee)
195
219
  * F5 (Report of Independent Expenditures Made and Contributions Received)
196
220
  * F56 (Contributions for Independent Expenditures)
197
221
  * F57 (Independent Expenditures)
data/lib/fech/csv.rb CHANGED
@@ -16,4 +16,55 @@ module Fech
16
16
  class Csv < FasterCSV
17
17
  end
18
18
  end
19
+
20
+ class Csv
21
+
22
+ # Loads a given file and parses it into an array, line by line.
23
+ # Basic wrapper around FasterCSV.foreach
24
+ # @param [String] file_path location of the filing on the file system
25
+ # @options opts passed through to FasterCSV
26
+ def self.parse_row(file_path, opts)
27
+ foreach(file_path, opts) { |row| yield row }
28
+ end
29
+
30
+ end
31
+
32
+ class CsvDoctor < Fech::Csv
33
+
34
+ # Skips FasterCSV's whole-file wrapper, and passes each line in
35
+ # the file to a function that will parse it individually.
36
+ def self.parse_row(file_path, opts)
37
+ opts.reject! {|k,v| ![:col_sep, :quote_char].include?(k)}
38
+
39
+ File.open(file_path, 'r').each do |line|
40
+ # Skip empty lines
41
+ next if line.strip.empty?
42
+ yield safe_line(line, opts)
43
+ end
44
+ end
45
+
46
+ # Tries to parse the line with FasterCSV.parse_line and the given
47
+ # quote_char. If this fails, try again with the "\0" quote_char.
48
+ # @param [String] line the file's row to parse
49
+ # @options opts :quote_char the quote_char to try initially
50
+ def self.safe_line(line, opts)
51
+ begin
52
+ parse_line(line, opts)
53
+ rescue Fech::Csv::MalformedCSVError
54
+ row = parse_line(line, opts.merge(:quote_char => "\0"))
55
+ row.map! { |val| safe_value(val) }
56
+ end
57
+ end
58
+
59
+ # Removes extraneous quotes from values.
60
+ def self.safe_value(val)
61
+ return val unless val.is_a?(String)
62
+ begin
63
+ parse_line(val).first
64
+ rescue Fech::Csv::MalformedCSVError
65
+ val
66
+ end
67
+ end
68
+
69
+ end
19
70
  end
@@ -10,13 +10,14 @@ module FechUtils
10
10
  :f1m => /(^f1m[^a|n])/i,
11
11
  :f2 => /(^f2[^a|n])/i,
12
12
  :f24 => /^f24/i,
13
- :f3 => /(^f3[^a|n|t])/i,
14
- :f3l => /(^f3l[^a|n])/i,
13
+ :f3 => /^f3[a|n|t]/i,
14
+ :f3l => /^f3l[a|n]/i,
15
15
  :f3p => /(^f3p$)|(^f3p[^s|3])/i,
16
16
  :f3s => /^f3s/i,
17
17
  :f3p31 => /^f3p31/i,
18
18
  :f3ps => /^f3ps/i,
19
- :f3x => /^f3x/i,
19
+ :f3x => /^f3x/i,
20
+ :f4 => /^f4[na]/i,
20
21
  :f5 => /^f5[na]/i,
21
22
  :f56 => /^f56/i,
22
23
  :f57 => /^f57/i,
data/lib/fech/filing.rb CHANGED
@@ -20,6 +20,7 @@ module Fech
20
20
  @download_dir = opts[:download_dir] || Dir.tmpdir
21
21
  @translator = Fech::Translator.new(:include => opts[:translate])
22
22
  @quote_char = opts[:quote_char] || '"'
23
+ @csv_parser = opts[:csv_parse] || Fech::Csv
23
24
  end
24
25
 
25
26
  # Saves the filing data from the FEC website into the default download
@@ -196,9 +197,9 @@ module Fech
196
197
  def parse_filing_version
197
198
  first = File.open(file_path).first
198
199
  if first.index("\034").nil?
199
- Fech::Csv.parse(first).flatten[2]
200
+ @csv_parser.parse(first).flatten[2]
200
201
  else
201
- Fech::Csv.parse(first, :col_sep => "\034").flatten[2]
202
+ @csv_parser.parse(first, :col_sep => "\034").flatten[2]
202
203
  end
203
204
  end
204
205
 
@@ -227,8 +228,9 @@ module Fech
227
228
  unless File.exists?(file_path)
228
229
  raise "File #{file_path} does not exist. Try invoking the .download method on this Filing object."
229
230
  end
231
+
230
232
  c = 0
231
- Fech::Csv.foreach(file_path, :col_sep => delimiter, :quote_char => @quote_char, :skip_blanks => true) do |row|
233
+ @csv_parser.parse_row(file_path, :col_sep => delimiter, :quote_char => @quote_char, :skip_blanks => true) do |row|
232
234
  if opts[:with_index]
233
235
  yield [row, c]
234
236
  c += 1
@@ -10,7 +10,7 @@ module Fech
10
10
  FILING_VERSIONS = ["8.0", "7.0", "6.4", "6.3", "6.2", "6.1",
11
11
  "5.3", "5.2", "5.1", "5.0", "3"]
12
12
  BASE_ROW_TYPES = ["HDR", "F1", "F1M", "F2", "F24", "F3", "F3L", "F3P", "F3P31", "F3PS", "F3S", "F3X",
13
- "F5", "F56", "F57", "F9", "F91", "F92", "F93", "F94",
13
+ "F4", "F5", "F56", "F57", "F9", "F91", "F92", "F93", "F94",
14
14
  "SchA", "SchB", "SchC", "SchC1", "SchC2", "SchD", "SchE",
15
15
  "SchF", "TEXT"]
16
16
  ROW_TYPE_MATCHERS = {
@@ -26,6 +26,7 @@ module Fech
26
26
  "F3P31" => FechUtils::ROW_TYPES[:f3p31],
27
27
  "F3PS" => FechUtils::ROW_TYPES[:f3ps],
28
28
  "F3X" => FechUtils::ROW_TYPES[:f3x],
29
+ "F4" => FechUtils::ROW_TYPES[:f4],
29
30
  "F5" => FechUtils::ROW_TYPES[:f5],
30
31
  "F56" => FechUtils::ROW_TYPES[:f56],
31
32
  "F57" => FechUtils::ROW_TYPES[:f57],
@@ -15,11 +15,11 @@ module Fech
15
15
  '^6.3|6.2|6.1' => [:form_type, :filer_committee_id_number, :change_of_committee_name, :committee_name, :change_of_address, :street_1, :street_2, :city, :state, :zip, :change_of_committee_email, :committee_email, :change_of_committee_url, :committee_url, :effective_date, :signature_last_name, :signature_first_name, :signature_middle_name, :signature_prefix, :signature_suffix, :date_signed, :committee_type, :candidate_id_number, :candidate_last_name, :candidate_first_name, :candidate_middle_name, :candidate_prefix, :candidate_suffix, :candidate_office, :candidate_state, :candidate_district, :party_code, :party_type, :organization_type, :lobbyist_registrant_pac, :lobbyist_registrant_pac_2, :leadership_pac, :affiliated_committee_id_number, :affiliated_committee_name, :affiliated_candidate_id_number, :affiliated_last_name, :affiliated_first_name, :affiliated_middle_name, :affiliated_prefix, :affiliated_suffix, :affiliated_street_1, :affiliated_street_2, :affiliated_city, :affiliated_state, :affiliated_zip, :affiliated_relationship_code, :custodian_last_name, :custodian_first_name, :custodian_middle_name, :custodian_prefix, :custodian_suffix, :custodian_street_1, :custodian_street_2, :custodian_city, :custodian_state, :custodian_zip, :custodian_title, :custodian_telephone, :treasurer_last_name, :treasurer_first_name, :treasurer_middle_name, :treasurer_prefix, :treasurer_suffix, :treasurer_street_1, :treasurer_street_2, :treasurer_city, :treasurer_state, :treasurer_zip, :treasurer_title, :treasurer_telephone, :agent_last_name, :agent_first_name, :agent_middle_name, :agent_prefix, :agent_suffix, :agent_street_1, :agent_street_2, :agent_city, :agent_state, :agent_zip, :agent_title, :agent_telephone, :bank_name, :bank_street_1, :bank_street_2, :bank_city, :bank_state, :bank_zip, :bank2_name, :bank2_street_1, :bank2_street_2, :bank2_city, :bank2_state, :bank2_zip],
16
16
  '^5.3|5.2|5.1|5.0' => [:form_type, :filer_committee_id_number, :committee_name, :street_1, :street_2, :city, :state, :zip, :effective_date, :change_of_committee_name, :change_of_address, :committee_type, :candidate_id_number, :candidate_name, :candidate_office, :candidate_state, :candidate_district, :party_code, :party_type, :affiliated_committee_id_number, :affiliated_committee_name, :affiliated_street_1, :affiliated_street_2, :affiliated_city, :affiliated_state, :affiliated_zip, :affiliated_relationship_code, :organization_type, :custodian_name, :custodian_street_1, :custodian_street_2, :custodian_city, :custodian_state, :custodian_zip, :custodian_title, :custodian_telephone, :treasurer_name, :treasurer_street_1, :treasurer_street_2, :treasurer_city, :treasurer_state, :treasurer_zip, :treasurer_title, :treasurer_telephone, :agent_name, :agent_street_1, :agent_street_2, :agent_city, :agent_state, :agent_zip, :agent_title, :agent_telephone, :bank_name, :bank_street_1, :bank_street_2, :bank_city, :bank_state, :bank_zip, :signature_name, :date_signed, :committee_email, :committee_url, :committee_fax_number],
17
17
  },
18
- "(^f1m[a|n])" => {
18
+ "(^f1m[^a|n])" => {
19
19
  '^5.3|5.2|5.1|5.0|3.0' => [:form_type, :filer_committee_id_number, :committee_name, :street_1, :street_2, :city, :state, :zip, :committee_type, :affiliated_date_f1_filed, :affiliated_committee_id_number, :affiliated_committee_name, :first_candidate_id_number, :first_candidate_name, :first_candidate_office, :first_candidate_state, :first_candidate_district, :first_candidate_contribution_date, :second_candidate_id_number, :second_candidate_name, :second_candidate_office, :second_candidate_state, :second_candidate_district, :second_candidate_contribution_date, :third_candidate_id_number, :third_candidate_name, :third_candidate_office, :third_candidate_state, :third_candidate_district, :third_candidate_contribution_date, :fourth_candidate_id_number, :fourth_candidate_name, :fourth_candidate_office, :fourth_candidate_state, :fourth_candidate_district, :fourth_candidate_contribution_date, :fifth_candidate_id_number, :fifth_candidate_name, :fifth_candidate_office, :fifth_candidate_state, :fifth_candidate_district, :fifth_candidate_contribution_date, :fifty_first_contributor_date, :original_registration_date, :requirements_met_date, :treasurer_name, :date_signed],
20
20
  '^8.0|7.0|6.4|6.3|6.2|6.1' => [:form_type, :filer_committee_id_number, :committee_name, :street_1, :street_2, :city, :state, :zip, :committee_type, :affiliated_date_f1_filed, :affiliated_committee_id_number, :affiliated_committee_name, :first_candidate_id_number, :first_candidate_last_name, :first_candidate_first_name, :first_candidate_middle_name, :first_candidate_prefix, :first_candidate_suffix, :first_candidate_office, :first_candidate_state, :first_candidate_district, :first_candidate_contribution_date, :second_candidate_id_number, :second_candidate_last_name, :second_candidate_second_name, :second_candidate_middle_name, :second_candidate_prefix, :second_candidate_suffix, :second_candidate_office, :second_candidate_state, :second_candidate_district, :second_candidate_contribution_date, :third_candidate_id_number, :third_candidate_last_name, :third_candidate_third_name, :third_candidate_middle_name, :third_candidate_prefix, :third_candidate_suffix, :third_candidate_office, :third_candidate_state, :third_candidate_district, :third_candidate_contribution_date, :fourth_candidate_id_number, :fourth_candidate_last_name, :fourth_candidate_fourth_name, :fourth_candidate_middle_name, :fourth_candidate_prefix, :fourth_candidate_suffix, :fourth_candidate_office, :fourth_candidate_state, :fourth_candidate_district, :fourth_candidate_contribution_date, :fifth_candidate_id_number, :fifth_candidate_last_name, :fifth_candidate_fifth_name, :fifth_candidate_middle_name, :fifth_candidate_prefix, :fifth_candidate_suffix, :fifth_candidate_office, :fifth_candidate_state, :fifth_candidate_district, :fifth_candidate_contribution_date, :fifty_first_contributor_date, :original_registration_date, :requirements_met_date, :treasurer_last_name, :treasurer_first_name, :treasurer_middle_name, :treasurer_prefix, :treasurer_suffix, :date_signed],
21
21
  },
22
- "(^f2[a|n])" => {
22
+ "(^f2[^a|n])" => {
23
23
  '^3.0' => [:form_type, :candidate_id_number, :candidate_name, :candidate_street_1, :candidate_street_2, :candidate_city, :candidate_state, :candidate_zip, :candidate_party_code, :candidate_office, :candidate_state, :candidate_district, :election_year, :committee_id_number, :committee_name, :committee_street_1, :committee_street_2, :committee_city, :committee_state, :committee_zip, :authorized_committee_id_number, :authorized_committee_name, :authorized_committee_street_1, :authorized_committee_street_2, :authorized_committee_city, :authorized_committee_state, :authorized_committee_zip, :candidate_signature_name, :date_signed],
24
24
  '^8.0|7.0|6.4' => [:form_type, :candidate_id_number, :candidate_last_name, :candidate_first_name, :candidate_middle_name, :candidate_prefix, :candidate_suffix, :change_of_address, :candidate_street_1, :candidate_street_2, :candidate_city, :candidate_state, :candidate_zip, :candidate_party_code, :candidate_office, :candidate_state, :candidate_district, :election_year, :committee_id_number, :committee_name, :committee_street_1, :committee_street_2, :committee_city, :committee_state, :committee_zip, :authorized_committee_id_number, :authorized_committee_name, :authorized_committee_street_1, :authorized_committee_street_2, :authorized_committee_city, :authorized_committee_state, :authorized_committee_zip, :candidate_signature_last_name, :candidate_signature_first_name, :candidate_signature_middle_name, :candidate_signature_prefix, :candidate_signature_suffix, :date_signed],
25
25
  '^6.3|6.2|6.1' => [:form_type, :candidate_id_number, :candidate_last_name, :candidate_first_name, :candidate_middle_name, :candidate_prefix, :candidate_suffix, :change_of_address, :candidate_street_1, :candidate_street_2, :candidate_city, :candidate_state, :candidate_zip, :candidate_party_code, :candidate_office, :candidate_state, :candidate_district, :election_year, :committee_id_number, :committee_name, :committee_street_1, :committee_street_2, :committee_city, :committee_state, :committee_zip, :authorized_committee_id_number, :authorized_committee_name, :authorized_committee_street_1, :authorized_committee_street_2, :authorized_committee_city, :authorized_committee_state, :authorized_committee_zip, :primary_personal_funds_declared, :general_personal_funds_declared, :candidate_signature_last_name, :candidate_signature_first_name, :candidate_signature_middle_name, :candidate_signature_prefix, :candidate_signature_suffix, :date_signed],
@@ -31,13 +31,13 @@ module Fech
31
31
  '^5.0|5.1|5.2|5.3' => [:form_type, :filer_committee_id_number, :committee_name, :street_1, :street_2, :city, :state, :zip, nil, :date_signed, :report_type],
32
32
  '^3' => [:form_type, :filer_committee_id_number, :committee_name, :street_1, :street_2, :city, :state, :zip, nil, :date_signed],
33
33
  },
34
- "(^f3[a|n|t])" => {
34
+ "^f3[a|n|t]" => {
35
35
  '^3.0' => [:form_type, :filer_committee_id_number, :committee_name, :street_1, :street_2, :city, :state, :zip, :change_of_address, :election_state, :election_district, :report_code, :election_code, :election_date, nil, :primary_election, :general_election, :special_election, :runoff_election, :coverage_from_date, :coverage_through_date, :col_a_total_contributions_no_loans, :col_a_total_contributions_refunds, :col_a_net_contributions, :col_a_total_operating_expenditures, :col_a_total_offset_to_operating_expenditures, :col_a_net_operating_expenditures, :col_a_cash_on_hand_close_of_period, :col_a_debts_to, :col_a_debts_by, :col_a_individual_contributions_itemized, :col_a_individual_contributions_unitemized, :col_a_total_individual_contributions, :col_a_political_party_contributions, :col_a_pac_contributions, :col_a_candidate_contributions, :col_a_total_contributions, :col_a_transfers_from_authorized, :col_a_candidate_loans, :col_a_other_loans, :col_a_total_loans, :col_a_offset_to_operating_expenditures, :col_a_other_receipts, :col_a_total_receipts, :col_a_operating_expenditures, :col_a_transfers_to_authorized, :col_a_candidate_loan_repayments, :col_a_other_loan_repayments, :col_a_total_loan_repayments, :col_a_refunds_to_individuals, :col_a_refunds_to_party_committees, :col_a_refunds_to_other_committees, :col_a_total_refunds, :col_a_other_disbursements, :col_a_total_disbursements, :col_a_cash_beginning_reporting_period, :col_a_refunds_to_party_committees, :col_a_refunds_to_other_committees, :col_a_total_receipts_period, :col_a_cash_on_hand_close, :col_b_total_contributions_no_loans, :col_b_total_contributions_refunds, :col_b_net_contributions, :col_b_total_operating_expenditures, :col_b_total_offset_to_operating_expenditures, :col_b_net_operating_expenditures, :col_b_individual_contributions_itemized, :col_b_individual_contributions_unitemized, :col_b_total_individual_contributions, :col_b_political_party_contributions, :col_b_pac_contributions, :col_b_candidate_contributions, :col_b_total_contributions, :col_b_transfers_from_authorized, :col_b_candidate_loans, :col_b_other_loans, :col_b_total_loans, :col_b_offset_to_operating_expenditures, :col_b_other_receipts, :col_b_total_receipts, :col_b_operating_expenditures, :col_b_transfers_to_authorized, :col_b_candidate_loan_repayments, :col_b_other_loan_repayments, :col_b_total_loan_repayments, :col_b_refunds_to_individuals, :col_b_refunds_to_party_committees, :col_b_refunds_to_other_committees, :col_b_total_refunds, :col_b_other_disbursements, :col_b_total_disbursements, :treasurer_name, :date_signed],
36
36
  '^8.0|7.0|6.4' => [:form_type, :filer_committee_id_number, :committee_name, :change_of_address, :street_1, :street_2, :city, :state, :zip, :election_state, :election_district, :election_date, :election_code, nil, nil, :coverage_from_date, :coverage_through_date, :treasurer_last_name, :treasurer_first_name, :treasurer_middle_name, :treasurer_prefix, :treasurer_suffix, :date_signed, :col_a_total_contributions_no_loans, :col_a_total_contributions_refunds, :col_a_net_contributions, :col_a_total_operating_expenditures, :col_a_total_offset_to_operating_expenditures, :col_a_net_operating_expenditures, :col_a_cash_on_hand_close_of_period, :col_a_debts_to, :col_a_debts_by, :col_a_individual_contributions_itemized, :col_a_individual_contributions_unitemized, :col_a_total_individual_contributions, :col_a_political_party_contributions, :col_a_pac_contributions, :col_a_candidate_contributions, :col_a_total_contributions, :col_a_transfers_from_authorized, :col_a_candidate_loans, :col_a_other_loans, :col_a_total_loans, :col_a_offset_to_operating_expenditures, :col_a_other_receipts, :col_a_total_receipts, :col_a_operating_expenditures, :col_a_transfers_to_authorized, :col_a_candidate_loan_repayments, :col_a_other_loan_repayments, :col_a_total_loan_repayments, :col_a_refunds_to_individuals, :col_a_refunds_to_party_committees, :col_a_refunds_to_other_committees, :col_a_total_refunds, :col_a_other_disbursements, :col_a_total_disbursements, :col_a_cash_beginning_reporting_period, :col_a_refunds_to_party_committees, :col_a_refunds_to_other_committees, :col_a_total_receipts_period, :col_a_cash_on_hand_close, :col_b_total_contributions_no_loans, :col_b_total_contributions_refunds, :col_b_net_contributions, :col_b_total_operating_expenditures, :col_b_total_offset_to_operating_expenditures, :col_b_net_operating_expenditures, :col_b_individual_contributions_itemized, :col_b_individual_contributions_unitemized, :col_b_total_individual_contributions, :col_b_political_party_contributions, :col_b_pac_contributions, :col_b_candidate_contributions, :col_b_total_contributions, :col_b_transfers_from_authorized, :col_b_candidate_loans, :col_b_other_loans, :col_b_total_loans, :col_b_offset_to_operating_expenditures, :col_b_other_receipts, :col_b_total_receipts, :col_b_operating_expenditures, :col_b_transfers_to_authorized, :col_b_candidate_loan_repayments, :col_b_other_loan_repayments, :col_b_total_loan_repayments, :col_b_refunds_to_individuals, :col_b_refunds_to_party_committees, :col_b_refunds_to_other_committees, :col_b_total_refunds, :col_b_other_disbursements, :col_b_total_disbursements],
37
37
  '^6.3|6.2|6.1' => [:form_type, :filer_committee_id_number, :committee_name, :change_of_address, :street_1, :street_2, :city, :state, :zip, :election_state, :election_district, :election_date, :election_code, nil, nil, :coverage_from_date, :coverage_through_date, :treasurer_last_name, :treasurer_first_name, :treasurer_middle_name, :treasurer_prefix, :treasurer_suffix, :date_signed, :candidate_id_number, :candidate_last_name, :candidate_first_name, :candidate_middle_name, :candidate_prefix, :candidate_suffix, :report_type, :col_a_total_contributions_no_loans, :col_a_total_contributions_refunds, :col_a_net_contributions, :col_a_total_operating_expenditures, :col_a_total_offset_to_operating_expenditures, :col_a_net_operating_expenditures, :col_a_cash_on_hand_close_of_period, :col_a_debts_to, :col_a_debts_by, :col_a_individual_contributions_itemized, :col_a_individual_contributions_unitemized, :col_a_total_individual_contributions, :col_a_political_party_contributions, :col_a_pac_contributions, :col_a_candidate_contributions, :col_a_total_contributions, :col_a_transfers_from_authorized, :col_a_candidate_loans, :col_a_other_loans, :col_a_total_loans, :col_a_offset_to_operating_expenditures, :col_a_other_receipts, :col_a_total_receipts, :col_a_operating_expenditures, :col_a_transfers_to_authorized, :col_a_candidate_loan_repayments, nil, :col_a_total_loan_repayments, :col_a_refunds_to_individuals, :col_a_refunds_to_party_committees, :col_a_refunds_to_other_committees, :col_a_total_refunds, :col_a_other_disbursements, :col_a_total_disbursements, :col_a_cash_beginning_reporting_period, :col_a_refunds_to_party_committees, :col_a_refunds_to_other_committees, :col_a_total_receipts_period, :col_a_cash_on_hand_close, :col_b_total_contributions_no_loans, :col_b_total_contributions_refunds, :col_b_net_contributions, :col_b_total_operating_expenditures, :col_b_total_offset_to_operating_expenditures, :col_b_net_operating_expenditures, :col_b_individual_contributions_itemized, :col_b_individual_contributions_unitemized, :col_b_total_individual_contributions, :col_b_political_party_contributions, :col_b_pac_contributions, :col_b_candidate_contributions, :col_b_total_contributions, :col_b_transfers_from_authorized, :col_b_candidate_loans, :col_b_other_loans, :col_b_total_loans, :col_b_offset_to_operating_expenditures, :col_b_other_receipts, :col_b_total_receipts, :col_b_operating_expenditures, :col_b_transfers_to_authorized, :col_b_candidate_loan_repayments, nil, :col_b_total_loan_repayments, :col_b_refunds_to_individuals, nil, nil, :col_b_total_refunds, :col_b_other_disbursements, :col_b_total_disbursements, :col_b_gross_receipts_authorized_primary, :col_b_aggregate_personal_funds_primary, :col_b_gross_receipts_minus_personal_funds_primary, :col_b_gross_receipts_authorized_general, :col_b_aggregate_personal_funds_general, :col_b_gross_receipts_minus_personal_funds_general],
38
38
  '^5.3|5.2|5.1|5.0' => [:form_type, :filer_committee_id_number, :committee_name, :street_1, :street_2, :city, :state, :zip, :change_of_address, :election_state, :election_district, :report_code, :election_code, :election_date, nil, :primary_election, :general_election, :special_election, :runoff_election, :coverage_from_date, :coverage_through_date, :col_a_total_contributions_no_loans, :col_a_total_contributions_refunds, :col_a_net_contributions, :col_a_total_operating_expenditures, :col_a_total_offset_to_operating_expenditures, :col_a_net_operating_expenditures, :col_a_cash_on_hand_close_of_period, :col_a_debts_to, :col_a_debts_by, :col_a_individual_contributions_itemized, :col_a_individual_contributions_unitemized, :col_a_total_individual_contributions, :col_a_political_party_contributions, :col_a_pac_contributions, :col_a_candidate_contributions, :col_a_total_contributions, :col_a_transfers_from_authorized, :col_a_candidate_loans, :col_a_other_loans, :col_a_total_loans, :col_a_offset_to_operating_expenditures, :col_a_other_receipts, :col_a_total_receipts, :col_a_operating_expenditures, :col_a_transfers_to_authorized, :col_a_candidate_loan_repayments, nil, :col_a_total_loan_repayments, :col_a_refunds_to_individuals, :col_a_refunds_to_party_committees, :col_a_refunds_to_other_committees, :col_a_total_refunds, :col_a_other_disbursements, :col_a_total_disbursements, :col_a_cash_beginning_reporting_period, :col_a_refunds_to_party_committees, :col_a_refunds_to_other_committees, :col_a_total_receipts_period, :col_a_cash_on_hand_close, :col_b_total_contributions_no_loans, :col_b_total_contributions_refunds, :col_b_net_contributions, :col_b_total_operating_expenditures, :col_b_total_offset_to_operating_expenditures, :col_b_net_operating_expenditures, :col_b_individual_contributions_itemized, :col_b_individual_contributions_unitemized, :col_b_total_individual_contributions, :col_b_political_party_contributions, :col_b_pac_contributions, :col_b_candidate_contributions, :col_b_total_contributions, :col_b_transfers_from_authorized, :col_b_candidate_loans, :col_b_other_loans, :col_b_total_loans, :col_b_offset_to_operating_expenditures, :col_b_other_receipts, :col_b_total_receipts, :col_b_operating_expenditures, :col_b_transfers_to_authorized, :col_b_candidate_loan_repayments, nil, :col_b_total_loan_repayments, :col_b_refunds_to_individuals, nil, nil, :col_b_total_refunds, :col_b_other_disbursements, :col_b_total_disbursements, :treasurer_name, :date_signed, :candidate_id_number, :candidate_name, :report_type, :col_b_gross_receipts_authorized_primary, :col_b_aggregate_personal_funds_primary, :col_b_gross_receipts_minus_personal_funds_primary, :col_b_gross_receipts_authorized_general, :col_b_aggregate_personal_funds_general, :col_b_gross_receipts_minus_personal_funds_general],
39
39
  },
40
- "(^f3l[a|n])" => {
40
+ "^f3l[a|n]" => {
41
41
  '^8.0|7.0|6.4' => [:form_type, :filer_committee_id_number, :committee_name, :change_of_address, :street_1, :street_2, :city, :state, :zip, :election_state, :election_district, :report_code, :election_date, nil, :semi_annual_period, :coverage_from_date, :coverage_through_date, :semi_annual_period_jan_june, :semi_annual_period_jul_dec, :quarterly_monthly_bundled_contributions, :semi_annual_bundled_contributions, :treasurer_last_name, :treasurer_first_name, :treasurer_middle_name, :treasurer_prefix, :treasurer_suffix, :date_signed],
42
42
  },
43
43
  "(^f3p$)|(^f3p[^s|3])" => {
@@ -65,6 +65,10 @@ module Fech
65
65
  '^8.0|7.0|6.4|6.3|6.2|6.1' => [:form_type, :filer_committee_id_number, :committee_name, :change_of_address, :street_1, :street_2, :city, :state, :zip, :report_code, :election_code, :date_of_election, :state_of_election, :coverage_from_date, :coverage_through_date, :qualified_committee, :treasurer_last_name, :treasurer_first_name, :treasurer_middle_name, :treasurer_prefix, :treasurer_suffix, :date_signed, :col_a_cash_on_hand_beginning_period, :col_a_total_receipts, :col_a_subtotal, :col_a_total_disbursements, :col_a_cash_on_hand_close_of_period, :col_a_debts_to, :col_a_debts_by, :col_a_individuals_itemized, :col_a_individuals_unitemized, :col_a_individual_contribution_total, :col_a_political_party_committees, :col_a_other_political_committees_pacs, :col_a_total_contributions, :col_a_transfers_from_aff_other_party_cmttees, :col_a_total_loans, :col_a_total_loan_repayments_received, :col_a_offsets_to_expenditures, :col_a_total_contributions_refunds, :col_a_other_federal_receipts, :col_a_transfers_from_nonfederal_h3, :col_a_levin_funds, :col_a_total_nonfederal_transfers, :col_a_total_receipts, :col_a_total_federal_receipts, :col_a_shared_operating_expenditures_federal, :col_a_shared_operating_expenditures_nonfederal, :col_a_other_federal_operating_expenditures, :col_a_total_operating_expenditures, :col_a_transfers_to_affiliated, :col_a_contributions_to_candidates, :col_a_independent_expenditures, :col_a_coordinated_expenditures_by_party_committees, :col_a_total_loan_repayments_made, :col_a_loans_made, :col_a_refunds_to_individuals, :col_a_refunds_to_party_committees, :col_a_refunds_to_other_committees, :col_a_total_refunds, :col_a_other_disbursements, :col_a_federal_election_activity_federal_share, :col_a_federal_election_activity_levin_share, :col_a_federal_election_activity_all_federal, :col_a_federal_election_activity_total, :col_a_total_disbursements, :col_a_total_federal_disbursements, :col_a_total_contributions, :col_a_total_contributions_refunds, :col_a_net_contributions, :col_a_total_federal_operating_expenditures, :col_a_total_offsets_to_expenditures, :col_a_net_operating_expenditures, :col_b_cash_on_hand_jan_1, :col_b_year, :col_b_total_receipts, :col_b_subtotal, :col_b_total_disbursements, :col_b_cash_on_hand_close_of_period, :col_b_individuals_itemized, :col_b_individuals_unitemized, :col_b_individual_contribution_total, :col_b_political_party_committees, :col_b_other_political_committees_pacs, :col_b_total_contributions, :col_b_transfers_from_aff_other_party_cmttees, :col_b_total_loans, :col_b_total_loan_repayments_received, :col_b_offsets_to_expenditures, :col_b_total_contributions_refunds, :col_b_other_federal_receipts, :col_b_transfers_from_nonfederal_h3, :col_b_levin_funds, :col_b_total_nonfederal_transfers, :col_b_total_receipts, :col_b_total_federal_receipts, :col_b_shared_operating_expenditures_federal, :col_b_shared_operating_expenditures_nonfederal, :col_b_other_federal_operating_expenditures, :col_b_total_operating_expenditures, :col_b_transfers_to_affiliated, :col_b_contributions_to_candidates, :col_b_independent_expenditures, :col_b_coordinated_expenditures_by_party_committees, :col_b_total_loan_repayments_made, :col_b_loans_made, :col_b_refunds_to_individuals, :col_b_refunds_to_party_committees, :col_b_refunds_to_other_committees, :col_b_total_refunds, :col_b_other_disbursements, :col_b_federal_election_activity_federal_share, :col_b_federal_election_activity_levin_share, :col_b_federal_election_activity_all_federal, :col_b_federal_election_activity_total, :col_b_total_disbursements, :col_b_total_federal_disbursements, :col_b_total_contributions, :col_b_total_contributions_refunds, :col_b_net_contributions, :col_b_total_federal_operating_expenditures, :col_b_total_offsets_to_expenditures, :col_b_net_operating_expenditures],
66
66
  '^3' => [:form_type, :filer_committee_id_number, :committee_name, :street_1, :street_2, :col_b_cash_on_hand_jan_1, :state, :zip, :change_of_address, :qualified_committee, :report_code, :election_code, :date_of_election, :state_of_election, :coverage_from_date, :coverage_through_date, :col_a_cash_on_hand_beginning_period, :col_a_total_receipts, :col_a_subtotal, :col_a_total_disbursements, :col_a_cash_on_hand_close_of_period, :col_a_debts_to, :col_a_debts_by, :col_a_individuals_itemized, :col_a_individuals_unitemized, :col_a_individual_contribution_total, :col_a_political_party_committees, :col_a_other_political_committees_pacs, :col_a_total_contributions, :col_a_transfers_from_aff_other_party_cmttees, :col_a_total_loans, :col_a_total_loan_repayments_received, :col_a_offsets_to_expenditures, :col_a_total_contributions_refunds, :col_a_other_federal_receipts, :col_a_transfers_from_nonfederal_h3, :col_a_total_receipts, :col_a_total_federal_receipts, :col_a_shared_operating_expenditures_federal, :col_a_shared_operating_expenditures_nonfederal, :col_a_other_federal_operating_expenditures, :col_a_total_operating_expenditures, :col_a_transfers_to_affiliated, :col_a_contributions_to_candidates, :col_a_independent_expenditures, :col_a_coordinated_expenditures_by_party_committees, :col_a_total_loan_repayments_made, :col_a_loans_made, :col_a_refunds_to_individuals, :col_a_refunds_to_party_committees, :col_a_refunds_to_other_committees, :col_a_total_refunds, :col_a_other_disbursements, :col_a_total_disbursements, :col_a_total_federal_disbursements, :col_a_total_contributions, :col_a_total_contributions_refunds, :col_a_net_contributions, :col_a_total_federal_operating_expenditures, :col_a_total_offsets_to_expenditures, :col_a_net_operating_expenditures, nil, :col_b_year, :col_b_total_receipts, :col_b_subtotal, :col_b_total_disbursements, :col_b_cash_on_hand_close_of_period, :col_b_individuals_itemized, :col_b_individuals_unitemized, :col_b_individual_contribution_total, :col_b_political_party_committees, :col_b_other_political_committees_pacs, :col_b_total_contributions, :col_b_transfers_from_aff_other_party_cmttees, :col_b_total_loans, :col_b_total_loan_repayments_received, :col_b_offsets_to_expenditures, :col_b_total_contributions_refunds, :col_b_other_federal_receipts, :col_b_transfers_from_nonfederal_h3, :col_b_total_receipts, :col_b_total_federal_receipts, :col_b_shared_operating_expenditures_federal, :col_b_shared_operating_expenditures_nonfederal, :col_b_other_federal_operating_expenditures, :col_b_total_operating_expenditures, :col_b_transfers_to_affiliated, :col_b_contributions_to_candidates, :col_b_independent_expenditures, :col_b_coordinated_expenditures_by_party_committees, :col_b_total_loan_repayments_made, :col_b_loans_made, :col_b_refunds_to_individuals, :col_b_refunds_to_party_committees, :col_b_refunds_to_other_committees, :col_b_total_refunds, :col_b_other_disbursements, :col_b_total_disbursements, :col_b_total_federal_disbursements, :col_b_total_contributions, :col_b_total_contributions_refunds, :col_b_net_contributions, :col_b_total_federal_operating_expenditures, :col_b_total_offsets_to_expenditures, :col_b_net_operating_expenditures, :treasurer_name, :date_signed],
67
67
  },
68
+ "^f4[na]" => {
69
+ '^5.3|5.2|5.1|5.0|3' => [:form_type, :filer_committee_id_number, :committee_name, :street_1, :street_2, :city, :state, :zip, :committee_type, :committee_type_description, :report_code, :coverage_from_date, :coverage_through_date, :col_a_cash_on_hand_beginning_reporting_period, :col_a_total_receipts, :col_a_subtotal, :col_a_total_disbursements, :col_a_cash_on_hand_close_of_period, :col_a_debts_to, :col_a_debts_by, :col_a_convention_expenditures, :col_a_convention_refunds, :col_a_expenditures_subject_to_limits, :col_a_prior_expenditures_subject_to_limits, :col_a_total_expenditures_subject_to_limits, :col_a_federal_funds, :col_a_contributions_itemized, :col_a_contributions_unitemized, :col_a_contributions_subtotal, :col_b_transfers_from_affiliated, :col_a_loans_received, :col_a_loan_repayments_received, :col_a_loan_receipts_subtotal, :col_a_convention_refunds_itemized, :col_a_convention_refunds_unitemized, :col_a_convention_refunds_subtotal, :col_a_other_refunds_itemized, :col_a_other_refunds_unitemized, :col_a_other_refunds_subtotal, :col_a_other_income_itemized, :col_a_other_income_unitemized, :col_a_other_income_subtotal, :col_a_total_receipts, :col_a_convention_expenses_itemized, :col_a_convention_expenses_unitemized, :col_a_convention_expenses_subtotal, :col_a_transfers_to_affiliated, :col_a_loans_made, :col_a_loan_repayments_made, :col_a_loan_disbursements_subtotal, :col_a_other_disbursements_itemized, :col_a_other_disbursements_unitemized, :col_a_other_disbursements_subtotal, :col_a_total_disbursements, :col_b_cash_on_hand_beginning_year, :col_b_beginning_year, :col_b_total_receipts, :col_b_subtotal, :col_b_total_disbursements, :col_b_cash_on_hand_close_of_period, :col_b_convention_expenditures, :col_b_convention_refunds, :col_b_expenditures_subject_to_limits, :col_b_prior_expendiutres_subject_to_limits, :col_b_total_expenditures_subject_to_limits, :col_b_federal_funds, :col_b_contributions_subtotal, :col_b_transfers_from_affiliated, :col_b_loan_receipts_subtotal, :col_b_convention_refunds_subtotal, :col_b_other_refunds_subtotal, :col_b_other_income_subtotal, :col_b_total_receipts, :col_b_convention_expenses_subtotal, :col_b_transfers_to_affiliated, :col_b_loan_disbursements_subtotal, :col_b_other_disbursements_subtotal, :col_b_total_disbursements, :treasurer_name, :date_signed],
70
+ '^8.0|7.0|6.4|6.3|6.2|6.1' => [:form_type, :filer_committee_id_number, :committee_name, :street_1, :street_2, :city, :state, :zip, :committee_type, :committee_type_description, :report_code, :coverage_from_date, :coverage_through_date, :treasurer_last_name, :treasurer_first_name, :treasurer_middle_name, :treasurer_prefix, :treasurer_suffix, :date_signed, :col_a_cash_on_hand_beginning_reporting_period, :col_a_total_receipts, :col_a_subtotal, :col_a_total_disbursements, :col_a_cash_on_hand_close_of_period, :col_a_debts_to, :col_a_debts_by, :col_a_convention_expenditures, :col_a_convention_refunds, :col_a_expenditures_subject_to_limits, :col_a_prior_expenditures_subject_to_limits, :col_a_federal_funds, :col_a_contributions_itemized, :col_a_contributions_unitemized, :col_a_contributions_subtotal, :col_b_transfers_from_affiliated, :col_a_loans_received, :col_a_loan_repayments_received, :col_a_loan_receipts_subtotal, :col_a_convention_refunds_itemized, :col_a_convention_refunds_unitemized, :col_a_convention_refunds_subtotal, :col_a_other_refunds_itemized, :col_a_other_refunds_unitemized, :col_a_other_refunds_subtotal, :col_a_other_income_itemized, :col_a_other_income_unitemized, :col_a_other_income_subtotal, :col_a_total_receipts, :col_a_convention_expenses_itemized, :col_a_convention_expenses_unitemized, :col_a_convention_expenses_subtotal, :col_a_transfers_to_affiliated, :col_a_loans_made, :col_a_loan_repayments_made, :col_a_loan_disbursements_subtotal, :col_a_other_disbursements_itemized, :col_a_other_disbursements_unitemized, :col_a_other_disbursements_subtotal, :col_a_total_disbursements, :col_b_cash_on_hand_beginning_year, :col_b_beginning_year, :col_b_total_receipts, :col_b_subtotal, :col_b_total_disbursements, :col_b_cash_on_hand_close_of_period, :col_b_convention_expenditures, :col_b_convention_refunds, :col_b_expenditures_subject_to_limits, :col_b_prior_expendiutres_subject_to_limits, :col_b_total_expenditures_subject_to_limits, :col_b_federal_funds, :col_b_contributions_subtotal, :col_b_transfers_from_affiliated, :col_b_loan_receipts_subtotal, :col_b_convention_refunds_subtotal, :col_b_other_refunds_subtotal, :col_b_other_income_subtotal, :col_b_total_receipts, :col_b_convention_expenses_subtotal, :col_b_transfers_to_affiliated, :col_b_loan_disbursements_subtotal, :col_b_other_disbursements_subtotal, :col_b_total_disbursements],
71
+ },
68
72
  "^f5[na]" => {
69
73
  '^8.0|7.0|6.4|6.3' => [:form_type, :filer_committee_id_number, :entity_type, :organization_name, :individual_last_name, :individual_first_name, :individual_middle_name, :individual_prefix, :individual_suffix, :change_of_address, :street_1, :street_2, :city, :state, :zip, :qualified_nonprofit, :individual_employer, :individual_occupation, :report_code, :report_type, :coverage_from_date, :coverage_through_date, :total_contribution, :total_independent_expenditure, :person_completing_last_name, :person_completing_first_name, :person_completing_middle_name, :person_completing_prefix, :person_completing_suffix, :date_signed],
70
74
  '^5.3' => [:form_type, :filer_committee_id_number, :committee_name, :street_1, :street_2, :city, :state, :zip, :change_of_address, :qualified_nonprofit, :individual_employer, nil, :report_code, nil, nil, nil, :coverage_from_date, :coverage_through_date, :total_contribution, :total_independent_expenditure, :person_completing_name, :date_signed, nil, nil, nil, :report_type],
data/lib/fech/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Fech
2
- VERSION = "0.8.2"
2
+ VERSION = "0.9.0"
3
3
  end
data/sources/F4.csv ADDED
@@ -0,0 +1,86 @@
1
+ canonical,^8.0|7.0|6.4|6.3|6.2|6.1,,^5.3|5.2|5.1|5.0|3,
2
+ form_type,1,FORM TYPE,1,FORM TYPE
3
+ filer_committee_id_number,2,FILER COMMITTEE ID NUMBER,2,FILER FEC CMTE ID
4
+ committee_name,3,COMMITTEE NAME,3,COMMITTEE NAME
5
+ street_1,4,STREET 1,4,STREET 1
6
+ street_2,5,STREET 2,5,STREET 2
7
+ city,6,CITY,6,CITY
8
+ state,7,STATE,7,STATE
9
+ zip,8,ZIP,8,ZIP
10
+ committee_type,9,COMMITTEE/ORG TYPE,9,COMMITTEE/ORG TYPE
11
+ committee_type_description,10,COMMITTEE/ORG TYPE - OTHER DESCRIPTION,10,DESC
12
+ report_code,11,REPORT CODE,11,RPTCODE
13
+ coverage_from_date,12,COVERAGE FROM DATE,12,DATE (Coverage From)
14
+ coverage_through_date,13,COVERAGE THROUGH DATE,13,DATE (Coverage To)
15
+ treasurer_last_name,14,TREASURER LAST NAME,,
16
+ treasurer_first_name,15,TREASURER FIRST NAME,,
17
+ treasurer_middle_name,16,TREASURER MIDDLE NAME,,
18
+ treasurer_prefix,17,TREASURER PREFIX,,
19
+ treasurer_suffix,18,TREASURER SUFFIX,,
20
+ date_signed,19,DATE SIGNED,80,DATE (Signed)
21
+ col_a_cash_on_hand_beginning_reporting_period,20,6.(b) cash on hand beg. report per.,14,6.(b) cash on hand beg. report per.
22
+ col_a_total_receipts,21,6.(c) Total receipts,15,6.(c) Total receipts
23
+ col_a_subtotal,22,6.(d) Subtotal,16,6.(d) Subtotal
24
+ col_a_total_disbursements,23,7. Total disbursements,17,7. Total disbursements
25
+ col_a_cash_on_hand_close_of_period,24,8. COH CLOSE (COL A),18,8. COH CLOSE
26
+ col_a_debts_to,25,9. Debts to,19,9. Debts to
27
+ col_a_debts_by,26,10. Debts by,20,10. Debts by
28
+ col_a_convention_expenditures,27,11. Convention expenditures,21,11. Convention expenditures
29
+ col_a_convention_refunds,28,12. refunds/rebates/returns relating to conv exp.,22,12. refunds/rebates/returns relating to conv exp.
30
+ col_a_expenditures_subject_to_limits,29,12(a) Expenditures subject to limits,23,12(a) Expenditures subject to limits
31
+ col_a_prior_expenditures_subject_to_limits,30,12(b) expend. from prior years subject to limits,24,12(b) expend. from prior years subject to limits
32
+ col_a_total_expenditures_subject_to_limits,,,25,12(c) total expenditures subject to limits
33
+ col_a_federal_funds,31,13. Federal Funds SCH A,26,13. Federal Funds SCH A
34
+ col_a_contributions_itemized,32,14(a) Itemized,27,14(a) Itemized
35
+ col_a_contributions_unitemized,33,14(b) unitemized,28,14(b) unitemized
36
+ col_a_contributions_subtotal,34,14(c) subtotal,29,14(c) subtotal
37
+ col_b_transfers_from_affiliated,35,15. Transfers from affiliated cmtes.,30,15. Transfers from affiliated cmtes.
38
+ col_a_loans_received,36,16(a) loans received,31,16(a) loans received
39
+ col_a_loan_repayments_received,37,16(b) loan repayments received,32,16(b) loan repayments received
40
+ col_a_loan_receipts_subtotal,38,16(c) subtotal loans/repayments,33,16(c) subtotal loans/repayments
41
+ col_a_convention_refunds_itemized,39,17(a) Itemized,34,17(a) Itemized
42
+ col_a_convention_refunds_unitemized,40,17(b) unitemized,35,17(b) unitemized
43
+ col_a_convention_refunds_subtotal,41,17(c) subtotal,36,17(c) subtotal
44
+ col_a_other_refunds_itemized,42,18(a) Itemized,37,18(a) Itemized
45
+ col_a_other_refunds_unitemized,43,18(b) unitemized,38,18(b) unitemized
46
+ col_a_other_refunds_subtotal,44,18(c) subtotal,39,18(c) subtotal
47
+ col_a_other_income_itemized,45,19(a) Itemized,40,19(a) Itemized
48
+ col_a_other_income_unitemized,46,19(b) unitemized,41,19(b) unitemized
49
+ col_a_other_income_subtotal,47,19(c) subtotal,42,19(c) subtotal
50
+ col_a_total_receipts,48,20. total receipts,43,20. total receipts
51
+ col_a_convention_expenses_itemized,49,21(a) Itemized,44,21(a) Itemized
52
+ col_a_convention_expenses_unitemized,50,21(b) unitemized,45,21(b) unitemized
53
+ col_a_convention_expenses_subtotal,51,21(c) subtotal,46,21(c) subtotal
54
+ col_a_transfers_to_affiliated,52,22. Transfers to Affiliated Cmtes,47,22. Transfers to Affiliated Cmtes
55
+ col_a_loans_made,53,23(a) loans made,48,23(a) loans made
56
+ col_a_loan_repayments_made,54,23(b) loan repayments made,49,23(b) loan repayments made
57
+ col_a_loan_disbursements_subtotal,55,23(c) subtotal,50,23(c) subtotal
58
+ col_a_other_disbursements_itemized,56,24(a) Itemized,51,24(a) Itemized
59
+ col_a_other_disbursements_unitemized,57,24(b) unitemized,52,24(b) unitemized
60
+ col_a_other_disbursements_subtotal,58,24(c) subtotal,53,24(c) subtotal
61
+ col_a_total_disbursements,59,25. Total disbursements,54,25. Total disbursements
62
+ col_b_cash_on_hand_beginning_year,60,6.(a) Cash on Hand,55,6.(a) Cash on Hand
63
+ col_b_beginning_year,61,6.(a) 19 -- (YEAR),56,6.(a) 19 -- (YEAR)
64
+ col_b_total_receipts,62,6.(c) Total receipts,57,6.(c) Total receipts
65
+ col_b_subtotal,63,6.(d) Subtotal,58,6.(d) Subtotal
66
+ col_b_total_disbursements,64,7. Total disbursements,59,7. Total disbursements
67
+ col_b_cash_on_hand_close_of_period,65,8. COH CLOSE (COL B),60,8. COH CLOSE
68
+ col_b_convention_expenditures,66,11. Convention expenditures,61,11. Convention expenditures
69
+ col_b_convention_refunds,67,12. refunds/rebates/returns relating to conv exp.,62,12. refunds/rebates/returns relating to conv exp.
70
+ col_b_expenditures_subject_to_limits,68,12(a) Expenditures subject to limits,63,12(a) Expenditures subject to limits
71
+ col_b_prior_expendiutres_subject_to_limits,69,12(b) expend. from prior years subject to limits,64,12(b) expend. from prior years subject to limits
72
+ col_b_total_expenditures_subject_to_limits,70,12(c) total expenditures subject to limits,65,12(c) total expenditures subject to limits
73
+ col_b_federal_funds,71,13. Federal Funds,66,13. Federal Funds
74
+ col_b_contributions_subtotal,72,14(c) subtotal,67,14(c) subtotal
75
+ col_b_transfers_from_affiliated,73,15. Transfers from affiliated cmtes.,68,15. Transfers from affiliated cmtes.
76
+ col_b_loan_receipts_subtotal,74,16(c) subtotal loans/repayments,69,16(c) subtotal loans/repayments
77
+ col_b_convention_refunds_subtotal,75,17(c) subtotal,70,17(c) subtotal
78
+ col_b_other_refunds_subtotal,76,18(c) subtotal,71,18(c) subtotal
79
+ col_b_other_income_subtotal,77,19(c) subtotal,72,19(c) subtotal
80
+ col_b_total_receipts,78,20. total receipts,73,20. total receipts
81
+ col_b_convention_expenses_subtotal,79,21(c) subtotal,74,21(c) subtotal
82
+ col_b_transfers_to_affiliated,80,22. Transfers to Affiliated Cmtes,75,22. Transfers to Affiliated Cmtes
83
+ col_b_loan_disbursements_subtotal,81,23(c) subtotal,76,23(c) subtotal
84
+ col_b_other_disbursements_subtotal,82,24(c) subtotal,77,24(c) subtotal
85
+ col_b_total_disbursements,83,25. Total disbursements,78,25. Total disbursements
86
+ treasurer_name,,,79,NAME/TREASURER (as signed)
metadata CHANGED
@@ -5,9 +5,9 @@ version: !ruby/object:Gem::Version
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 8
9
- - 2
10
- version: 0.8.2
8
+ - 9
9
+ - 0
10
+ version: 0.9.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Michael Strickland
@@ -17,7 +17,7 @@ autorequire:
17
17
  bindir: bin
18
18
  cert_chain: []
19
19
 
20
- date: 2012-02-19 00:00:00 -05:00
20
+ date: 2012-02-21 00:00:00 -05:00
21
21
  default_executable:
22
22
  dependencies:
23
23
  - !ruby/object:Gem::Dependency
@@ -188,6 +188,7 @@ files:
188
188
  - sources/F3PS.csv
189
189
  - sources/F3S.csv
190
190
  - sources/F3X.csv
191
+ - sources/F4.csv
191
192
  - sources/F5.csv
192
193
  - sources/F56.csv
193
194
  - sources/F57.csv