Skip to content
This repository has been archived by the owner on Apr 14, 2019. It is now read-only.

Add reporting period information #221

Open
bcipolli opened this issue Feb 24, 2016 · 13 comments
Open

Add reporting period information #221

bcipolli opened this issue Feb 24, 2016 · 13 comments
Assignees
Milestone

Comments

@bcipolli
Copy link
Collaborator

These need to be entered manually, for each form, so we know how to properly combine data.

@bcipolli bcipolli added this to the v1.0-RC1 milestone Feb 24, 2016
@bcipolli
Copy link
Collaborator Author

We have a model for this (ReportingPeriod, in finance/models.py), the data simply need to be entered into the admin panel.

@adborden
Copy link
Member

@sseiter assigning to you. Can you recruit someone from OO to find this information? If you stick it in a google spreadsheet, I can take it from there. Let's start with

  • Oakland
  • San Diego
  • San Francisco

I was able to find this pdf schedule on the SOS website, but I'm sure that each jurisdiction can override what the State says.

@elinaru
Copy link
Contributor

elinaru commented Jul 6, 2016

@sseiter will do this!!

@elinaru
Copy link
Contributor

elinaru commented Jul 6, 2016

@mikeubell / Suzzane shared this PDF with Oakland deadlines on Slack -- https://opencal.slack.com/files/mikeubell/F1K3AAEUC/november_2016_oakland_elections.pdf

@elinaru
Copy link
Contributor

elinaru commented Jul 6, 2016

For the November 2016 Oakland election:

Nominations period: July 18, 2016–August 12, 2016. (If an incumbent chooses not to run, then the filing deadline for that seat shall be extended to August 17, 2016.)
Deadline for ballot measures: August 8, 2016

Filing schedule:
Aug. 1, 2016 Form 460 (all committees) deadline
Aug. 10–Nov. 8, 2016: Form 497 (contributions of $1,000 or more require filing within 24 hours) deadline
Sep. 29, 2016: Form 460 or 470 (candidates listed on ballot) deadline
Oct. 27, 2016: Form 460 (all committees) deadline
Jan. 31, 2017: Form 460 (all committees) deadline

@mikeubell
Copy link
Contributor

I worry about why we need this information. A committee may file things
outside of the filing deadline. How do we use the reporting period
information?
On Jul 6, 2016 9:45 AM, "Elina Ru" [email protected] wrote:

For the November 2016 Oakland election:

Nominations period: July 18, 2016–August 12, 2016. (If an incumbent
chooses not to run, then the filing deadline for that seat shall be
extended to August 17, 2016.)
Deadline for ballot measures: August 8, 2016

Filing schedule:
Aug. 1, 2016 Form 460 (all committees) deadline
Aug. 10–Nov. 8, 2016: Form 497 (contributions of $1,000 or more require
filing within 24 hours) deadline
Sep. 29, 2016: Form 460 or 470 (candidates listed on ballot) deadline
Oct. 27, 2016: Form 460 (all committees) deadline
Jan. 31, 2017: Form 460 (all committees) deadline


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
#221 (comment),
or mute the thread
https://github.com/notifications/unsubscribe/AGcj-KfwejVpXgnxbuOzHvN-Ps5BHpdtks5qS9uzgaJpZM4HhzCc
.

@adborden
Copy link
Member

adborden commented Jul 7, 2016

@mikeubell the ReportingPeriod looks like

    period_start = models.DateField()
    period_end = models.DateField()
    filing_deadline = models.DateField(blank=True, null=True, default=None)
    form = models.ForeignKey('Form')
    locality = models.ForeignKey(
        'locality.Locality', blank=True, null=True, default=None)
    permanent = models.BooleanField(

So, the current behavior as I understand it: we match a contribution based on date to a reporting period. Based on the permanent flag, old contributions are removed from the database. The idea is that the current totals are the only records saved. I don't think this behavior is really what we want in the long term. However I believe we do need these reporting periods to properly determine the most up to date records (and ignore superseded records). Please add to this wiki if the information is incomplete, because that's what I'm going on.

@adborden
Copy link
Member

adborden commented Jul 7, 2016

Oh, and I believe [this pdf](http://www2.oaklandnet.com/oakca1/groups/cityclerk/documents/marketingmaterial/oak057308.
pdf) linked from Suzanne's doc above describes how these deadlines map to start/end dates. I suppose F460 is considered permanent, and F497 are not.

@bcipolli
Copy link
Collaborator Author

bcipolli commented Jul 7, 2016

That all sounds right, @adborden . I believe in SD, one use of F496 may give "permanent" data as well.

Note that in the form, there's a human-readable field, and then a "tag" field that maps onto the form ID within the Netfile system.

@mikeubell
Copy link
Contributor

On Jul 7, 2016, at 8:50 AM, Aaron D Borden [email protected] wrote:

I suppose F460 is considered permanent, and F497 are not.

So the ReportingPeriod are used to remove redundant information that was previously provided in a 497, when the 460 is processed?

In trying to figure out the code I see that a ReportingPeriod can be marked “permanent” or not. So what is the reporting period for a 497? They must be filed based on when the contribution is made, so there are an arbitrary number of reporting periods?

We have a record from a form, we look up its reporting period. If that reporting period is not permanent then we delete all previous records that match that reporting period? So the current record is from a 497, which is not permanent, so we delete all previous 497 records? That seems wrong. We want to delete a 497 record when we process a 460 that was filed after that record was filed. Do we process the records in order of file date?

The code uses datetime.datetime.now() (which I assume gets the current date/time) to determine if something should be deleted. How can the date that the program is run possible effect if we should delete data or not? The deletion should only depend if we are reading data that supersedes that data. The fact that the current date is outside the reporting period does not mean that the superseding data has been filed.

I am sure I don’t understand what is going on here, but this is pretty critical to reporting the correct data so I’d like to understand it.

@adborden
Copy link
Member

adborden commented Jul 7, 2016

cc @sfdoran

@sfdoran
Copy link

sfdoran commented Jul 7, 2016

We want to delete a 497 record when we process a 460 that was filed after that record was filed.

The way @mikeubell put it is the way I understand it - all contributions/expenditures reported on a Form 497 must be reported on Form 460 for the next filing period.

Is there already a process to deal with amended Form 460s? I reached out to my contact at NetFile and he offered to arrange a conference call with one of their developers to discuss the processes that take place with amendments and how to properly filter out duplicates. Would that be helpful? Is there any interest?

@mikeubell
Copy link
Contributor

I would be interested in talking to the netfile developers. I think I once looked in the netfile data to see about amendments and it appeared to me that they only have the most recent version. I could be mistaken and it would certainly be good to know officially how the data is generated.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

6 participants