WorkNet simulations

WorkNet is a small Python3 simulation, that runs a simulation and emulates some of the dynamics of gig economy, where Participants bid for Stints. It’s totally unscientic and just a toy that I like to develop.

How I visualize this is a sort of spider web. There are the Agents who are looking for Stints. Stints are externally generated, in the beginning: they appear from ‘nowhere’. A Stint means a chore of length N rounds. In the beginning the Stints may just be say, 5 rounds long each. The price that an agent gets for completing the Stint is that which the winning bidder agent has set forth. So on each round, there’s a bidding process.


In the beginning, with first version of Worknet, all agents are equal. They do not have skill differences. Thus the lowest bidder wins. However since the agents at first do not have any recollection of market knowledge, they will bid randomly between 10 and 100 units of money.

In real world counterpart, you could think of the Participants being… graphics artists, developers, whatever. They have skills, a market view, and they do decisions. Oh yeah – as told already, the Participants do things called Stints!

The Stints flow

Stints flow to the graph, and at some point they also leave the Graph. They leave the graph either Completed or Uncompleted. Those Stints that receive zero bids, leave Uncompleted. You get the idea 😉

Advanced feature: capability to Multitask

Stints that receive at least 1 bid get (eventually) Completed. When a Stint is completed, the Agent that took the Stint, gets Price amount of money. The agent is “occupied” (a state for agent) on rounds that it decides to allocate for doing work. Each 1 round in the simulation gets 1 piece of the Stint done.

This means that some Stints, whose completion schedule is relaxed, enables agents also to be available and Bid for new Stints while engaged with an ongoing Stint. In the naive first MVP version of WorkNet, a switch from one Stint to another does not

The graph receives External Stints. These are work chores to be done. (No one knows what this mystical ether is that brings in the Stints) However, what happens next, might be really interesting: the Participants in the graph evaluate offerings; what would be the price for the Stint, how likely the Stint could be done successfully, and so on. After some evaluation the Graph essentially rejects or accepts the Stint. One of the Participants in the Graph takes in the Stint and starts working on it.

A bid takes place after evaluation. Client (the Stint supplier) gets bid from all participating (interested) Participants. Client chooses one to do the work. A contract is agreed: price and latest round of delivery (meaning which round # the work shall be handed over latest).

This document tells about the parts which help us implement the engine (code). WorkNet’s purpose is to simulate a hybrid virtual/bricknmortar work environment.

Questions that can be researched in WorkNet simulation are:

  • how do WorkNet graphs “mature” in terms of income distribution?
  • how does the bidding evolve during time?
  • what happens when Participants start sub-contracting and doing Stints in piecewise manner?
  • what are effects of loss-leader strategies of a single Participant on the other Participants?
  • what are the characteristic of Graph of an efficient work handling?
  • does close price range competition (bid spread is small) have some kind of special effect on output parameters of the completed Stints?
  • what kind of benefits a high “market view” score of Participant bring?

Connectivity graph

  • simply defines post-hoc the Stint association (who did a Stint)
  • market view is defined also by visibility attribute of participants
  • needs elaboration to make code possible


An ‘agent’, or Participant is basically workforce in the Worknet. Agents receive Stints from the market, and agents may have properties such as cash balance. The cash balance determines part of the bidding behavior of an agent. A cash-strapped (low on cash) agent wants to take Stints no matter the costs; they are more desperate. Whereas the better off agents may be more picky about the relative profit they will be making from a Stint.

What is “Market view” of an Agent?

The market exists, even without Participants’ knowledge of the full market data. This is akin to real world economics. Regardless of how perfect our capability to understand what is going on in trade, we can participate in it: buy and sell stuff. Market view however can be extremely valuable to have.

For Participant, having a good market view enables to be pickier in a sense: you can avoid taking Stints, which would most likely lead to a high opportunity cost, or adverse effects on your Review score.

Question: does high average market view lead to Pareto conditions in terms of the whole market activities? Or does the high average market view benefit Participants / some other parties only?

Opportunity cost is not a parameter per se, in the simulation, but rather a concept. It means, by Wikipedia: “an opportunity cost of a particular activity option is the loss of value or benefit that would be incurred (the cost) by engaging in that activity, relative to engaging in an alternative activity offering a higher return in value or benefit.”

When you don’t know of better, you settle for worse. That is basically what market view can bring to table, for a Participant.

An actor (Participant of Graph) does work. The quality is evaluated by code – Quality score comes from a function that takes many things into account. Quality determines two factors:

  • for client, it determines their reputation score change on the instance
  • for Actor, the review (appraisal) received by Client is passed on to the Actor
  • client gets a Review score
  • Quality ranges from

Real-world considerations: bid price spread

We mentioned earlier the question of an effect of small spread in the offered Bid prices. How would it have an effect? Competition can be said to be tougher, when the price spread gets narrower. We can say that it’s a “close call” for the second best, who didn’t win the stint…

Closed bidding makes feedback less accurate. The bid participants only get a ‘yes’ / ‘no’ feedack – that is, they

So bid spread shape probably by itself does not have an effect on outcomes of client choice. If the decision strategy of the Client is to always prefer lowest price, the spread shape doesn’t matter; it’s always the lowest that wins, no matter how “close” the second best offering is. Of course, this is all code and can be altered: our WorkNet by its very definitions decides what will be the simulation mechanism of a Client choosing a Provider. In real world, there are probably at least half a dozen things that affect choices – and it has to do a lot with psychology of marketing and sales.

Leave a Reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: