gratipay / gratipay.com

Here lieth a pioneer in open source sustainability. RIP
https://gratipay.news/the-end-cbfba8f50981
MIT License
1.12k stars 308 forks source link

bring back take-what-you-want #3433

Closed chadwhitacre closed 6 years ago

chadwhitacre commented 9 years ago

Reticketing from #3414 ...

We lost our team distribution algorithm in #3414. We should bring it back by upgrading transfer_takes to process_payroll in payday.py, but first we should ...

Notify

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

chadwhitacre commented 9 years ago

One way to address the question of the relationship between teams and their members would be to add a "percentage withholding" to the takes table, which only the team owner could set. On the one hand that would make it clear to team owners that this is something they need to think and decide about, but on the other it leaves it flexible in terms of specific arrangements. We can't wait to model all of the world's employment law before we re-release the payroll feature.

chadwhitacre commented 9 years ago

takes table

Erm, the payroll table, rather.

chadwhitacre commented 9 years ago

Setting to blocked on https://github.com/gratipay/inside.gratipay.com/issues/242.

chadwhitacre commented 9 years ago

It's a lot of overhead to set up a company, even if we can pull off "company as a service." We want to ensure that Teams on Gratipay create open work for people, but we don't want to overburden Teams that are just starting out. We should consider allowing Teams to receive up to a certain amount per week before requiring them to go through identity verification (#988) and turn on payroll. Maybe $1,000 per week?

chadwhitacre commented 8 years ago

+1 @josegonzalez at https://github.com/gratipay/team-review/issues/63#issuecomment-143322776:

How do I add users to the dokku team?

chadwhitacre commented 8 years ago

How do we bring back payroll?

chadwhitacre commented 8 years ago

screen shot 2015-11-19 at 1 59 15 pm

chadwhitacre commented 8 years ago

The deps for Payroll in that graph are just infosec and idv. How does Gratipay's own governance (https://github.com/gratipay/inside.gratipay.com/issues/72) relate to payroll?

chadwhitacre commented 8 years ago

https://github.com/gratipay/inside.gratipay.com/issues/402#issuecomment-158508184

Alright. We need payroll. Everything else hinges on that. Until we have payroll, we're vaporware. We're only half a product. Who needs another payments solution? There's gillions of those. But there's no other take-what-you-want payroll system: that's Gratipay. I can't pitch https://github.com/naspeh/mailur until we have payroll. Generalizing: we can't sell until we have payroll. How the heck are we gonna get back to payroll? Moving stream of consciousness over to gratipay/gratipay.com#3433 ... Ducking back out to ask: How does Gratipay's own governance (gratipay/inside.gratipay.com#72) relate to payroll? Payroll is about getting money to three groups of people:

  • draws to owners
  • wages/salary to staff
  • payments to independent contractors

The question of Gratipay's governance determines how Gratipay itself will use payroll. HOW DO WE BRING IT BACK!?!?!?!?!? We have to bring it back! Both in general—it's our core product!—and in particular—we have to pay ourselves! Teams on Gratipay have to be legal entities in order to use payroll. It honestly doesn't matter what kind. LLC, S, C, B, PBC, Ltd., Plc., etc., &c. Charitable or not. Fiscally sponsored or not. The real heart of the matter for Gratipay is that payroll has to tie to tax withholdings. We want to be agnostic about specific tax laws. We have to push that burden out to our customers. We have to go the Braintree route—bring-your-own [entity] at first, with an "easy" button later—instead of the Stripe route—"easy" button-only out of the gate. We have to go the BYOE route because we don't have the capital to go the Stripe route. So then payroll is an optional add-on for Teams? And it's pretty manual? Like, for each member you add to a Team, you set up some rule about withholding? Let's say for Gratipay we adopt some rule like, "We pay you as a contractor for up to 6 months if you're in the U.S. or 18 months if you're outside the U.S. After that we pay you as an owner." That gives @rohitpaulk et al. time to jump through the hoops of becoming a co-owner of a U.S.-domiciled cooperative. And they can still get paid in the mean time. (Perhaps we also have a dollar cap: 18 months or $18,000 or something like that. A Q for the Ls.) We add @rohitpaulk to the Gratipay Team with withholding of 0% (he's a contractor). After a year or whatever, he gets his paperwork all done and we can promote him to an owner (yay!). Now his withholding is set at 35%. Do we care to force Teams to use payroll? Do independent contractors still get to take-what-they-want?

chadwhitacre commented 8 years ago

I can't pitch https://github.com/naspeh/mailur until we have payroll. Do we care to force Teams to use payroll?

If we don't care to force Teams to use payroll, what's stopping me from pitching https://github.com/naspeh/mailur?

mattbk commented 8 years ago

If teams aren't forced to use Gratipayroll, does that affect requiring open work?

mattbk commented 8 years ago

If teams aren't forced to use Gratipayroll, does that affect requiring open work?

I guess not. NM.

chadwhitacre commented 8 years ago

@mattbk I think it does!

webmaven commented 8 years ago

@whit537:

I think it does!

Could you expand on that? It was my understanding that 'open work' included projects that did not intend to distribute funds to anyone but the maintainer/owner/'team of one', as long as there was a clear path for onboarding to the project through a CONTRIBUTING file or similar.

We don't intend to cause all teams on GP to context-switch to the extrinsic incentives of money, do we? I think that could backfire badly by crowding out the intrinsic incentives of the F/LOSS gift economy without replacing them with sufficient monetary compensation to make up the loss.

mattbk commented 8 years ago

@webmaven One of the requirements/TOS at the moment is that teams plan to use Gratipayroll once it comes back. Not sure if that relates.

I also don't know what you mean, @whit537.

webmaven commented 8 years ago

@mattbk:

One of the requirements/TOS at the moment is that teams plan to use Gratipayroll once it comes back.

Hmm, but that doesn't mean that a Gratipay team (in particular 'teams of one', but larger ones as well) must ever have more than just the owner on the payroll, does it? Regardless of how many team members there are, or how many contributors there are on Github (or elsewhere, for non-code projects)?

A quote from the paper at the link I included above:

The definition of what constitutes “small” and “large” incentives depends on the case, but the message seems to be clear: as Gneezy and Rustichini’s (2000a) title suggests, “Pay enough—or don’t pay at all.”

There is very likely a threshold amount below which distributing pay to team members will decrease their (and others') contribution of work to a project. I am uncertain to what extent this may be ameliorated by a user being a member of several teams, and receiving 'enough' in aggregate.

mattbk commented 8 years ago

Hmm, but that doesn't mean that a Gratipay team (in particular 'teams of one', but larger ones as well) must ever have more than just the owner on the payroll, does it?

I'm coming around to that idea; honestly I think that if I were to start receiving donations and had other contributors, Gratipay would be the easiest way to let them share in the spoils. I think that's what we should go for, anyway.

I'd like to see the sort of ecosystem develop where a ~user could be part of several teams (and own several teams), where everyone ends up receiving enough to make it worthwhile.

webmaven commented 8 years ago

@mattbk:

Gratipay would be the easiest way to let them share in the spoils.

Absolutely, as long as the spoils are enough to make sharing worthwhile. I don't know what the threshold is, but I imagine that a team where your share is $.01 a week will actually demotivate you relative to other teams where your share is larger.

I'd like to see the sort of ecosystem develop where a ~user could be part of several teams (and own several teams), where everyone ends up receiving enough to make it worthwhile.

Yes, only the tricky thing when money enters as an extrinsic motivator is that it displaces intrinsic motivations, and if the money isn't enough to make it worthwhile, we can see a net decrease in motivation.

In some ways, the original GitTip model sidestepped this brilliantly: not only didn't you know who was giving you money, but you also didn't know exactly what it was for (unless you were only doing one specific thing), so the aggregate could be quite motivating, even for the minor projects you were contributing to.

But now, many distinct projects will have distinct teams (so it will be clear which projects get more support than others), and team members will know how much they are getting from each team they are on (so it will be clear to them which efforts are being rewarded by how much).

This level of transparency has potential for good and ill. Meanwhile, only 'teams of one' will actually preserve the quality of 'thank you you for all you're doing, keep it up!', so I wouldn't be in any hurry to force people away from that model, unless the aggregate amount they are receiving makes it clear that spreading things around will have a net benefit (but I don't know where that threshold is, though I suspect it is likely somewhere between $2k-8k/month).

chadwhitacre commented 8 years ago

@webmaven The Gneezy paper assumes a principal-agent relationship in which the principal (Team owner) controls the money that the agent (Team member) receives. This is specifically what Gratipay's take-what-you-want payroll undercuts: now the agent controls how much they share in the spoils. That's how we get around the crowding-out problem.

It was my understanding that 'open work' included projects that did not intend to distribute funds to anyone but the maintainer/owner/'team of one'

The principal's (project's) intention is not determinative, because on Gratipay 2.0, the agent is the one empowered to initiate the work relationship.

chadwhitacre commented 8 years ago

If teams aren't forced to use Gratipayroll, does that affect requiring open work?

@mattbk I think you were right to flag the implication of what I was saying, "Do we care to force Teams to use payroll?" If we don't require Teams to use payroll, then we're not truly giving control to the agent (in Gneezy's parlance).

Over on Customers we say that:

  • Our primary customer is ~picard: the manager of an open company.
  • Our secondary customer is The Enterprise's customer: ~alice.
  • Our tertiary customer is The Enterprise's employee (contractor, agent, etc.): ~crusher.

customers

Now, ~crusher is Gneezy's agent. What we are really trying to build is an economy for ~crusher to plug into. The vision is for Crusher to visit Gratipay.com and find tens of thousands of open organizations with millions of dollars in unallocated wealth. Crusher goes shopping and picks an organization or eight to get involved with. Crusher is in charge of initiating each work relationship, how much she works for whom, and how much she takes.

We need Picards that buy into this vision. Our Picards need to be open to having Crusher initiate a work relationship with the Enterprise.

mattbk commented 8 years ago

We need Picards that buy into this vision. Our Picards need to be open to having Crusher initiate a work relationship with the Enterprise.

This needs to be spelled out rather than implied. It's up to Crusher to do the work, and up to Picard toallow Crisher to be part of The Enterprise. Crusher can take what he wants, but the allowance needs to be on Picard's part.

chadwhitacre commented 8 years ago

spelled out rather than implied

Proposal? I think we've been trying to do this. Let's keep trying! :-)

chadwhitacre commented 8 years ago

Crusher can take what he wants

s/he/she ;-)

https://en.wikipedia.org/wiki/Beverly_Crusher

beverlycrusher

chadwhitacre commented 8 years ago

It's up to Crusher to do the work, and up to Picard toallow Crusher to be part of The Enterprise.

This is the big psychological change with Gratipay 2.0. This is the essence of what we're about. We have to figure out how to communicate it in the simplest terms.

chadwhitacre commented 8 years ago

The next big step on this ticket in my thinking is a call with a lawyer. I met one, Eric Davis (on a ticket somewhere?), who claims extensive experience with worker-owned co-ops as well as tax law. I've emailed him once (cross-posted on a ticket somewhere). I have his business card in front of me and am planning to phone him next week. We've got to figure out the structure for Gratipay (https://github.com/gratipay/inside.gratipay.com/issues/242), write our operating agreement accordingly (https://github.com/gratipay/inside.gratipay.com/issues/72), and then bring back payroll for Gratipay only. Depending on the answer from Eric or whomever, we'll look at how to structure Teams so that everyone can participate in payroll.

We still need a vault (#3504) and idv (#2449, #3557), of course.

WE WILL DO THIS.*


* Lord willin' and the creek don't rise.

chadwhitacre commented 8 years ago
webmaven commented 8 years ago

@whit537

This is specifically what Gratipay's take-what-you-want payroll undercuts: now the agent controls how much they share in the spoils. That's how we get around the crowding-out problem.

Given that the agent's control is not absolute (for one thing, they can't take more 'spoils' than actually exist), and that while they may initiate the relationship, the owner must approve it (and in practice for many and perhaps most projects, acceptance onto a GP team may require some amount of uncompensated volunteer labor being done as a precondition), and since the summary paper I linked to cites other scenarios than just those that can be boiled down to Principal-Agent, I am not quite so sanguine.

However, if we do see a crowding out effect, there are hints of how we might attempt to fix it in that same paper, such as:

In one condition using subjects in Sweden, they offered $7 for donating blood; in another condition, they offered $7 with the option to donate the money to charity. Interestingly, they find evidence of a detrimental effect on blood donations of the payment without the charity option. [...] Consistent with the finding that incentives interact with individuals’ image motivation, blood supply goes back to “normal” in their study when the monetary incentive is combined with an option to donate to charity.

chadwhitacre commented 8 years ago

Gosh. @mitar bringing up Open Collective has me thinking about openly compensating voluntary capital in addition to voluntary labor. We've been paying a lot of attention to bringing back payroll in the context of compensating labor. But what about compensating capital? We're thinking about whether capital has a role in building Gratipay itself (certainly Patreon and now Open Collective benefit from capital, seemingly at our expense). Would we need take-what-you-want payrollouts in order to bring in capital the way we want?

If we don't implement compensating voluntary capital as part of this ticket, then let's be sure to reticket.

chadwhitacre commented 8 years ago

If we don't implement compensating voluntary capital as part of this ticket, then let's be sure to reticket.

Reticketed as #3908.

chadwhitacre commented 8 years ago

Thinking more about what we need to do to make this happen:

  1. Collect and verify personal identity information for individuals, both Team owners and Team members.
  2. Collect and verify legal entity information for Teams (sole proprietorship, partnership, etc.).
  3. Reimplement member adding and team takes during payroll
    • explore "equal split" in addition to "take-what-you-want"
    • other tweaks
chadwhitacre commented 8 years ago

Let's find the MVP in there that allows the Gratipay Team to fulfill its own tax reporting obligations (cf. https://github.com/gratipay/inside.gratipay.com/issues/242) from within Gratipay itself (no out-of-band information handling).

chadwhitacre commented 8 years ago

Let's find the MVP in there that allows the Gratipay Team to fulfill its own tax reporting obligations (cf. gratipay/inside.gratipay.com#242) from within Gratipay itself (no out-of-band information handling).

I suppose this is a question for our accountant.

chadwhitacre commented 8 years ago

To: CPA Subject: info required for non-U.S. contractors?

We've got some contractors in India, Pakistan, Europe, and other parts of the world. What are my tax obligations and what are theirs? What info do I need to collect from them and what forms do I need to file?

chadwhitacre commented 8 years ago

As to tax obligations for other countries and contractor payments, it will depend on the tax treaties the US has in place with those countries. I know that for India, any contractor you pay direct to India and who will not step onto US soil in the next 12 months for longer than a few weeks, has no US obligation for payments they receive. Meaning, they report this income to their home country and you do not report anything on a 1099 to them since they do not have a US tax ID.

I am not sure on the other countries as there are many differences. I can research Pakistan but I would need to know specific countries within the EU.

chadwhitacre commented 8 years ago

Alright, cool! So basically we'll have the accountant give us an answer for each jurisdiction. What jurisdictions do we need in order to relaunch payroll for Gratipay?

Who am I missing? Speak up! :-)

chadwhitacre commented 8 years ago

Thinking more about what we need to do to make this happen:

We don't need (2) for a Gratipay MVP (we already know our own legal entity information ;). We do need (1), for the U.S. folks and perhaps others depending on tax treaties.

chadwhitacre commented 8 years ago

Thanks, Peter. After double-checking, we actually don't need Europe right now. To start with, besides India, let's look at Pakistan, Belarus, and Trinidad. We also have contractors in the U.S.

What do we do with me? I'm the sole owner of the LLC. How do you recommend we handle payments from Gratipay to me?

chadwhitacre commented 8 years ago

Give me a bit of time on Belarus and Trinidad.

As for yourself, you report total income less expenses. If you are able to pay yourself, it is either coming from the company profits, or you are repaying personal loans you made to pay for things for the company.

So there are no ‘payments’ from the company to you. You report the net taxable income for the company and pay tax on that.


Okay, I was under the impression that I could optionally structure payments as W-2 up to market rate. Perhaps that applies to a multi-member LLC?


What you are describing is only if Gratipay were a corporation and only inasmuch as cash flow would permit.

Compensation in a multi-member LLC is a little different as members do show compensation for services. But the net taxable income is still passing through onto their personal returns in proportion to ownership.


Gotcha, thanks.

Pretty sure the LLC can elect to be taxed as a corporation, but no need to muddy the waters at this point.

mattbk commented 8 years ago

Does Gratipay have an EIN of its own?

chadwhitacre commented 8 years ago

@mattbk Yes!

mattbk commented 8 years ago

My small business (not my day job) pays me and my business partner a salary, out of which is retained the normal payroll taxes, and at the end of the year we get W-2s. We also paid an employee last year, as well as a few independent contractors. So it seems weird that another entity with an EIN wouldn't operate in a similar way.

We're not an LLC, though, and I'm sure Gratipay's CPA has a better grasp on the structure than I do. We also have to fill out corporate income taxes, which is weird since we're a (state) nonprofit. Glad I have a CPA of my own to help me out with this stuff, because it's clear as mud to me.

chadwhitacre commented 8 years ago

We're not an LLC, though

Yeah, that's the difference. By default, LLC's are treated as pass-throughs for federal tax purposes (i.e., either a sole proprietorship or a partnership). Having an EIN means Gratipay, LLC can employ others, but doesn't affect how owners (i.e., moi) are treated.

mattbk commented 8 years ago

Setting to blocked on gratipay/inside.gratipay.com#242.

gratipay/inside.gratipay.com#242 is closed now (🎉); what else is blocking this (large and unwieldy) issue?

chadwhitacre commented 8 years ago

Now we're blocked on https://github.com/gratipay/inside.gratipay.com/issues/214 and then we'll be blocked on https://github.com/gratipay/inside.gratipay.com/issues/256 and https://github.com/gratipay/gratipay.com/issues/2449.

chadwhitacre commented 8 years ago

:weary:

mattbk commented 8 years ago

🐢

chadwhitacre commented 8 years ago

:checkered_flag:                                                                                                                                                               🐢

chadwhitacre commented 8 years ago

+1 from @PeterDaveHello at https://github.com/gratipay/team-review/issues/86#issuecomment-195766440.

PeterDaveHello commented 8 years ago

:+1:

chadwhitacre commented 8 years ago

We're scoping this down to just Team Gratipay + 6 ~users (https://github.com/gratipay/inside.gratipay.com/issues/569#issuecomment-210073291).

Now we're blocked on gratipay/inside.gratipay.com#214

By agreement of the 6 ~users (https://github.com/gratipay/gratipay.com/issues/3504#issuecomment-210168086), we're no longer blocking this on PCI self-assessment.

and then we'll be blocked on gratipay/inside.gratipay.com#256 and #2449.

We know the six, so we're also shedding programmatic id verification.

Unblocked!