Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP Always include BMC expenditures #216

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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