Imagine you have an open source project that got a major sponsor. What's the best way to fairly distribute this money among the team? Should it be based on contribution levels, time spent, or something else? What models have worked well for you?
Let's start by positing that there's no 'fair' way to do this. Because there's no way to 'fairly' measure each individuals contribution which in turn needs to account for 'people are different'.
You might measure effort in, (aka hours) but not everyone's effort (time) is equal. You might measure value-add, but then nobody wants to do the hard trivial stuff (like docs.)
If it was me I'd likely just have 2 levels, "core" and "casual". With a relatively low barrier to being "core". All cores get the same, all casuals get the same.
Once you stray from "we all matter the same " you invite comparisons etc that will ultimately divide, not foster community.
If you raised enough to have people go full-time I'd add that as a layer above core.
I would not split it between the team. I would us it to hire individuals on the team on paid, scoped contracts with clear deliverables for work that hasn't been done yet. You can rotate who you hire as you get more funds.
Unfortunately it wouldn't be easy to actually calculate. The inputs to the formula are "how much of a donation would we have received counterfactually if the team had only included this subset of contributors" for all possible subsets of contributors. Though if it's a small number of contributors then you only have a 2^(small number) of counterfactuals to pull out of nowhere.
Here's a silly idea: take a sample of lines of code, for each line in the sample, remove the line. See how many tests fail as a result of the line being removed. shares++ to all users that come back with git blame entries on that line * how many tests fail when it's removed.
then normalize so all the users add up to 1, use that as your coefficient on disbursements.
Of course it's gameable, hopefully there's a BDFL to guard against test/commit stuffing or other bad faith things.
Figure out who needs the money. If no one needs it, funnel it to people who do. If everyone needs it ask everyone what they think is fair and start from that. Good luck.
Yes, if everyone isn't involved in arriving at the decision about what is fair, they won't feel that it's fair even if you come up with some brilliant objective measurement of contribution impact.
You might measure effort in, (aka hours) but not everyone's effort (time) is equal. You might measure value-add, but then nobody wants to do the hard trivial stuff (like docs.)
If it was me I'd likely just have 2 levels, "core" and "casual". With a relatively low barrier to being "core". All cores get the same, all casuals get the same.
Once you stray from "we all matter the same " you invite comparisons etc that will ultimately divide, not foster community.
If you raised enough to have people go full-time I'd add that as a layer above core.
Good luck, and well done on getting the funding.