Skip to content

Commit

Permalink
WIP Always include BMC expenditures
Browse files Browse the repository at this point in the history
I'm not sure about this method. There are a lot of BMC (ballot measure
committees) that don't support ballot measures. (?) Curious what the
diff will look like on this one.

When calculating referendum supporters (using the Measure_Expenditures
view), we included:

1. E-Expenditures from committees who reported a "Bal_Name" that was on
the "name_to_number" sheet.
2. 496 independent expenditures as determined by the "Bal_Name" matching
the "name_to_number" sheet.
3. E-Expenditures from committees using "name_to_number" to match when
"Bal_Name" is null.

...but we seemingly do not include expenditures from ballot measure
committees. We link it up in the spreadsheet, so I think we can just
assume that any expenditures from BMC's are for the purpose of their
associated ballot measure.
  • Loading branch information
tdooner committed Apr 9, 2020
1 parent 1ec6afe commit a8dc333
Show file tree
Hide file tree
Showing 9 changed files with 226 additions and 16 deletions.
7 changes: 3 additions & 4 deletions bin/export-test-case
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ set -euo pipefail
# make clean download import

# 2. Fill this section out:
test_case_dir=spec/fixtures/referendum_supporters_without_expenditures_are_included
test_case_dir=spec/fixtures/referendum_expenditures_from_official_bmc_are_included/

# 3. Set up your test file such that any objects from the
# spreadsheets (candidate, committee, name_to_number,
Expand Down Expand Up @@ -104,9 +104,8 @@ init_test_case() {
# Change this as necessary for the script:
set -x
init_test_case $test_case_dir
dump_summary_data '1410941' $test_case_dir
dump_contributions_for_filer_id '1410941' $test_case_dir
dump_committe_expenditures '1410941' $test_case_dir
dump_summary_data '1423153' $test_case_dir
dump_committe_expenditures '1423153' $test_case_dir

# dump_contributions_for_filer_id "1331137" $test_case_dir # Families & Educators
# dump_contributions_for_filer_id "1364564" $test_case_dir # Committee to Protect Oakland Renters - Yes on Measure JJ
27 changes: 18 additions & 9 deletions bin/make_view
Original file line number Diff line number Diff line change
Expand Up @@ -11,21 +11,28 @@ psql ${DATABASE_NAME:-"disclosure-backend"} << SQL
*/
DROP VIEW IF EXISTS "Measure_Expenditures";
CREATE VIEW "Measure_Expenditures" AS
-- Map names to numbers as ballot numbers are often missing
-- Get E-Expenditures from committees that report using a non-standard name
-- for the ballot measure.
SELECT
cast ("Filer_ID" as character varying),
"Filer_NamL",
"election_name",
cast ("E-Expenditure"."Filer_ID" as character varying),
"E-Expenditure"."Filer_NamL",
COALESCE(committees."Ballot_Measure_Election", name_to_number."election_name") as "election_name",
"Bal_Name",
"Measure_Number",
COALESCE("Bal_Num", name_to_number."Measure_Number") as "Measure_Number",
"Sup_Opp_Cd",
"Amount",
"Expn_Code",
"Payee_NamL" as "Recipient_Or_Description",
'E name' as "Form"
FROM
"E-Expenditure", name_to_number
WHERE LOWER("Bal_Name") = LOWER("Measure_Name")
"E-Expenditure"
LEFT OUTER JOIN name_to_number
ON LOWER("Bal_Name") = LOWER("Measure_Name")
LEFT OUTER JOIN committees
ON "E-Expenditure"."Filer_ID"::varchar = committees."Filer_ID"::varchar
WHERE
name_to_number."election_name" IS NOT NULL
OR "E-Expenditure"."Committee_Type" = 'BMC'
UNION ALL
-- Get IE
Expand All @@ -46,7 +53,8 @@ CREATE VIEW "Measure_Expenditures" AS
AND "Sup_Opp_Cd" IS NOT NULL
UNION ALL
-- Get support/oppose information from committee
-- Get support/oppose information from committee & name_to_number when
-- "Bal_Name" is NULL.
SELECT
expend."Filer_ID"::varchar,
expend."Filer_NamL",
Expand All @@ -64,7 +72,8 @@ CREATE VIEW "Measure_Expenditures" AS
ON expend."Filer_ID"::varchar = committee."Filer_ID"::varchar
AND ("Start_Date" IS NULL OR "Expn_Date" >= "Start_Date")
AND ("End_Date" IS NULL OR "Expn_Date" <= "End_Date")
JOIN name_to_number ON "Ballot_Measure" = "Measure_Number"
JOIN name_to_number
ON "Ballot_Measure" = "Measure_Number"
AND "Ballot_Measure_Election" = "election_name"
WHERE "Bal_Name" IS NULL
AND "Ballot_Measure" IS NOT NULL
Expand Down
2 changes: 1 addition & 1 deletion calculators/referendum_supporters_calculator.rb
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ def augment_lists_with_committees_that_raised_money(supporting_by_measure_name,
def ballot_measure_from_num(election_name, bal_num)
@ballot_measures.detect do |measure|
measure['election_name'] == election_name &&
measure['Measure_number'] == bal_num
measure['Measure_number'] == bal_num
end
end

Expand Down
2 changes: 1 addition & 1 deletion process.rb
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,7 @@ def slugify(word)
if election.nil?
$stderr.puts "MISSING ELECTION:"
$stderr.puts " Election Name: #{referendum.election_name}"
$stderr.puts ' Add it to ELECTIONS global in process.rb'
$stderr.puts ' You might need to run `make download-cached import-spreadsheets`'
next
end

Expand Down
40 changes: 39 additions & 1 deletion spec/calculators/referendum_supporters_calculator_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
Measure_Number: 'D',
)

described_class.new(ballot_measures: [ballot_measure]).fetch
described_class.new(ballot_measures: [ballot_measure], committees: Committee.all).fetch
end

let(:ballot_measure) do
Expand All @@ -47,6 +47,44 @@
end
end

describe 'including expenditures from official BMC' do
before do
import_test_case('spec/fixtures/referendum_expenditures_from_official_bmc_are_included')

Election.create(
name: 'oakland-march-2020',
location: 'Oakland',
date: '2020-03-05',
title: 'Oakland Test Election',
)
Committee.create(
Filer_ID: '1423153',
Filer_NamL: 'Yes on Q! Oakland Neighbors for our Parks and People',
Ballot_Measure: 'Q',
Ballot_Measure_Election: 'oakland-march-2020',
Support_Or_Oppose: 'S'
)

described_class.new(ballot_measures: [ballot_measure], committees: Committee.all).fetch
end

let(:ballot_measure) do
Referendum.create(
election_name: 'oakland-march-2020',
Measure_number: 'Q',
Short_Title: "Oakland Parks and Recreation Preservation [...] Act",
)
end

subject { ballot_measure.calculation(:supporting_organizations) }

it 'includes the committee in the supporters list' do
expect(subject).to_not be_empty
expect(subject).to include(hash_including('id' => '1423153'))
expect(subject).to include(hash_including('amount' => 83437.4))
end
end

describe 'including committees that have raised, but not spent, money' do
before do
import_test_case('spec/fixtures/referendum_supporters_without_expenditures_are_included')
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Filer_ID,Filer_NamL,Report_Num,Committee_Type,Rpt_Date,From_Date,Thru_Date,Elect_Date,Rec_Type,Form_Type,Tran_ID,Amount,Exp_Date,Date_Thru,Expn_Dscr,Memo_Code,Memo_RefNo,Bal_Name,Bal_Num,Bal_Juris,Sup_Opp_Cd,Cand_NamL,Cand_NamF,Cand_NamT,Cand_NamS,Office_Cd,Offic_Dscr,Juris_Cd,Juris_Dscr,Dist_No,Rpt_ID_Num
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Filer_ID,Filer_NamL,Report_Num,Committee_Type,Rpt_Date,From_Date,Thru_Date,Elect_Date,tblCover_Office_Cd,tblCover_Offic_Dscr,Rec_Type,Form_Type,Tran_ID,Entity_Cd,Payee_NamL,Payee_NamF,Payee_NamT,Payee_NamS,Payee_Adr1,Payee_Adr2,Payee_City,Payee_State,Payee_Zip4,Expn_Date,Amount,Cum_YTD,Expn_ChkNo,Expn_Code,Expn_Dscr,Agent_NamL,Agent_NamF,Agent_NamT,Agent_NamS,Cmte_ID,Tres_NamL,Tres_NamF,Tres_NamT,Tres_NamS,Tres_Adr1,Tres_Adr2,Tres_City,Tres_ST,Tres_ZIP4,Cand_NamL,Cand_NamF,Cand_NamT,Cand_NamS,Office_Cd,Offic_Dscr,Juris_Cd,Juris_Dscr,Dist_No,Off_S_H_Cd,Bal_Name,Bal_Num,Bal_Juris,Sup_Opp_Cd,Memo_Code,Memo_RefNo,BakRef_TID,G_From_E_F,XRef_SchNm,XRef_Match
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
Filer_ID,Filer_NamL,Report_Num,Committee_Type,Rpt_Date,From_Date,Thru_Date,Elect_Date,tblCover_Office_Cd,tblCover_Offic_Dscr,Rec_Type,Form_Type,Tran_ID,Entity_Cd,Payee_NamL,Payee_NamF,Payee_NamT,Payee_NamS,Payee_Adr1,Payee_Adr2,Payee_City,Payee_State,Payee_Zip4,Expn_Date,Amount,Cum_YTD,Expn_ChkNo,Expn_Code,Expn_Dscr,Agent_NamL,Agent_NamF,Agent_NamT,Agent_NamS,Cmte_ID,Tres_NamL,Tres_NamF,Tres_NamT,Tres_NamS,Tres_Adr1,Tres_Adr2,Tres_City,Tres_ST,Tres_ZIP4,Cand_NamL,Cand_NamF,Cand_NamT,Cand_NamS,Office_Cd,Offic_Dscr,Juris_Cd,Juris_Dscr,Dist_No,Off_S_H_Cd,Bal_Name,Bal_Num,Bal_Juris,Sup_Opp_Cd,Memo_Code,Memo_RefNo,BakRef_TID,G_From_E_F,XRef_SchNm,XRef_Match
1423153,Yes on Q! Oakland Neighbors for our Parks and People,001,BMC,2020-02-16,2019-01-01,2019-12-31,,,,EXPN,E,EXP11,OTH,S.E. Owens & Company,,,,,,Oakland,CA,94607,2019-12-27,380.5,380.5,,PRO,,,,,,,,,,,,,,,,,,,,,,,,,,"A Proposed Ordinance to Approve a Parcel Tax to Fund Parks & Recreational Facilities, Services for Unhoused and Unsheltered Persons, and Maintenance of Stormwater Trash Collection Systems.",Q,"City of Oakland, CA",S,,,,,,
1423153,Yes on Q! Oakland Neighbors for our Parks and People,001,BMC,2020-02-16,2020-01-01,2020-01-18,2020-03-03,,,EXPN,E,EXP32,OTH,Callhub (Gagler's Inc),,,,,,Walnut,CA,91789,2020-01-08,50,250,,PHO,,,,,,,,,,,,,,,,,,,,,,,,,,"A Proposed Ordinance to Approve a Parcel Tax to Fund Parks & Recreational Facilities, Services for Unhoused and Unsheltered Persons, and Maintenance of Stormwater Trash Collection Systems.",Q,"City of Oakland, CA",S,,EXP32,,,,
1423153,Yes on Q! Oakland Neighbors for our Parks and People,001,BMC,2020-02-16,2020-01-01,2020-01-18,2020-03-03,,,EXPN,E,EXP39,OTH,Callhub (Gagler's Inc),,,,,,Walnut,CA,91789,2020-01-18,100,250,,PHO,,,,,,,,,,,,,,,,,,,,,,,,,,"A Proposed Ordinance to Approve a Parcel Tax to Fund Parks & Recreational Facilities, Services for Unhoused and Unsheltered Persons, and Maintenance of Stormwater Trash Collection Systems.",Q,"City of Oakland, CA",S,,EXP39,,,,
1423153,Yes on Q! Oakland Neighbors for our Parks and People,001,BMC,2020-02-16,2020-01-01,2020-01-18,2020-03-03,,,EXPN,E,EXP40,OTH,Callhub (Gagler's Inc),,,,,,Walnut,CA,91789,2020-01-18,100,250,,PHO,,,,,,,,,,,,,,,,,,,,,,,,,,"A Proposed Ordinance to Approve a Parcel Tax to Fund Parks & Recreational Facilities, Services for Unhoused and Unsheltered Persons, and Maintenance of Stormwater Trash Collection Systems.",Q,"City of Oakland, CA",S,,EXP40,,,,
1423153,Yes on Q! Oakland Neighbors for our Parks and People,001,BMC,2020-02-16,2020-01-01,2020-01-18,2020-03-03,,,EXPN,E,EXP31,OTH,Piedmont Copy & Printing,,,,,,Oakland,CA,94611,2020-01-08,127.87,318.45,,CMP,,,,,,,,,,,,,,,,,,,,,,,,,,"A Proposed Ordinance to Approve a Parcel Tax to Fund Parks & Recreational Facilities, Services for Unhoused and Unsheltered Persons, and Maintenance of Stormwater Trash Collection Systems.",Q,"City of Oakland, CA",S,,EXP31,,,,
1423153,Yes on Q! Oakland Neighbors for our Parks and People,001,BMC,2020-02-16,2020-01-01,2020-01-18,2020-03-03,,,EXPN,E,EXP38,OTH,Piedmont Copy & Printing,,,,,,Oakland,CA,94611,2020-01-17,190.58,318.45,,CMP,,,,,,,,,,,,,,,,,,,,,,,,,,"A Proposed Ordinance to Approve a Parcel Tax to Fund Parks & Recreational Facilities, Services for Unhoused and Unsheltered Persons, and Maintenance of Stormwater Trash Collection Systems.",Q,"City of Oakland, CA",S,,EXP38,,,,
1423153,Yes on Q! Oakland Neighbors for our Parks and People,003,BMC,2020-02-21,2020-01-19,2020-02-15,2020-03-03,,,EXPN,E,EXP93,OTH,88Spire,,,,,,San Francisco,CA,94105,2020-02-11,3250,3250,,,Video Production,,,,,,,,,,,,,,,,,,,,,,,,,"A Proposed Ordinance to Approve a Parcel Tax to Fund Parks & Recreational Facilities, Services for Unhoused and Unsheltered Persons, and Maintenance of Stormwater Trash Collection Systems.",Q,"City of Oakland, CA",S,,,,,,
1423153,Yes on Q! Oakland Neighbors for our Parks and People,003,BMC,2020-02-21,2020-01-19,2020-02-15,2020-03-03,,,EXPN,E,EXP73,OTH,Autumn Press,,,,,,Berkeley,CA,94710,2020-01-30,41646.77,43284.36,,LIT,,,,,,,,,,,,,,,,,,,,,,,,,,"A Proposed Ordinance to Approve a Parcel Tax to Fund Parks & Recreational Facilities, Services for Unhoused and Unsheltered Persons, and Maintenance of Stormwater Trash Collection Systems.",Q,"City of Oakland, CA",S,,,,,,
1423153,Yes on Q! Oakland Neighbors for our Parks and People,003,BMC,2020-02-21,2020-01-19,2020-02-15,2020-03-03,,,EXPN,E,EXP100,OTH,Autumn Press,,,,,,Berkeley,CA,94710,2020-02-14,1637.59,43284.36,,CMP,,,,,,,,,,,,,,,,,,,,,,,,,,"A Proposed Ordinance to Approve a Parcel Tax to Fund Parks & Recreational Facilities, Services for Unhoused and Unsheltered Persons, and Maintenance of Stormwater Trash Collection Systems.",Q,"City of Oakland, CA",S,,,,,,
1423153,Yes on Q! Oakland Neighbors for our Parks and People,003,BMC,2020-02-21,2020-01-19,2020-02-15,2020-03-03,,,EXPN,E,EXP102,OTH,Callhub (Gagler's Inc),,,,,,Walnut,CA,91789,2020-01-22,1000,1500,,PHO,,,,,,,,,,,,,,,,,,,,,,,,,,"A Proposed Ordinance to Approve a Parcel Tax to Fund Parks & Recreational Facilities, Services for Unhoused and Unsheltered Persons, and Maintenance of Stormwater Trash Collection Systems.",Q,"City of Oakland, CA",S,,EXP102,,,,
1423153,Yes on Q! Oakland Neighbors for our Parks and People,003,BMC,2020-02-21,2020-01-19,2020-02-15,2020-03-03,,,EXPN,E,EXP103,OTH,Callhub (Gagler's Inc),,,,,,Walnut,CA,91789,2020-02-12,250,1500,,PHO,,,,,,,,,,,,,,,,,,,,,,,,,,"A Proposed Ordinance to Approve a Parcel Tax to Fund Parks & Recreational Facilities, Services for Unhoused and Unsheltered Persons, and Maintenance of Stormwater Trash Collection Systems.",Q,"City of Oakland, CA",S,,EXP103,,,,
1423153,Yes on Q! Oakland Neighbors for our Parks and People,003,BMC,2020-02-21,2020-01-19,2020-02-15,2020-03-03,,,EXPN,E,EXP52,IND,Cornejo,Angelina,,,,,Oakland,CA,94609,2020-01-24,1000,5000,,,Campaign Coordinator,,,,,,,,,,,,,,,,,,,,,,,,,"A Proposed Ordinance to Approve a Parcel Tax to Fund Parks & Recreational Facilities, Services for Unhoused and Unsheltered Persons, and Maintenance of Stormwater Trash Collection Systems.",Q,"City of Oakland, CA",S,,,,,,
1423153,Yes on Q! Oakland Neighbors for our Parks and People,003,BMC,2020-02-21,2020-01-19,2020-02-15,2020-03-03,,,EXPN,E,EXP75,IND,Cornejo,Angelina,,,,,Oakland,CA,94609,2020-01-31,4000,5000,,,Campaign Worker,,,,,,,,,,,,,,,,,,,,,,,,,"A Proposed Ordinance to Approve a Parcel Tax to Fund Parks & Recreational Facilities, Services for Unhoused and Unsheltered Persons, and Maintenance of Stormwater Trash Collection Systems.",Q,"City of Oakland, CA",S,,,,,,
1423153,Yes on Q! Oakland Neighbors for our Parks and People,003,BMC,2020-02-21,2020-01-19,2020-02-15,2020-03-03,,,EXPN,E,EXP54,OTH,EMC Research,,,,,,Columbus,OH,43215,2020-01-24,5000,5000,,CNS,,,,,,,,,,,,,,,,,,,,,,,,,,"A Proposed Ordinance to Approve a Parcel Tax to Fund Parks & Recreational Facilities, Services for Unhoused and Unsheltered Persons, and Maintenance of Stormwater Trash Collection Systems.",Q,"City of Oakland, CA",S,,,,,,
1423153,Yes on Q! Oakland Neighbors for our Parks and People,003,BMC,2020-02-21,2020-01-19,2020-02-15,2020-03-03,,,EXPN,E,EXP58,OTH,In and Out Printing,,,,,,San Leandro,CA,94577,2020-01-24,218.84,9521.52,,CMP,,,,,,,,,,,,,,,,,,,,,,,,,,"A Proposed Ordinance to Approve a Parcel Tax to Fund Parks & Recreational Facilities, Services for Unhoused and Unsheltered Persons, and Maintenance of Stormwater Trash Collection Systems.",Q,"City of Oakland, CA",S,,,,,,
1423153,Yes on Q! Oakland Neighbors for our Parks and People,003,BMC,2020-02-21,2020-01-19,2020-02-15,2020-03-03,,,EXPN,E,EXP56,OTH,In and Out Printing,,,,,,San Leandro,CA,94577,2020-01-24,9302.68,9521.52,,CMP,,,,,,,,,,,,,,,,,,,,,,,,,,"A Proposed Ordinance to Approve a Parcel Tax to Fund Parks & Recreational Facilities, Services for Unhoused and Unsheltered Persons, and Maintenance of Stormwater Trash Collection Systems.",Q,"City of Oakland, CA",S,,,,,,
1423153,Yes on Q! Oakland Neighbors for our Parks and People,003,BMC,2020-02-21,2020-01-19,2020-02-15,2020-03-03,,,EXPN,E,EXP104,OTH,Piedmont Copy & Printing,,,,,,Oakland,CA,94611,2020-02-12,37.61,356.06,,CMP,,,,,,,,,,,,,,,,,,,,,,,,,,"A Proposed Ordinance to Approve a Parcel Tax to Fund Parks & Recreational Facilities, Services for Unhoused and Unsheltered Persons, and Maintenance of Stormwater Trash Collection Systems.",Q,"City of Oakland, CA",S,,EXP104,,,,
1423153,Yes on Q! Oakland Neighbors for our Parks and People,003,BMC,2020-02-21,2020-01-19,2020-02-15,2020-03-03,,,EXPN,E,EXP83,OTH,Political Data Inc.,,,,,,Norwalk,CA,90650,2020-02-07,10300,10300,,,Voter Data,,,,,,,,,,,,,,,,,,,,,,,,,"A Proposed Ordinance to Approve a Parcel Tax to Fund Parks & Recreational Facilities, Services for Unhoused and Unsheltered Persons, and Maintenance of Stormwater Trash Collection Systems.",Q,"City of Oakland, CA",S,,,,,,
1423153,Yes on Q! Oakland Neighbors for our Parks and People,003,BMC,2020-02-21,2020-01-19,2020-02-15,2020-03-03,,,EXPN,E,EXP86,OTH,Post News Group,,,,,,Oakland,CA,94612,2020-02-07,3000,3000,,PRT,,,,,,,,,,,,,,,,,,,,,,,,,,"A Proposed Ordinance to Approve a Parcel Tax to Fund Parks & Recreational Facilities, Services for Unhoused and Unsheltered Persons, and Maintenance of Stormwater Trash Collection Systems.",Q,"City of Oakland, CA",S,,,,,,
1423153,Yes on Q! Oakland Neighbors for our Parks and People,003,BMC,2020-02-21,2020-01-19,2020-02-15,2020-03-03,,,EXPN,E,EXP60,OTH,S.E. Owens & Company,,,,,,Oakland,CA,94607,2020-01-24,1329,1329,,PRO,,,,,,,,,,,,,,,,,,,,,,,,,,"A Proposed Ordinance to Approve a Parcel Tax to Fund Parks & Recreational Facilities, Services for Unhoused and Unsheltered Persons, and Maintenance of Stormwater Trash Collection Systems.",Q,"City of Oakland, CA",S,,,,,,
1423153,Yes on Q! Oakland Neighbors for our Parks and People,003,BMC,2020-02-21,2020-01-19,2020-02-15,2020-03-03,,,EXPN,E,EXP71,OTH,Stripe,,,,,,San Francisco,CA,94103,2020-01-25,15.1,103.66,,FND,,,,,,,,,,,,,,,,,,,,,,,,,,"A Proposed Ordinance to Approve a Parcel Tax to Fund Parks & Recreational Facilities, Services for Unhoused and Unsheltered Persons, and Maintenance of Stormwater Trash Collection Systems.",Q,"City of Oakland, CA",S,,,,,,
1423153,Yes on Q! Oakland Neighbors for our Parks and People,003,BMC,2020-02-21,2020-01-19,2020-02-15,2020-03-03,,,EXPN,E,EXP72,OTH,Stripe,,,,,,San Francisco,CA,94103,2020-01-26,2.06,103.66,,FND,,,,,,,,,,,,,,,,,,,,,,,,,,"A Proposed Ordinance to Approve a Parcel Tax to Fund Parks & Recreational Facilities, Services for Unhoused and Unsheltered Persons, and Maintenance of Stormwater Trash Collection Systems.",Q,"City of Oakland, CA",S,,,,,,
1423153,Yes on Q! Oakland Neighbors for our Parks and People,003,BMC,2020-02-21,2020-01-19,2020-02-15,2020-03-03,,,EXPN,E,EXP89,OTH,Stripe,,,,,,San Francisco,CA,94103,2020-02-02,9,103.66,,FND,,,,,,,,,,,,,,,,,,,,,,,,,,"A Proposed Ordinance to Approve a Parcel Tax to Fund Parks & Recreational Facilities, Services for Unhoused and Unsheltered Persons, and Maintenance of Stormwater Trash Collection Systems.",Q,"City of Oakland, CA",S,,,,,,
1423153,Yes on Q! Oakland Neighbors for our Parks and People,003,BMC,2020-02-21,2020-01-19,2020-02-15,2020-03-03,,,EXPN,E,EXP108,OTH,Stripe,,,,,,San Francisco,CA,94103,2020-02-10,58.6,103.66,,FND,,,,,,,,,,,,,,,,,,,,,,,,,,"A Proposed Ordinance to Approve a Parcel Tax to Fund Parks & Recreational Facilities, Services for Unhoused and Unsheltered Persons, and Maintenance of Stormwater Trash Collection Systems.",Q,"City of Oakland, CA",S,,,,,,
1423153,Yes on Q! Oakland Neighbors for our Parks and People,003,BMC,2020-02-21,2020-01-19,2020-02-15,2020-03-03,,,EXPN,E,EXP109,OTH,Stripe,,,,,,San Francisco,CA,94103,2020-02-12,3.2,103.66,,FND,,,,,,,,,,,,,,,,,,,,,,,,,,"A Proposed Ordinance to Approve a Parcel Tax to Fund Parks & Recreational Facilities, Services for Unhoused and Unsheltered Persons, and Maintenance of Stormwater Trash Collection Systems.",Q,"City of Oakland, CA",S,,,,,,
Loading

0 comments on commit a8dc333

Please sign in to comment.