Closed brendanheywood closed 7 years ago
In the above I want to confirm that we are not changing the rating algorithms to use the ascent grade, but rather the minimum of the ascent grade and route grade?
The root cause here is when logging and ascent there are two reasons to change the grade: a) you did some variant and are saying the grade of what you did, vs b) what your opinion of the grade is. We currently have no way to saying which is which, and I'd guess that a) is <10% and b) is > 90%.
When we implement grades floating based on feedback then it would make more sense for the rating / ranking to always use the consensus grade so everything is fair. (just logged as #2525). But this still only covers the b) case above.
For the a) case above there cannot be a consensus around what the grade of a variant is that only a single person has done. If it gets repeated lots then it will get turned into a real route and just be normal after that. So I think these grades should just be ignored.
So I think for now the minimum of the two is a pragmatic solution to get us over the line now without introducing another blocking task for the ranking roll-out.
One small hitch, is if we are using the minimum and we link into this facet using the sort by rating, we should really display which ever of the two grades is smallest. This doesn't sit too well with me, I don't like the sorting methods affecting the data we are showing.
So I still think ascent grade should be plan a) unless we find big issues with it and only use the minimum of the two as plan b). .... I've just done a few spot tests in blueys and araps, and it's fairly clear that the vast majority of differences between ascent grade to route grade are a downgrade, but there are still some that go up. So I'm still leaning towards a) but on the fence - @scd what you think?
Re your comment in #1698:
One systems allows direct control over the rating points received the other does not.
I don't think this is practically a concern, either way they can just falsely tick a high grade route to cheat, it's an honesty system either way.
One small hitch, is if we are using the minimum and we link into this facet using the sort by rating, we should really display which ever of the two grades is smallest
I don't think it matters. The rating is dependent on multiple factors, not just grade. What would be more important is to show the actual rating. So we should decide the business rules for displaying grades on ascents independently of the way we decide to handle rating and if required add the rating number in the display when sorting by rating.
I agree that using ascent grade for ratings sorts out some thorny issues. I still want to make this decision from the business rules side of things, even if we end up basing the business rule on what is technically more pragmatic. Because this was documented early as a high level requirement I am having difficulty letting go of the business rule. If we can clearly articulate the reason for changing the business rule then I will be happy.
One thing that does make me wary of changing the business rule is that two people can do the same ascent in the same style on the same day and one person get's more points than the other because they decide to increase their grade on their ascent. This may not even be cheating, they just think it is a higher grade route. IMO this a big philosophical negative. Because of this I still want to do the minimum of the route and ascent grade.
I have not looked at how hard the code is to do the minimum of the ascent and route grade. If this ends up being difficult then we may just play the pragmatic trump card.
Pros for route grade
Pros for ascent grade
I have done the backend for an ascent-grade search using the new GradeProbabilityDistribution table.
/ascents/with-ascent-grade/AU:19:21/by/scd/?sortby=when,desc
Note that this works across grading systems, but only for the 'Grade' field in the Ascent table. I have not hooked it up to the 'AltGrade' field which has secondary grades.
@brendanheywood please feel free to drop in replace this with route grade search for ascents. Note that other facets have route-grade search so I am not sure if you have to take care getting this right.
The gui is in place:
Because there are now 2 grade filters which is inevitably going to confuse someone, and because most people will generally be wanting to filter on the ascent grade instead of the route grade, I've made the ascents filters to the first group, and route filters second. This probably makes more sense regardless as we are on the ascents facet page.
All the urls and selection is working but I have no test data yet (I'm assuming till next dev refresh)
I can only find 1 instance where we link directly into a list filtered by grade, and that's from the grade pyramid (which I didn't even know you could click on!) which is also fixed
Ha, knew it was best to leave the GUI to you. So good.
I have updated the code so it should now be taking the minimum of the ascent grade and route grade. There are some further edge cases that are taken into consideration:
I still have to test after I have re-run the ascents assessment. Once I have tested I will close the issue.
Note that I have not updated the dynamic query. Please let me know if you want me to put that on the list of things to do.
yeah would be good to update that sql to be consistent for testing
Actually I just looked at this and it comes for free as the dynamic query is uses whatever internal grade values we have assigned to the ascent. It has nothing to do with the parameters we are trying to optimism.
eg this page should not show the 21 (which is a 30) by Neil.
https://dev.thecrag.com/climbing/world/ascents/with-route-grade/AU:30:39/by/nmonteith/?sortby=all-time-rating,desc
The grade is correct in the ascent detail page:
https://dev.thecrag.com/ascent/581592405