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

Add filter for active candidate to "All Candidates" and "House/Senate Candidates" datatables #2927

Closed
2 of 3 tasks
Tracked by #146
lbeaufort opened this issue May 30, 2019 · 28 comments · Fixed by #2926
Closed
2 of 3 tasks
Tracked by #146

Comments

@lbeaufort
Copy link
Member

lbeaufort commented May 30, 2019

User story: As a data user, I want to be able to compare candidate lists and quickly identify active and inactive candidates, so that I can make sure that I'm up to date on who's running.

Possible solution: Add a checkbox to filter for active candidates to the "All candidates" datatables and "Senate/House Candidates" datatables (per @PaulClark2, presidential candidates that drop out aren't marked as inactive so it wouldn't add value to add the filter to the presidential candidate datatables.)

By introducing some filtering here we have the added benefit of keeping up-to-date and accurate candidate listings across datatables, specifically House, Senate and all candidates.

Completion criteria

WIP PR screenshot ideas:
Screen Shot 2019-05-30 at 4 35 59 PM
Screen Shot 2019-05-30 at 4 35 21 PM

@JonellaCulmer
Copy link
Contributor

Below are some preliminary mock-ups of how the filter panels can look with the addition of the candidate status filter. Content needs to review the language of the filters, all the same in each place (House, Senate and All candidates datatables). cc: @AmyKort @dorothyyeager @kathycarothers @bmathesonFEC

Essentially this filter includes two options, to view all candidates currently active or view candidates no longer seeking office. Selecting active candidates would return one list, selecting no longer seeking would return a second, and selecting neither would return a third, combined list. cc: @lbeaufort

Screen Shot 2019-06-06 at 8 42 59 AM

@kathycarothers
Copy link
Contributor

@JonellaCulmer quick question. Why is the "Time period" option just for Senate candidates?

@dorothyyeager
Copy link
Contributor

The labeling is clear. I have the same question as Kathy. Also wondering if the time periods should be in order of most recent at the top.

Also wondering if the "date first filed Statement of Candidacy" and the option to filter out the $0 fundraisers should be available in the House and Senate filters too.

@lbeaufort
Copy link
Member Author

lbeaufort commented Jun 6, 2019

@kathycarothers @dorothyyeager the "Time period" option is available on the Senate and Presidential datatables. The 3rd screenshot is of the "All candidates" datatable, which doesn't have a time period option - I'm guessing because it doesn't apply to house candidates.

Presidential datatable: https://www.fec.gov/data/candidates/president/
Senate datatable: https://www.fec.gov/data/candidates/senate/
All candidates datatable: https://www.fec.gov/data/candidates/

@lbeaufort
Copy link
Member Author

lbeaufort commented Jun 6, 2019

@JonellaCulmer is the expected behavior the same for all unchecked and all checked? IE, if no checkboxes are selected, all candidates active/inactive are returned, and if both are checked, all candidates active/inactive are returned?

Also, is the default that both are checked?

One example of a true/false checkbox is the "Has raised more than $0" checkbox.

I also checked out the pattern library on standalone yes/no checkboxes. I'm not sure I understand why we would have single checkboxes for true/false based on the notes, but I'm guessing it might have something to do with the weirdness of all checked being the same as none checked. https://fec-pattern-library.app.cloud.gov/components/detail/standalone.html

In the data scenario where someone wants to see just inactive, they could export the full list and filter on their own.

@lbeaufort
Copy link
Member Author

@AmyKort regarding your concern about the legal definition and accuracy of "Active", we could phrase it as candidates that have withdrawn from seeking office, rather than actively seeking office

@bmathesonFEC
Copy link
Contributor

I would want to know more about how the Candidate Status label is assigned and how frequently it is updated. Election losers are the easiest for us to identify (but even that is tough sometimes), candidates that drop out are harder to identify, so I'm curious to know how that data field is informed.

Another landmine is presidential candidates' "suspended campaigns." How does the Candidate Status flag approach those?

Regardless, I see no problem with using "Actively Seeking Office." For the other label I found some precedence for using "former" to distinguish from "current" or "present" candidates/office holders. It's even used in the regs once (113.1) and used in @dorothyyeager 's Record article about the petition for rulemaking for "dormant" committees.

Former Candidates is the best I have for now, but I'm curious to learn more about Candidate Status in the database.

@kathycarothers
Copy link
Contributor

@lbeaufort Thanks for the explanation for the "Time period" options. I get it now.

@PaulClark2
Copy link
Contributor

I'm jumping in late. I have concerns about the 'candidate status` check boxes. The only grouping we can really make is: 1) candidate has filed F2 for this election and 2) candidate has not filed F2 for this election.

@lbeaufort
Copy link
Member Author

@PaulClark2 don't we flag when candidates file a F2 and then withdraw from office as inactive in the cand_inactive table?

@JonellaCulmer
Copy link
Contributor

JonellaCulmer commented Jun 6, 2019

@kathycarothers @dorothyyeager The time period toggle there is only for Senate candidates because their data crosses over multiple two-year periods. House candidates only cover a single two-year period. You would see the same for Presidential candidates with a time period toggle too, but we're not modifying that datatable this time, so I didn't include it in my screenshots.

We can talk about the other filters in a separate issue, but we should keep this specific to the active candidate filter work at this time.

@lbeaufort This doesn't seem like an either/or, true/false issue to me. Unlike the filter for "raised more than $0", users have the potential for three different results. But you have a point about the user going into the exported data and verifying which candidates are which. I think there's still an argument to be able to show that on the front-end and provide users with the ability to see each subgroup.

@JonellaCulmer
Copy link
Contributor

JonellaCulmer commented Jun 6, 2019

As an alternative, we can use radio buttons, which might be a better way to show this data given the three choices. Would love your thoughts @AmyKort @bmathesonFEC @dorothyyeager @kathycarothers now that the filter looks a little different and incorporates your feedback thus far.

Screen Shot 2019-06-06 at 1 27 40 PM

@lbeaufort
Copy link
Member Author

lbeaufort commented Jun 6, 2019

To summarize the data part of @JonellaCulmer and my discussion with @PaulClark2, the is_active_candidate=true filter in the API only removes known house/senate incumbents that drop out of the race.

If a candidate loses the primary or a challenger drops out, they're not coded as inactive.

Therefore, the filter doesn't really show "active candidates" as most people think of them (folks currently seeking office), but removes known incumbents that drop out.

@JonellaCulmer
Copy link
Contributor

JonellaCulmer commented Jun 7, 2019

Updated mockups. Any more thoughts on copy, @AmyKort @dorothyyeager @kathycarothers @bmathesonFEC ?

Screen Shot 2019-06-07 at 11 55 48 AM

cc: @PaulClark2 @lbeaufort

@AmyKort
Copy link

AmyKort commented Jun 7, 2019

I'm still not comfortable with the "actively seeking office" language. First, I'm not sure it represents what's in the data. And second, I'm worried that users might think that's there to identify folks who are raising money, rather than folks who have dropped out. Do you have any other ideas @PaulClark2 ?

@lbeaufort
Copy link
Member Author

@AmyKort @PaulClark2 @JonellaCulmer
I'm sure content can make it better, but what we're really is

  • "Remove incumbents that have dropped out"
  • "Show incumbents that have dropped out"
  • "All candidates"

@dorothyyeager
Copy link
Contributor

Just a stab at it... thanks @lbeaufort - that helped clarify all of this for me! How about

  • Candidates (excluding incumbents not seeking re-election)
  • Candidates (including incumbents not seeking re-election)
  • All candidates

@dorothyyeager
Copy link
Contributor

(I realize that's long for a label though.)

@lbeaufort
Copy link
Member Author

lbeaufort commented Jun 7, 2019

@dorothyyeager I think it's:

  • Candidates (excluding incumbents not seeking re-election)
  • Candidates (only incumbents not seeking re-election)
  • All candidates

(otherwise 2 & 3 are the same list)

@PaulClark2
Copy link
Contributor

@AmyKort @JonellaCulmer I agree with Amy. Actively seeking office does not represent that data even for those that are not included in our inactive candidates table. We don't know the motivation of anyone that files a Form 2 or forms a campaign. We are asking users to pick one of three buckets: 1) candidates excluding incumbents that have announced they aren't running and the FEC has added to the inactive candidates table, 2) incumbents that have announced they aren't running and the FEC has added to the inactive candidates table, or 3) all candidates.

@PaulClark2
Copy link
Contributor

I think @dorothyyeager and @lbeaufort are on the right track or may have it now.

@JonellaCulmer
Copy link
Contributor

JonellaCulmer commented Jun 7, 2019

Do I have it right?

  • All candidates
  • Exclude former incumbents (default)
  • Show only former incumbents

@PaulClark2
Copy link
Contributor

PaulClark2 commented Jun 7, 2019

I wouldn't call them former incumbents. Incumbency is a little odd because the incumbent is the incumbent until he or she leaves office. For example, an incumbent that has announced she is retiring at the end of her current term (but had filed a Form 2 for the next election) is the incumbent until January after the November general election. If a website user is looking at the data at anytime through January following the general election, the incumbent is the current incumbent.

@PaulClark2
Copy link
Contributor

These #2927 (comment) are really more accurate.

@JonellaCulmer
Copy link
Contributor

For the all candidates datatable, this will include candidates going back a long ways, yes, who may have "withdrawn"? Do we need to account for them as well? Or are they less relevant to this discussion?

  • All candidates
  • Exclude previous(?) withdrawn(?) incumbents (default)
  • Show only ... incumbents

@lbeaufort
Copy link
Member Author

lbeaufort commented Jun 7, 2019

@JonellaCulmer I'm not sure "previous" makes sense here - the user also is selecting an election year. So, if I'm looking for all candidates in 2020, excluding incumbents that withdrew from the race will hide candidates that were at some point an incumbent for a 2020 seat and then withdrew.

So "previous withdrawn" combined with an election year doesn't really make sense to me.

Oh, also I think maybe that was an "or" - previous or withdrawn. Happy to hop on a call if it's easier :)

@JonellaCulmer
Copy link
Contributor

Per our discussion, we are going to default to "Exclude incumbents not seeking re-election" as a single option. Will update the ticket with new mockups.

@JonellaCulmer
Copy link
Contributor

@lbeaufort Please see the below updated mock-up for the three datatables. Let me know if you have any questions or thoughts.

Screen Shot 2019-06-12 at 11 42 48 AM

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

Successfully merging a pull request may close this issue.

7 participants