Page MenuHomePhabricator

Number of "No response" options in the statistics can become meaningless if participants unregister after aggregation
Open, Needs TriagePublic

Description

The number of "no response" in the statistics tab is computed by subtraction, using the current number of participants. However, given that participants can unregister after their answers have been aggregated (or when the event has ended), this calculation might become meaningless. For instance, say you have an event with 50 participants, 20 of which say that they belong to an affiliate, and 20 say that they don't. Then, after the event has ended, 45 participants unregister. In the response statistics, you're left with 20 "Yes", 20 "No", but how many "No response"? Given that the final number of participants is 5, our current approach is to try a subtraction, 5 - 20 - 20 = -35, which is clearly wrong. And this is just an example.

This is how it looks in the current version:

image.png (833×2 px, 73 KB)

I don't really have a solution to this. In particular, assuming that we want to continue allowing participants to cancel their registration whenever they want, I can't think of an easy solution. Maybe we could store the "No response" in the database, but that also needs to be considered very carefully.

Event Timeline

@Daimona If the number of participants who answered the affiliate question or the number of responses, 20 yes 20 no, don't change after people cancel their registration, why can't we leave the 'No responses' value the same after registrations are canceled?

@Daimona If the number of participants who answered the affiliate question or the number of responses, 20 yes 20 no, don't change after people cancel their registration, why can't we leave the 'No responses' value the same after registrations are canceled?

Mostly because we are talking about participants who cancel their registration after aggregation, and for whom we don't know what the individual answers are.

Surely after aggregation that number should be frozen, a snapshot in time of the aggregated data?

Surely after aggregation that number should be frozen, a snapshot in time of the aggregated data?

Aggregation can happen at different times for different participants, though. But even if it didn't, we don't have a place to store that snapshot.

Maybe we could store the "No response" in the database, but that also needs to be considered very carefully.

Aside from the potential bloating the table, this is also tricky if we decide to let organizers add/remove questions (T322209). Considering the following scenarios:

  • A certain question is enabled for the event, but someone decides not to answer it when registering
  • No questions are enabled for the event, people register, and then the organizer enables questions

We would store a "no response" explicitly in the first scenario, but likely not in the second. Which could then lead to ambiguity when deciding what the number of no responses should be (because it may or may not be stored explicitly).