-
Notifications
You must be signed in to change notification settings - Fork 1
POC Background
chip-rosenthal edited this page Sep 6, 2012
·
12 revisions
Background information to present at the Code for America Hackathon (8 Sep 2012), in support of the "TEC Filer Proof of Concept" project. (http://codeacrossaustin.eventbrite.com/)
- The requirements for candidate and lobbyist disclosures are set by the Texas Ethics Commission (TEC) [http://www.ethics.state.tx.us/main/local.htm].
- Local candidate and lobbyist disclosures are filed not with the State, but with the Austin City Clerk.
- Clerk takes filings on paper (or PDF versions of the forms).
- The filings are posted online but are not easily searchable [http://www.austintexas.gov/department/campaign-finance-reports].
- In April, the City Council passed an ordinance [http://www.austintexas.gov/edims/document.cfm?id=169484] to create an online, searchable database of campaign and lobbyist filings.
- Initial staff estimates to implement have come back with:
- about 800K cost
- about a year development
- solution based on proprietary technology
- In a meeting organized by Councilmember Morrison, City Staff was open to the idea of a "civic sourced" effort to help reduce costs and time.
Some complexities not addressed:
- There are additional forms, such as the treasurer filing and correction filings, that are not scoped at this time.
- There are additional schedules that the City of Austin uses, that are not scoped in this discussion.
- Local government can require electronic filings, but the process is going to need TEC approval.
Produce a "proof of concept" prototype that:
- Allows online filing of required campaign (Form C/OH) and lobbyist (Form SPAC) finance information
- Performs sanity checks on the filing data
- Stores data in an easily accessible form, to facilitate public review and analysis
- Render data in format of TEC form (possibly PDF) for viewing, downloading, printing.
- The candidate retrieves a spreadsheet template that we provide.
- The candidate enters all the details for the main Candidate/Office Holder report (Form C/OH) in the first tab of the spreadsheet.
- The spreadsheet has additional tabs, one for each C/OH report schedule. The candidate enters the detail for a given report schedule into the form on the appropriate tab.
- The candidate saves the spreadsheet to a file.
- The candidate runs a command line utility with the saved spreadsheet as input.
- The utility runs, loads the spreadsheet content into data objects, and completely validates the data fields.
- If validation fails, detailed (user friendly) diagnostic information is provided, and the process terminates.
- If validation succeeds, the data objects are saved to the data store.
Notes:
- This assume it makes sense to put all the form information, not just the schedule line items in the spreadsheet.
- Although the POC implements data acquisition with a command line utility, we envision a web interface with file upload for a final implementation.
- Follows same flow as C/OH story, except substitute:
- the actor: C/OH -> lobbyist/PAC
- the form: C/OH -> SPAC
- The user obtains an identifier for a given report on file ("the id").
- User runs a command line utility, specifying the the id.
- The utility runs to completion, and emits a PDF rendering of the report.
Top priorities are schedule A and schedule E, which are the most frequently used forms.
OPEN ISSUE: Need to fully prioritize schedules, and identify which are: required, desired, optional
http://www.ethics.state.tx.us/forms/coh.pdf
- Schedule A: Political Contributions other than Pledges or Loans
- Schedule B: Pledged Contributions
- Schedule E: Loans
- Schedule F: Political Expenditures
- Schedule G: Political Expenditures Made from Personal Funds
- Schedule H: Payment from Political Contributions to a Business of C/OH
- Schedule I: Non-Political Expenditures made from Political Contributions
- Schedule K: Interest Earned, Other Credits/Gains/Refunds, and Purchase of Investments
- Schedule T: In-Kind Contribution or Political Expenditure for Travel Outside of Texas
http://www.ethics.state.tx.us/forms/spac.pdf
- Schedule A: Political Contributions other than Pledges or Loans
- Schedule B: Pledged Contributions
- Schedule C: Corporate or Labor Organization Contributions other than Pledges or Loans
- Schedule D: Pledged Corporate or Labor Contributions
- Schedule E: Loans
- Schedule F: Political Expenditures
- Schedule H: Payment from Political Contributions to a Busines of C/OH
- Schedule I: Non-Political Expenditures made from Political Contributions
- Schedule J: Political Contributions Returned to Committee
- Schedule K: Interest Earned, Other Credits/Gains/Refunds, and Purchase of Investments
- Schedule T: In-Kind Contribution or Political Expenditure for Travel Outside of Texas
I propose Ruby because:
- that's what I'm doing initial prototyping in
- believe libraries ("Ruby gems") are readily available to support needed functions
- sufficient local talent and expertise
- The two essential requirements are: developer easy and extensible.
- The ideal data store for the POC will be a zero time to deploy solution, so developers can work on code and not dev environments. Examples: CouchDB or PostgreSQL bad. SQLite good. Flat files better.
- Extensibility matters. Need the ability to easily add new forms and schedules. Need ability to modify forms and schedules as requirements change.
- The extensibility issues make relational is a poor fit for this long term. (Although SQLite could be viable for the POC.)
- Performance and scale don't matter.
- At some point there needs to be a discussion on interface/data load to the Socrata system (http://data.austintexas.gov).
- Propose sourcing spreadsheets in LibreOffice Calc format (ODS filetype), and providing derived Excel format (XLS filetype) as alternate.
- Propose ODS as source because format is unencumbered, and implementations (OpenOffice, LibreOffice) are free downloads. Excel would still be fully supported.
- Ruby gem requirements: read support for both formats, support for multi-tab spreadsheets.
- Propose: roo [http://rubyforge.org/projects/roo/]
- ACTION REQUIRED: Need to verify this gem will be suitable.
- Need a tool that can fill out forms, possibly PDF templates.