Closed AngelaKTE closed 1 week ago
#### Description Specify how we calculate the vote distribution applying … **Specification (add Overleaf)** see: [https://www.overleaf.com/project/667bebbdb70211dfcff39701](https://www.overleaf.com/project/667bebbdb70211dfcff39701) #### References (links) --- #### Notes: Notes in Discord if needed
@idrees535 please verify your implementation against the data shared in "References"
Let me first check what's relevant for us…
Verification of correct implementation:
Based on actual voting results in R4, we can deduct the following rules: a) funding final allocation <=500K? CORRECT, according to https://github.com/ethereum-optimism/op-analytics/blob/main/rpgf/rpgf4/results/Retro_Funding_4_results.csv
b) was it possible to allocate zero tokens in r4?
Status
✅ Our specification: We'll use R4a simplified:
r4: OP RetroPGF Round 4- Median Impact Metric Score
r4a: OP RetroPGF Round 4- Simplified - Capped Median
✅ Confirmation by Jonas for simplified version
🔴 ➡️ Verification Model Input/Output: TBD?
Formal Model (Simplified Version)
see: https://www.overleaf.com/project/667bebbdb70211dfcff39701
Description
Input:
Funding Allocation:
Step 1/ Score per badgeholder:
Calculate Impact Metric Share:
weighted_metric=gas_fees *IF(EQ(is_oss,TRUE),1.8,1)
impact_metric_share=weighted_metric /sum(project_1_weighted_metric)
The first step in calculation project allocation begins with calculating each projects
impact_metric_share
which is defined as the score of a project on a given metric devided by the sum of all projects scores on the metric. This result is multiplied by the open source (OS) multiplier when the project is noted as open source. This calculation is then repeated for each impact metric individually by project and badgeholder.Calculate total score by project and badgeholder : This is completed by multiplying the project's metric
impact_metric_share
by each badgeholder's impact metric weighting and adding toegther the results.` Score(P) = impactMetric1Share*weight + impactMetric2Share*weight.... `
Cap per badgeholder: The total score (or allocation) for each project/badgeholder combo is then capped to a maximum score of 500k OP per project with any remaining OP above this amount distributed to remaining badgeholder's projects. Redistribution score per badgeholder: The redistribution of OP is proportional to the score they've received. Normalization score per badgeholder: The capped badgeholder scores are then normalised to sum up to 10M OP.
R4 simplified: For the simplified version, we skip this step, and start with votes that are capped to 500K. We randomly generate values between 0-500.
Step 2/ Median across all badgeholders: Calculate Median of scores across all badgeholders, Cap: then results are again capped Redistribution: the excess tokens are redistributed proportional to the score they received Normalization: and Normalization: normalised to result in funding allocation (final_median_scores)
Step 3/ Apply min score:
Filter out projects with final_median_scores below 1000 OP remove recipients below 1000 OP
Calculate new median of remaining projects (filtered_median_scores)
Cap: then results are again capped
Redistribution: the excess tokens are redistributed proportional to the score they received
Normalization: and normalize again to match max. funding 10Ms
References
Public Documentation: https://community.optimism.io/citizens-house/rounds/retropgf-4
⭐️ Total Process: https://github.com/ethereum-optimism/op-analytics/blob/main/rpgf/rpgf4/rpgf4_voting_calculator.ipynb
Input Voting data (score per impact metric): https://github.com/ethereum-optimism/op-analytics/blob/main/rpgf/rpgf4/data/Voting%20data%20export%20final.csv Impact Metric by project https://github.com/ethereum-optimism/op-analytics/blob/main/rpgf/rpgf4/data/op_rf4_impact_metrics_by_project%20(1).csv Output Round 4 results: https://github.com/ethereum-optimism/op-analytics/blob/main/rpgf/rpgf4/results/Retro_Funding_4_results.csv
Methodology: In detail: General: https://github.com/ethereum-optimism/op-analytics/blob/main/rpgf/rpgf4/data/README.md
Badgeholder Wallets: https://github.com/ethereum-optimism/op-analytics/blob/main/rpgf/rpgf4/data/RPGF4_badgeholders.csv
Impact Metrics: https://github.com/ethereum-optimism/op-analytics/blob/main/rpgf/rpgf4/data/op_rf4_impact_metrics_by_project%20(1).csv
Voting Interface
https://gov.optimism.io/t/retro-funding-4-impact-metrics-a-collective-experiment/8226/6
Notes: