Skip to content

Comment on Algorithmic Wage Discrimination (2023)parent

Comments

No, like, this is fucking different. Read the damn article. Like, get down to pages 42-46. I know it's a lot to read, it's a law review article, it's fine if you don't read it, but like "oh what is it getting at?" is something that you have to read the article to see.

So like, before the gig economy, yes, you might be juggling a job at McDonald's with another at Jo-Ann with a hardware store, and Jo-Ann called up at 7 and said you have to come in Or Else, and then you came in by 7:45 and they said "eh too many people showed up, nevermind" and you're up shit creek, so now you're poking by your McD's which could always use some extra help with the breakfast rush but wants you to clock out between 10:30 and 11:30 so you're having to call up the hardware store to see if you can get paid there.

That is bad, to be sure. You have to be playing all the angles, checking in with everybody, you have to hustle hard to make ends meet.

But according to this, your job at GigBurger is one where they say "hey if you can work for at least 6 hours today, we'll give you a big bonus," with the caveat that you are auto-clocked-out not just at 10:30 but whenever there's nobody in the checkout line or drive-thru, so that "6 hours minimum wage" has to be accumulated over 10 actual hours at work -- which is fine if you can get that bonus. But the shitty algorithmic part is that when you get the GigBurger App to rack up 5 hours of work, suddenly it says "oh shoot we're overbooked for your current GigBurger Restaurant, but you know there's a big surge in customer demand over on the other side of the city, go there and get 2x wages and you'll also make your last 1h for sure" and they are fuckin' lying to you and leading you to other overbooked GigBurgers in the hopes that they can run you back and forth across the city without paying you until they exhaust your desire for that last hour's work that would get you the bonus. And you have to be able to discern between actual surges and algorithmic lying to determine whether to attempt the journey across the city or just stay put and see if the GigBurger next door has someone clock out early.

The article clearly lays out why this is a difference in quality, not just quantity: it says that the default American story of "hard work and hustle will be rewarded", which you absolutely had in the "unpredictable schedules" world that you are talking about, shifts to one where the psychological story is that "GigBurger is a casino, roll the dice and hope to God that you get lucky today." Any individual unpredictable job might have been a casino, but you knew that your employers weren't all in cahoots to deprive you of a promised lucky payoff that was the only thing that made the job sorta worth it.

and they are fuckin' lying to you and leading you to other overbooked GigBurgers in the hopes that they can run you back and forth across the city without paying you until they exhaust your desire for that last hour's work that would get you the bonus

Doing this intentionally would require an implausible level of abject stupidity on the part of the people doing it. Anyone in a position to do this intentionally also knows that it would in fact be counter-productive.

I don't think it does. That is, the quasicode algorithm looks something like this:

    def fulfill_order(order):
        range = 3 * miles
        surge = 1
        workers = workers_in_range(order.location, range)
        while len(workers) == 0:
            range *= 2
            workers = workers_in_range(order.location, range)
            surge += 1
        if surge > 2:
            initiate_surge_pricing(order.location, surge)
        
        lowest_cost = min(w.cost for w in workers)
        workers = random.shuffle([w for w in workers if w.cost == lowest_cost])
        for w in workers:
            if worker.propose_order(order): 
                return order.assign_worker(worker)

        # if we're still here no worker has accepted the proposal
        order.raise_bonus()
        return defer_retry_order(order)
This does not read as incompetent pseudocode, to me! But it has the crucial problem.

Just to be clear about how the algorithm is lying, once you are near bonus and thus you're not in that lowest_cost bracket, you need an actual prediction of a place where demand is going to outstrip supply. The incentive system is reactive to actual demand and thus hopelessly noisy as a lagging prediction of demand, and it is being broadcast to try to manipulate driver behavior which means it also secretly forecasts a supply spike. So if we take it as 50% that the surge in demand is real and 50% that the added supply doesn't cover the added demand, then your actual number of surges you have to chase across the city is a geometric random variable with p=25%, and geometric random variables have the frustrating property of being memoryless like a good casino is: if you're exhausted after you've failed to make it after chasing 4 surges across the city, the expected number of surges you have to chase to get your bonus is, well, 4 more. And if you're at your wits' end after those 4 more, the expectation is, well, 4 more.

That sounds more like a poorly optimized, buggy and unbalanced algorithm.

Would it be fine if there's an algorithm that was able to more accurately predict that if you go to this location at those hours you would be able to make 1.5x more for the several few hours?

There's no reason an algorithm shouldn't be able to do that.

Or an algorithm where you can specify how many hours you plan to work and then it will provide what it calculates the most optimal path for you to take, where perhaps you can even use a slider to quickly test.

We could only know whether the algorithm is competent or incompetent, if we can see what it is and what it is optimizing for and how is it doing at that. Without transparency into GigBurger, you can't tell.

This was the nice thing about working for an MEP* subcontractor, I got to see the unions and the company teaming up, “look the margins are razor thin, we want to get home safe and make ends meet but not if it starves the company and we're all out of a job in 5-10 years.” And in that environment, every pipefitter could know that the algorithm isn't specifically screwing them over. The unions needed our explicit sign-off that our tech to help them track the status of their projects wasn't gonna be able to be used to track how much time their folks spent in the bathroom on a given day. But try telling Uber that they need a driver's union, see how far you get.

*Mechanical, Electrical, and Plumbing. I don't fully understand the contracts side but basically the general contractor will take a big construction job and the biggest margin, then subcontractors will design and do parts of the actual fabrication and installation.

Would it be fine if this algorithm had to be open source?

That sounds more like a poorly optimized, buggy and unbalanced algorithm.

An algorithm that intentionally sends you to different stores so you can't rack up the last requisite hour to make the bonus? Really?

What is the evidence that anyone is doing that intentionally?

Intent is immaterial

It's a hypothetical, sheesh. Did you read the comment?

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.