Closed michaeldjeffrey closed 3 weeks ago
My understanding is the caller will call make_rewardable_radio
and then take the output and call calculate_coverage_points
. Looking through the code, some of the calculations are done in the first function and some in the second. I don't understand the value of this being 2 steps. Why not just a single function that does everything?
Why not just a single function that does everything?
Having the Radio and CoveragePoints separate was an artifact of the way I started. Now that we're closing in on the end, I agree it makes sense to provide a single function as the interface for calculating coverage points.
In doing so, it also revealed that many of the intermediary structs were no longer needed. They have been removed in lieu of functions that I think better describe the problem.
Many changes to the rewards algorithm are contained in and across many HIPs. The blog post MOBILE Proof of Coverage contains a more thorough explanation of many of them. It is not exhaustive, but a great place to start.
Please comment if...
Example Usage
Fields:
CoveredHex::base_coverage_points
CoveredHex::assignment_multiplier
CoveredHex::rank
CoveredHex::boosted_multiplier
CoveragePoints::location_trust_multiplier
CoveragePoints::speedtest_multiplier
Notable Conditions:
LocationTrust
scores must meet distance requirements, or be degraded.BoostedHexStatus::Eligible
, boost values are removed before calculations.