-
Notifications
You must be signed in to change notification settings - Fork 1
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
Automatically file complaints for Failure to Participate in Peer Review #8
Comments
Also have this file complaints for Inadequate Contribution automatically as well. |
sent you google sheets access request |
Originally, the requirement was to send complaints to the CRT if an ambassador failed to participate. In the last team call, the governance team proposed to change the bylaws in favor of automatic termination to avoid clogging the CRT agenda. Let's assume that will pass, and design this accordingly. Currently, we assume we just have the current month's submissions and evaluations; however, for this purpose, we will need to have at least 6 months of history. I suggest we add a new link to a historical sheet, (similar to https://docs.google.com/spreadsheets/d/1cjhrqgc84HdS59eQJPsiNIPKbusHtp2j7dN55u-mKdc/edit?gid=1515736355#gid=1515736355 ) so that we can check the last 6 months of submissions. Unfortunately, this example link will not work because it does not have email address, which is what we need to key off of. We will need to discuss with Fradique to get the underlying data structure for the actual submissions and evaluations from the google forms that include the email address. The format of that data will dictate how this will work, but the requirement is to look at the most recent 6 months of submissions, and accumulate 1 point for each month that an ambassador did not submit work for review. Then, check the last 6 months of reviews, and if in any month the ambassador did not score at least one of the assigned submissions, then accumulate an additional point for each month with 0 evaluations provided. If the total score is > 2 for any ambassador, they will be terminated from the program, and we could just send a termination notice to the Ambassador and copy the Sponsor. We could also send a warning email for any ambassador with a score of 1 - to let them know that if they have another failure to participate they may be automatically terminated from the program. If we want to be precise with the warning, you would need to track the month of their first violation, and then let them know if they fail within 6 months of that first violation to accurately explain the sliding window. |
I'm a bit concerned about a strange glitch that I think might exist somewhere in the current mechanism. I'll try to find it. Do you think it's possible that submitting a contrib report might not be counted if the ambassador filled out the form without being logged into a Google account? |
The google forms go to a sheet automatically. I do not think that would/should happen. The google forms data automatically writes to a google sheet. If the Ambassador does not enter their email address, they may not be counted, but they don't have to be logged in to a google account. Email is a form field that is entered. |
If each ambassador has to evaluate three other ambassadors, then it means that each ambassador receives three evaluations from peer reviewers. And so the numbers in Fradique's table should be the arithmetic mean of these three evaluations? |
FullyAutomatic.drawio.pdf |
comparing the answers received from the Submission form and recorded in the "Responses" sheet with the list of ambassadors from the Registry sheet (email column?) we take their Discord nicknames or emails? Discord nicknames seem to be more simple, but e-mail addresses should be more exact..... |
Originally it was based on discord handle but we had many issues with typos, changes, etc. we switched to email and have not had problems since. I recommend sticking with the email implementation. |
So, do we put the email addresses into the Review Log sheet after all, and create the entire matrix from the email addresses , right? |
@mathematicw I prefer the second flow, but move the two big |
have doubt. |
However, I have long ago made everything exactly as it been discussed: if an ambassador-evaluator has not evaluated the ambassador-submitter assigned to him, his e-mail address will be displayed in the monthly list, instead evaluation. And, by the way, the matrix of matching submitter-evaluator has also been made long ago from discord handles :) But this logic is not difficult to change |
We should not reveal ambassador emails. Not sure why the email is being placed there? Is that so you can track that they did not submit a response? You could do that from the evaluation responses sheet instead? If you use discord, need to think about handling if discord does not match the registry. We should not have a problem today, we use email to track who send a submission, and email to track who responded with a score. The link from submission to score is on discordid, but that should be the same in both since we provide it to them in email. If you cannot match from a response to a submission on discord handle, there should be an error - I think alert sponsor to the discrepancy for manual review before continuing. |
It would be nice to add one more feature -- in case an ambassador is not selected to review any submissions, we should email them confirming that they were not selected and are not expected to submit evaluations that period. (see #9) |
Not I came up with it.
If ambassador- evaluator specified discord handle of the submitter with a typo, that's a problem. In general this isn't a problem. We have the Registry, which is a source of matching email addresses and discords of all ambassadors, so we can operate with both discords and emails, depending on preferences, as we need |
There are many options, and we can do it in various ways. |
Though if we identify non-responders directly from the form, we won't be able to separate those who avoided evaluation (even though they were assigned submitters) from those who simply didn't have submitters because there were too few. |
We know who was assigned, just need to keep track of it. |
We can't directly take evaluators' e-mail addresses from the Evaluation Form (to not reveal em), nor take Discords as there are no in Evaluation form. Can write the string "didn't evaluate" for ex, |
Those ambassadors who did not get submitter for evaluation, although are listed on the Registry, do not go into the sabmitter-evaluator matrix as evaluators. And in such cases, they should be notified of exemption from evaluation. Penalty points for non-evaluation will be issued only to those who are listed in the matrix as an evaluator but whose response is not received within 7 days from the date of sending the last letter. |
i can create a pull request to show you the code and what stage it is at so far |
The basic features are done so far, except for the final processing of scores, penalty points, CRT, and upcoming peer review notifications (which are just piece of cake compared to the former mentioned) . However, they need to be tested thoroughly. Additionally, Google has a limit on the number of emails sent per day, which is reached surprisingly quickly, even though it seems like it should be 500. |
Generally, penalty points for not participating in the Submission or Evaluation processes can be (and should be) written only directly in the Overall score in the "Penalty Points" column, in corresponding to that evaluator row.
We want also count the "didn't submit" and "late submission" events (equally) from past months to get wider view and to be able to detect if there are ambassadors who have 3 and more penalty points within 6 month period.
Also it is possible to handle past periods... It raises an interesting thought: how are you going to run this algorithm that will find all past offenders, and it may turn out that even if someone is doing well in the last 6 months, there is still a 6-month period where the number of penalty points was greater than 3. What happens in such cases? implementation note: *2.97, because this is the minimum closest number to the threshold value, if it is accumulated by only 0.33 PP (multiplied on 9) for missed single Evaluation requests cases (assuming mentioned proposal). P.s. sorry for the multiple edits, the section is not as obvious as it seemed. |
I only need to shed light on two things to dig in one direction and complete the script.
|
I believe these questions were handled in discord. If these are still open please let me know. |
yea, there are NO open questions.
|
@mathematicw issues from initial review: Module1.gs - request submissions module: |
ReferenceError: SUBMISSION_WINDOW_REMINDER_MINUTES is not defined |
Probably you missed SharedUtilities.gs file? |
I will send new PR today (in 4-5 hours after the time of writing this comment) with all fixes, I have made after my testing |
bugs fixed:
|
@mathematicw I added all the files to the source repository here. I think it's best to use git for the source code and then just |
ok gimme few hours.. i 'll manage it |
Btw, Changing the set of variables or overriding them, and especially while having multiple projects in Google Apps, can cause various glitches in Google platform. To address this, I provided the script with the 'Refresh Script State' option in the menu. |
@jrwashburn I'm going to push commit now. Should I add your instruction to SharedUtilities ? |
@mathematicw let's coordinate merge order on discord where easier to chat? |
I'd prefer just make a new PR, as there were some unfinished things to start from it. And now it's a working script that just needs to be fine-tuned, |
Add menu item for Sponsor to automatically file complaints
Need a way to track which complaints have been filed and what period it is for - new sheet perhaps.
Send a complaint email to the Subject and to the current CRT via bcc. (Verify how this was done with Fradique.)
Also check ability to create the vote table via Coda API to automate everything -- only gap would be the response from the Subject. Discuss this more with Fradique re: operations.
The text was updated successfully, but these errors were encountered: