### Vote Processing Algorithm 1. **Votes Preprocessing**: - For providers with both basic and extended budget options, the algorithm enforces the lowest option to be ranked immediately after the highest option (of the same provider). - If a provider has only one budget option, no special enforcement is needed for that provider. - This grouping ensures accurate pairwise comparisons between different between different providers and then budget options from the same provider. 2. **Pairwise Comparisons (copeland)**: - For each pair of candidates (provider), we calculate the total voting power supporting each over the other. - A candidate wins a head-to-head matchup if the total voting power ranking them higher exceeds that of their opponent. - Each win contributes 1 point to a candidate's Copeland score. - The pairwise comparison between basic and external must also be stored, for defining the preferrence on the budget. 3. **"None Below" Handling**: - The "None Below" option serves as a cutoff point in a voter's ranking. - Candidates ranked above "None Below" are considered ranked. - Candidates ranked below "None Below" are considered unranked by that voter. - A ranked candidate always wins against an unranked candidate in pairwise comparisons. 4. **Scoring and Ranking**: - Candidates are ranked by their Copeland score (descending), with average support as a tiebreaker. ### Allocation Process 1. **Budget Type Determination**: - Each provider's budget (basic or extended) is determined by their internal head-to-head match result. 2. **Stream Allocation**: - Candidates are processed in Copeland ranking order. - Candidates that are in top 5 and were selected in SPP1, are elegible for the 2-year stream. - All other candidates receive allocations from the 1-year stream. - From top to bottom, try to fit projects in the 2 year stream budget, and then on the 1-year stream budget using the standard knapsack algorithm, stopping once budgets are exhausted or None Below is reached. - If a service providers extended scope got a majority vote over basic scope and the extended scope doesn't fit into the remaining 1-year budget but the basic budget does, then the given service provider's basic budget is included. - If a candidate is ranked below "None Below", they're rejected regardless of budget availability. 3. **Budget Transfer Mechanism**: - After processing the top 5 candidates, any remaining 2-year budget transfers to the 1-year stream. Final 1-year budget = (Initial 1-year budget) + (Leftover 2-year budget). 4. **Rejection Criteria**: - A candidate is rejected if: - They're ranked below the "None Below" option - There's insufficient budget