One of my potential customers is operating an open market in their town.
From what I'm told, they make a decent profit by renting out the individual locations on that market to small merchants who come there every day to sell produce and other goods you normally find in such places.
Each merchant needs to pay some fixed amount up front to receive a seasonal contract that grants them the right to sell their goods on the market during given season.
The contract does not, however, specify at which micro-location the merchant will be stationed, or indeed, on which days they will be present. The only thing the contract grants them, is the right to sell certain types of goods and during which season.
For each day that they are actually present on the market, a cashier comes to their spot and collects the daily rent for that spot.
Now, certain micro-locations have more traffic than others, so there is bound to be some competition. Which is good, normally. Established merchants wish to retain their spot so their loyal customers can find them.
The problem is that the existing "mechanism" of reservation is basically first-come, first-(re)served. In reality, this means at around 02:00 AM, merchants start appearing and placing all their stuff on their sweet spots in order to prevent others from doing the same. At times, competition can be quite literal. Things escalated into a physical altercation a couple of times in the past, so an overseer is now required to be present during the night before busiest days of the season.
The customer has now asked me to come up with a software-based solution for this problem. An idea for a web and/or mobile app has been tossed around, but whatever the form, it would have to support the following features:
- merchant authentication,
- selection of a preferred micro-location for the next day,
- advance payment of the daily rent via some online method.
While I was reading through the requirements, one thing immediately jumped out at me: I cannot possibly do this in an app form! Here's what I think it will happen, if I do anyway:
In the first days and weeks, merchants that know about and use the app, will have an unfair advantage over merchants that don't. It would be easy to assume this problem will self-correct quickly enough, but it would be a wrong assumption, IMHO. Many of the small merchants are in reality older, computer-illiterate people.
Imagine a kind, old lady selling flowers, for example. She will never use the app, because it's space technology to her. But she will continue to show up at 02:00 AM and happily place her flowers on the same spot as the day before. Only to learn 4 hours later that someone else had already reserved and payed for that spot yesterday, from their home, using a computer!
How is she to compete with that?
But things don't end here... Let's assume that, somehow, she does learn to use the app (or gets someone else do do it for her, which is more likely). Now, everyone is using the app to reserve their spot. Fast forward a couple of weeks, and this is what we get:
Joe S. Merchant logs into the app at 05:10 PM, 10 minutes after the reservations for the next day have opened. To his surprise, almost all the spots have already been taken, including his usual one. Now he can either hope someone will not show up so he can take their spot at the last minute, or he can accept he's been too late and he lost a whole business day because of this confounded computer thing!
Naturally, I've explained my views to the customer... And they agree it's a problem. They wouldn't want to make a bad situation worse just to have a more convenient way of collecting daily rent.
We both believe the present system could stand improvement. The basis of present system is competition and that is probably here to stay. The problem is that currently the competition is directly based on physical effort (i.e. how early a person is willing to wake up and travel to the market place to get the spot). This effort is in turn a natural limiting factor on the (un)fairness of the whole competition.
By introducing ANY software substitute, this key factor is effectively gone! It reduces the problem to who is faster in the first minutes when reservations start. There's no real effort involved anymore which automatically appears unfair!
So we feel like the rules have to be adjusted somehow. We've tossed around some ideas that could make the online competition more fair. Ideas like:
1. Building a reputation based system
This one brings in a lot of extra complexity, not to mention responsibility of tracking and assessing the various factors that contribute to reputation score. Most of these cannot be automated which means they would incur extra cost to the customer.
2. Randomizing the start of each day's reservation window
This one has the potential of lessening the competition pressure in the first minutes of the reservation window, giving it an appearance of being more fair. Yet, I fear it would only annoy the merchants.
What both me and my customer agree about, is that we absolutely CANNOT implement a reservation mechanism based on bidding. That would be in violation of financial laws the customer's company must abide by which call for a fixed rent in this situation.
I refuse to believe that the best solution is the one that presently exists, even if merchants are used to coming in at 02:00 AM and waiting 4 hours for the market to actually open.
I turn to this community to ask: How can I earnestly better the present system with a software component? What options am I missing?