Skip to content
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/)

Background

  • 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.

Hackathon Goal

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.

Prototype User Stories

Story 1: Candidate/Office Holder files form C/OH

  • 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.

Story 2: Special Purpose Committee files form SPAC

  • Follows same flow as C/OH story, except substitute:
    • the actor: C/OH -> lobbyist/PAC
    • the form: C/OH -> SPAC

Story 3: Render printable copy of report

  • 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.

Prioritization of Schedules

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

Form C/OH

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

Form SPAC

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

Technology Framework

Language

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

Data Store

  • 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).

Spreadsheet

  • 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.

Form Generation

  • Need a tool that can fill out forms, possibly PDF templates.
Clone this wiki locally