Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Account for purchasing power disparities #36

Open
chadwhitacre opened this issue Aug 5, 2024 · 29 comments
Open

Account for purchasing power disparities #36

chadwhitacre opened this issue Aug 5, 2024 · 29 comments

Comments

@chadwhitacre
Copy link
Contributor

The Pledge is starting with a US-centric approach, focusing primarily on US tech companies and anchoring on $2,000 per FTE dev per year as our minimum.

How should we think about adapting the Pledge to other markets and economies?

Here's how Gumroad does it.

Here's a pretty standard cost-of-living comparison website.

If we define different baselines for different markets, companies with subsidiaries in multiple markets could report based on the most favorable. But the whole thing is based on good-faith self-reporting, so probably don't need to overthink it.

@vladh
Copy link
Member

vladh commented Aug 5, 2024

The Gumroad approach looks good. We can always do it on an application basis. When people submit a PR to add themselves as a member, they can say they would like a PPP adjustment, and we ask them to promise they're not claiming the adjustment unfairly (whatever that means).

@Delta456
Copy link

Delta456 commented Aug 5, 2024

There's also an approach where we can contact several countries' FOSS foundations where they can partner and help us with purchasing power disparities.

Maybe related to #37

@chadwhitacre
Copy link
Contributor Author

Oooh, good call @Delta456.

@voxpelli
Copy link

Not sure that purchasing power disparity is the only aspect needed when adapting this for a more global scope.

Eg. Europe doesn't differ a lot in that aspect, but it differs a lot when it comes to eg. taxes – something I wrote up some thoughts on a couple of years ago.

One could base pledging on a percentage of the development cost / developer salaries.

According to average salary for software developer in the US the $2000 would match ≈1.5%


What to base salary / development cost on is tricky though – eg. in Sweden the cost of an employee is:

  • Salary pre-tax (on which one pays ≈30% in tax)
  • Payroll tax ("Arbetsgivaravgifter", an additional ≈30% paid by the employer on top of the salary, pays for lots of insurances etc)
  • Additional pension and insurances as outlined in collective agreements or employment agreement

In USA one needs to pay more of the insurances out of ones own pocket, so salary is higher than in Sweden, but in Sweden eg, the payroll tax and collective agreements has already paid for lots of insurances that one would otherwise need to pay for personally, so comparing salary to salary is not an apple to apple comparison – cost is better then.


We had a similar question brought up for Collective Funds Guidelines, asking whether the compensation rate should be adapted for purchase power parity – but that becomes even trickier – should OSS contribute to a developer in San Fransisco and one in Kiev being compensated differently? What is the more "correct" way?

From that point of view, donating different amounts from different parts of the world would essentially mean that some people would donate less hours per employee than others, which probably isn't a fair way to frame it, but still an interesting perspective to keep in mind.

@vladh
Copy link
Member

vladh commented Oct 9, 2024

@voxpelli It sounds like you're saying that:

  • Purchasing power parity, in the basket of goods calculation, is not a reliable measure
  • Salaries differ a lot from country to country
  • Nevertheless, the difference between salaries in two countries are not a sufficiently accurate adjustment factor, because employees in different countries have different costs that must be paid out of their net salary (ie even after employer taxes)

Do you think the differences yielded by a cost of living calculator are a better measure?

Cost of Living Including Rent in Stockholm is 39.8% lower than in San Francisco, CA

Note the difference to the PPP figure:

Local Purchasing Power in Stockholm is 25.0% lower than in San Francisco, CA

But also, note that health insurance is not included. Nevertheless, perhaps this is good enough?

@vladh
Copy link
Member

vladh commented Oct 9, 2024

Even if we find the best figure above, there's an additional problem.

Companies might be incorporated in different countries, with different costs of living. Even if we assume good-faith reporting, I think this should be addressed. I used to run a company that was incorporated in Switzerland, the Netherlands, and Romania. The majority of our income came from the Netherlands, but the majority of our employees were in Romania. This would have given us a huge discount on the Pledge amount, and I don't think that would be fair.

Here's an idea: companies should report in the country (1) that they're incorporated in, and (2) have at least one employee in, (3) with the highest cost of living.

Too demanding? I don't know. Sloshing money around for big discounts is a big thing.

@voxpelli
Copy link

voxpelli commented Oct 9, 2024

I think cost of ownership has the same problems, since in Sweden one has insurances from the government that one in the US one needs to pay for oneself – especially if eg self-employed

I think it could be good to look at prior art and if such prior art is lacking, if this is the very fight that this pledge want to embrace or whether the fight to get companies to pay could be hindered by introducing a complexity in calculating the “right” amount of money to pay.

Does eg OSS foundations typically have PPP adjusted membership tiers? Does any have it?

Some base costs on the profit or turnover of a company. That’s in a way fair as well. If you come from a profitable high margin industry, pay more, if you come from a less profitable low margin industry, pay less.

All in all: It will be extremely hard or even impossible to make an objectively fair adjusted rate, so the fairest may be to just acknowledge that it’s a fixed rate for everyone and that it may be unfair to some and emphasize that it’s simply a floor and that those who can do more are encouraged to do more.

@vladh
Copy link
Member

vladh commented Oct 9, 2024

Hmm, I think we might be going about this the wrong way.

My Reasoning

The Pledge is $2000 per FTE per year. Employees in different countries have different salary ranges. But why does this matter? The employees aren't paying the maintainers, the company is.

The apt question here seems to be: do companies in different countries have different abilities to make the $2000 ask, based on their being in that country, all other things being equal?

I think the answer is “no” most of the time. Most successful tech companies are going to sell their products and services to international customers. Of course, they will often still pay their employees a local market rate salary, because that's the accepted norm. But for the most part, if I'm building eg a SaaS platform, my revenue is not reduced just by virtue of me being in Romania as opposed to the UK.

Of course, for some companies, the answer will be “yes”. I think this mainly applies to companies who sell their products and services mostly to local customers, in which case their income will be dictated by the country they live in.

My Proposal

Because of this, I suggest keeping the $2000 amount for all companies worldwide. I think this will, in most cases, be fair, because most tech companies' income does not significantly depend on their location. This will leave out companies whose income does significantly depend on their location. For those companies, we can have a “reasonable adjustment” process — companies that cannot afford to pay the $2000 for reasons such as their location/PPP/etc can write us with an explanation, and we will offer them membership in exchange for less than $2000. The amount can be calculated on a case-by-case basis based on their circumstances. And, for transparency, we publish these reasonable adjustments to the company's profile, along with our rationale for the calculated amount. We can make this process very easy for companies that need reasonable adjustments, and I think it's very unlikely for companies to unfairly claim an adjustment, seeing as the details would be public.

What do you think, @chadwhitacre @voxpelli and others?

@eddieajau
Copy link

@vladh thinking out loud. My assumption is that Sentry has tried to pick a figure that, firstly, is a reasonable figure to donate, but secondly, a reasonable figure to recognise that you are giving that.

Hopefully this is not culturally controversial, but the pledge for NATO countries is a percentage of GDP, but not all countries meet that pledge, yet are still part of NATO.

Pulling that thread, can we say that the recommendation, the ideal for the Open Source Pledge is USD2,000, but we will also recognise your pledges (you will make the list of companies or individuals that care) down to an equivalent value of, what, say USD500 per developer. Worth considering???

So, if I'm a sole developer, and my business is paying me USD50K per year, the minimum is 1% of that. For my reference, that's AUD75K which would be the low end of the range for a developer.

I'd hate to see this over-complicated but something like "Per developer USD500 minimum, USD2,000 recommended" should be tenable, no? Or in even simpler terms, about 1% of the base salaries of your developers with a minimum of USD500 per developer.

Thanks in advance for your thoughtful consideration.

@vladh
Copy link
Member

vladh commented Oct 14, 2024

Thanks @eddieajau! I think there are two thoughts there. The first thought is setting $2000 per dev as the recommended amount, but a lower amount as the minimum amount. I don't think we should bring the minimum below $2000 per dev, because we want to encourage more money getting to maintainers. I think $2000 per dev is not a big ask considering that, by making these payments, companies are also making an investment they will get future value out of 12, and also considering just how much (monetary) value the Open Source ecosystem brings to these companies 3.

The second thought is to make the minimum amount not a hard figure, but a percentage. Now, when it comes to literally making it a percentage of the average employee's salary, I think the issue there is that it introduces some additional friction and accounting that would probably dissuade some companies from joining, which would get less money to developers. But I think something like that might be worth exploring, where we are open to making reasonable adjustments based on companies' individual situations, when this is necessary, eg because of the question this issue is trying to address, PPP. So I refer back to my proposal above.

Footnotes

  1. https://vladh.net/the-philosophy-of-the-open-source-pledge/

  2. Find the right verb #173

  3. “It's time to fix open source”, Theo - t3․gg

@HassanAlthaf
Copy link

HassanAlthaf commented Oct 14, 2024

I strongly believe that instead of justifying $2,000 per year globally suggesting that a company's clientele could be global or local does not make sense. Let me tell you why.

For an OpenSourcePlege to make a significant impact, a wider net of companies is needed to join. While some companies would pay out $250k USD/year on average to each developer, somewhere in Asia the average could be $6k USD/year (which is very normal where I'm from). Regardless of the company's revenue streams and percentages, associating an amount to an employee head-count would be a significant increase in cost (as opposed to a lot of companies in the US, where $2,000 would be significantly lower as a percentage of what their average developer gets paid). Justifying this in a board meeting for a Chief Technology Officer/Technical Leadership to business people would be tough.

I honestly feel like there should be a website where anyone could donate any amount, and the website/agency would look at open source software projects that need funding (or take into account the donators preference) and direct funds there. That would make a bigger impact.

@vladh
Copy link
Member

vladh commented Oct 14, 2024

Hi @HassanAlthaf! Sorry, but I haven't quite managed to follow your argument.

Regardless of the company's revenue streams and percentages, associating an amount to an employee head-count would be a significant increase in cost (as opposed to a lot of companies in the US, where $2,000 would be significantly lower as a percentage of what their average developer gets paid). Justifying this in a board meeting for a Chief Technology Officer/Technical Leadership to business people would be tough.

It sounds like you're saying that, if we ask both a US company and a Romanian1 company to pay maintainers $2000 per dev per year, but the US company pays devs $200k per year, and the Romanian company pays devs $20k per year, the Romanian company will feel that this cost is excessive.

I agree — this is what my proposal is supposed to solve by adding case-by-case reasonable adjustments, so that the Romanian company is able to pay less.

I think it's important to point out that the company will feel that the cost is excessive not because of how much they pay developers. The developers' salaries are ultimately completely irrelevant. A Romanian company might think that $2000/dev is too much simply because the company makes less money than a comparable US company.

associating an amount to an employee head-count

It doesn't seem to me like the fact that the amount is per developer is itself the issue — surely what companies care about is the final amount they need to pay to maintainers.

I strongly believe that (...) suggesting that a company's clientele could be global or local does not make sense.

I don't understand this. Doesn't your example show that there is a difference between international and local rates that companies charge? If the US company and the Romanian company had the same customers and charged the same rates, they would have the same income. But they do not have the same income. So they most likely have different customers and charge different rates. Which they do — a software development rate in Romania is different to an analogous rate in the US.

I honestly feel like there should be a website where anyone could donate any amount, and the website/agency would look at open source software projects that need funding (or take into account the donators preference) and direct funds there. That would make a bigger impact.

This sounds a lot like thanks.dev, no? I think it's better for companies to pay the maintainers of software that they actually use and receive value from, rather than having a service arbitrarily decide (according to what criteria?) who should get paid. And this is what the Pledge encourages.

Footnotes

  1. I am using Romania as an example because it's a country whose rates I'm familiar with.

@HassanAlthaf
Copy link

HassanAlthaf commented Oct 14, 2024

@vladh My last point is towards this message of yours: #36 (comment)

Also, I was just sharing my thoughts/thinking out loud. Not presenting an argument.

@captn3m0
Copy link

captn3m0 commented Oct 15, 2024

👋 from India 🇮🇳.

Instead of considering PPP, I think it might be better to embrace "Median Software Developer Salary" as a rough guide instead. As it stands, $2000/yr/developer is the same as asking a company in USA to "pay for one-open-source-developer-per-40-developers, assuming the $80k/yr/developer median salary. Or in other words - 2.5% of your developer-expenses.

We could go by the one-open-source-developer-for-every-40 metric in other places as well, so that in India, with a median salary of 700,000 INR ($8300), you get to a figure of 17500INR/developer/yr ($200). We could also consider it as "1/40th of software engineering salary expenses", but I'm not sure if companies are willing to disclose that.

Related: I raised a discussion about this issue on the FOSSUnited forums to find more viewpoints from India. FOSSUnited is India's largest FOSS community, which started a pledge initiative of its own a few years ago: https://archive.fossunited.org/foss-pledge. That did get some traction, but it wasn't binding, and it didn't push for monetary contributions.

@vladh
Copy link
Member

vladh commented Oct 15, 2024

Hi @captn3m0, thank you for this suggestion!

There are two issues I can see here. First of all, the issue we talked about above regarding companies incorporated in multiple jurisdictions. Which jurisdiction would such companies report in? If it's the most favourable jurisdiction, I think this is overly permissive, because a company that's earning a lot of money in eg the US but has a single employee in Romania could pay the rate for Romania, as in my example above. If it's the least favourable jurisdiction, I think companies will object to this and we'll get a lot of friction and discussions.

Secondly, even if we were to take the median developer salary, how are we going to know what that is? I haven't found a reliable source for median developer salaries for all countries, so if someone wants to become a member and they're in a country we don't have data for, what do we do then?

For these reasons, I refer back to my reasonable adjustments proposal.

@captn3m0
Copy link

I'm unsure about anything that involves administrative overhead from our end. Any processes that are "case-by-case" should be an exception, and not the norm,

If we want thousands of companies to join over the next few years, we want to reduce the barriers to entry. If there exists an adjustment process, companies will try to game it, irrespective of the adjustment being public knowledge. In the worst case, their adjustment gets denied, and they can then decide to either pay the full amount, or not pay at all. There's no downside to applying for an adjustment and getting denied.

The easier it is for a company to figure out what their obligations are (minimum/suggested amount), the easier it is to convince the stakeholders/decision-makers.

  1. Median Income Data: We can decide on some source for a given country, they aren't perfect, but these can improve over time. We can add a clause about corrections to these not being retroactive, and sending a heads-up to impacted organizations over time. More importantly, adding a single-country solves for many companies, avoiding the "case-by-case" problem.
  2. "Jurisdiction" problem is not cleanly solvable as long as we're deciding on the number of developers, IMO. If we're trying to avoid such loopholes, it would be better to base it on the "revenue/profit-per-developer" metric, but that has other issues. My suggestion would be to just base it on the developer-jurisdiction, and not worry too much about it.

Relying on the "per-developer" criteria is a good - it bases the expectations on "how much a company is spending in development costs" (which isn't perfect), and sets a clear "overhead" of how much of that should go towards Open-Source.

If a company is hiring developers internationally, we should let them use the numbers they prefer, as long as they are actually paying developers there, since it will still represent a 2.5% addition on top of their development expense. The self-reporting form could just be:

Country Number of Developers Median Income Minumum Contribution per developer Planned Contribution
US 2 80,000 2000 4000
India 5 8000 200 1000
Minimum 7 - - 5000

We should have a calculator that can ask companies about their developer numbers, and give them a generated template to use for their self-reporting.

@captn3m0
Copy link

To carry the one-open-source-developer-for-every-forty metric even forward - another figure to target might be "the average salary of a global-open-source-developer" for every-forty-developers. You can define the weighted-average-maintainer via reports such as the Octoverse, using maintainers/contributors instead of users.

But I feel "where your-developers-are" is a cleaner and easier-to-explain metric.

@vladh
Copy link
Member

vladh commented Oct 15, 2024

Thanks for this, the suggestion on splitting up the amount based on the developers employed in each jurisdiction is helpful. There are still a couple of things I'm not sure about.

First of all, before we adopt this kind of solution, I think we need to have some certainty that we can, in fact, find developer salary data for a wide range of countries without great effort. Perhaps someone has compiled this somewhere. I'm sure that we can easily find this data for the US, India, the UK, and so on. Can we find it for Romania, Lithuania, or the Philippines? I'm not sure. Anyway, I'm sympathetic to your point about reducing administrative overhead, but finding all this data and keeping it up to date for every country seems like a lot of work.

Secondly, I'm worried that focusing on the median developer salary will make the numbers much more difficult to understand. I think a large part of why the Pledge is low-friction today is that the amount is $2000/dev, and it's that simple. I know you're retroactively matched our $2000 to a median salary of $80,000. But what if this median salary changes? Will our amount be $2177 next year? Will the amount for every country change each year?

I understand what you're saying about administrative overhead on our side. But I'm worried that it might be way more administrative overhead to have to deal with and explain all of these numbers for every member, rather than make it $2000/dev for 90% of members, then deal with reasonable adjustments for 10%. Of course, this is based on my assumption that a small amount of members will claim reasonable adjustments. You seem to think that the number of members claiming adjustment will be greater. It's difficult to know which one of us has the more accurate impression. But I do think we can do quite a lot of heavy lifting with wording etc in order to minimise the number of people who game the system.

@captn3m0
Copy link

Agree on everything you've said. Let me do some research on Median Income numbers and get back on that.

@Delta456
Copy link

@vladh @chadwhitacre I believe now it is the time to bring back weekly calls.

@vladh
Copy link
Member

vladh commented Oct 15, 2024

Can do, will defer to @chadwhitacre on the scheduling.

@eddieajau
Copy link

@vladh thanks for your reply.

I don't think we should bring the minimum below $2000 per dev, because we want to encourage more money getting to maintainers.

I agree we want to encourage more money to devs (notwithstanding how to make that fair, but that's a different rabbit hole). I was coming from the solo/small/medium business angle where I can't afford 2000/dev/year, but I can afford 500/dev/year and I would like to be recognised for that.

@eddieajau
Copy link

@captn3m0

I'm unsure about anything that involves administrative overhead from our end. Any processes that are "case-by-case" should be an exception, and not the norm,

I agree. The best part is no part :)

The self-reporting form could just be ...

I like that a lot.

@chadwhitacre
Copy link
Contributor Author

I'm not keeping up with all of the discussion here but wanted to note https://steamdb.info/ as an example implementation that someone put on my radar yesterday.

@vladh
Copy link
Member

vladh commented Oct 16, 2024

Looks like Steam uses a basket-of-goods approach with entertainment prices weighted more heavily 1. So, similar to Numbeo.

Footnotes

  1. https://partner.steamgames.com/doc/store/pricing

@dcramer
Copy link
Contributor

dcramer commented Oct 16, 2024

I want to make sure everyones aligned on two points:

  1. The goal of the pledge is substantial impact. Cost-adjusting donations with parity will not be able to achieve that. For example, contrasting a 500k/year eng to a 50k/year an eng, we do not want someone pledging $200/year per dev as it will achieve no tangible impact in the industry.

  2. The $ figure is actually not based on employee salaries, and is instead an abstraction we created around Sentry's own revenue. Originally we wanted to say "1% of revenue" but that would require disclosing revenue which a company will not do. We basically took that concept and built the abstraction for per employee cost.

I'm not suggesting we dont try to find a path to involve more people, but (1) is extremely important to consider here. ThIs isn'ta bout maximizing every company on here at low $ figures, but maximizing total $ contributed. Same conversation happens with 10k+ employee companies where its hard for them to secure a $2k/person budget, and they'd love to join for less, but we're unwavering there.

It might be just worth thinking about this problem in a different light. Are there actually technology businesses that can't afford 2k/month/dev to join? Are we actually just talking about individuals vs companies where the challenge is?

(we can move this to a new ticket) Something thats been on my mind is the concept of allowing individuals to be recognized in some way within the pledge at a lower contribution rate or some other mechanism. Not saying we should, but theres a lot of interest from solo devs or similar. It doesn't hit (1) if that is what this program becomes though. We want to generate say $100mm+ for open source devs annually, and you won't get there with small donation amounts or a sparse selection of individual donations.

@vladh
Copy link
Member

vladh commented Oct 16, 2024

Agreeing with @dcramer here.

In particular, replying to @eddieajau:

I agree we want to encourage more money to devs (notwithstanding how to make that fair, but that's a different rabbit hole). I was coming from the solo/small/medium business angle where I can't afford 2000/dev/year, but I can afford 500/dev/year and I would like to be recognised for that.

I totally understand where this is coming from, and I get the desire to be recognised. But the aim of the Pledge is not to recognise as many companies as possible. It's to get as much money to Open Source maintainers as possible. If we lower the amount whenever someone can't afford it, we will end up in a race to the bottom, and fail to make an impact.

@eddieajau
Copy link

@vladh

But the aim of the Pledge is not to recognise as many companies as possible. It's to get as much money to Open Source maintainers as possible.

I understand. I think the distribution model is the bigger (scarier) problem to solve. Perhaps we just say that 2K is one variable (a working figure) that we can keep constant while the shape of the whole system comes together. Agree to park PPP "for now" and then come back to it when we actually know what the lifecycle of a donated dollar looks like.

@chadwhitacre
Copy link
Contributor Author

Interesting discussion on this topic also happening over here:

https://forum.fossunited.org/t/open-source-pledge-india-edition/4171/5

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: No status
Development

No branches or pull requests

8 participants