Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Fec graph connect_2012
1. Analyzing Political Data and
Campaign Contributions
Using Neo4J
Dave Fauth
@davefauth
dsfauth@gmail.com
1
2. About Me
My Blog: http://www.intelliwareness.org
Find me on Twitter: @davefauth
Email me: dsfauth@gmail.com
GitHub: http://github.com/davidfauth
2
3. Agenda
• FEC Individual Contribution Data
• SuperPac Data
• Bill Sponsorship
• Visualization
• Q&A
3
4. Thank you
• Marko Rodriguez - Gremlin movie
recommender
• Max De Marzi – Visualization and
other cool ideas
• Michael Hunger – Batch Importer
4
5. FEC Data
• In 1975, Congress created the Federal Election
Commission (FEC) to administer and enforce
the Federal Election Campaign Act (FECA) –
– The statute that governs the financing of federal
elections.
• The duties of the FEC, which is an independent
regulatory agency, are to disclose campaign
finance information
5
6. FEC Data
• Detailed files about Candidates, Committees
and Individual Contributions
– http://www.fec.gov/finance/disclosure/ftpdet.shtml
• 10 years of data
– Updated every Sunday
6
7. FEC Files
• Committees
– The committee master file contains one record for each committee
registered with the Federal Election Commission.
• Candidates
– The candidate master file contains one record for each candidate who
has either registered with the Federal Election Commission or appeared
on a ballot list prepared by a state elections office.
• Individual Contributions
– The individual contributions file contains each contribution from an
individual to a federal committee if the contribution was at least $200.
7
8. Financial Data Example
Michelle Bachman
Contributor
Contribution
contribAmt: 300
Give contribDate: 20120604 Committee
s
Receives Suppo
Troy Smith rts
Gi
Candidate
ve
s
ive Bachman for Congress
s
e
R ec
contribAmt: 200
contribDate: 20120501
contribAmt: 830 David Schweikert
contribDate: 20110506 ts
Gives por
Rece
ives Sup
Giv es
es eiv DAVID SCHWEIKERT FOR CONGRESS
Craig Stull Rec
contribAmt: 400
contribDate: 20110815
8
9. Data Model
Expenditures
Committee SUPPORTS Candidate
FUNDS
superPac
Contributions Contribution
GIVES
Individual
9
10. More Details on the Data Model
Committee Candidate
committeeID candidateID
committeeName candidateName
SUPPORTS
committeeTreasurer candidateParty
committeeCity candidateElectionYear
committeeState candidateOfficeState
committeeZip candidateOffice
FUNDS
Contribution Donor
indivName
commID indivCity
contribDate
GIVES indivState
contribAmt indivZip
contribType idivEmp
indivOccupation
10
15. Bill Sponsorship
• The Data
– Obtained from http://www.govtrack.us/
– Members of Congress
• Data on everyone who has ever served in Congress
– Bills introduced in each Congressional Session
• XML File
– Sponsor, Cosponsor, Title, Date Introduced, Actions, Subjects
15
16. Data Loading
• XML Parser
– Wrote Java XML Parser to parse out 6 years of data
– Create files for Bill, Sponsors, CoSponsor and
Subjects
• Bulk Data Importer
– Use similar approach to load data using Java
importer
16
17. Data Model
Actions
COSPONSORS
ACTIVITY SPONSORS
Bill Congress
REFLECTS
Subject of Bill
17
18. What the Actions Could Be
Or
How a Bill Becomes a Law
thanks to Josh Tauberer
Introduced in Floor Debate Failed in House
Failed in Senate
House
vote
At Senate
vote Committee Committee
By rule Report vote
Floor Debate
Passed House
vote
vote vote
Passed Senate
Floor Debate Passed Without changes
w/Amendment
vote
Enrolled Bill
http://razor.occams.info/pubdocs/2012-10-08_LVI_slides.pdf
18