andythenorth wrote:How would this best be achieved - both conceptually, and in the implementation?
This might seem radical or it might not but here it goes.
Allow the player to charge for demand. That is, allow the player to determine cargo payment rates.
Now this would work differently for industry and passengers.
For industries it would work something like this:
First thing first get rid of station ratings. Instead of that in the Station GUI for a station that accepts a certain good, the player will be able to set the amount of money to receive in exchange for the good. The higher you charge the less will be demanded.
In a monopoly situation this will be all about hitting
demand elasticity. i.e finding the price at which P*Q is maximized.
Now every industry type can have its own demand curve for cargoes and can be easily calculated. For example
P = -3Q + 10,000 = A generic equation for an incredibly simple demand curve.
Q = (10,000 - P) /3
Here the player will set P at lets say $20 and Q will equal 3326. Thus 3326 units (per month that is) of the Cargo will be demanded at price $20 and assuming the player can deliver all of it he will receive $66,533.
Now there are two "problems" or objections one can have with this approach.
The first objection would be why would anyone ever go over the price hitting elasticity? I mean everyone will have figured it out on openttdcoop and posted spreadsheets online so it will be just like having static cargo payments again.
Well lets see.
In the above given example the intercept on the Q axis is at 3334 units of cargo. This means the midpoint is at Q = 1667 and at this point P = $4999 Which yields a Revenue of P*Q = $8,333,333 (Sorry about the weird numbers.)
This is the largest amount you can get with a single one of these hypothetical demanders.
So why would you set a price higher than $6667? Well If you're delivering below the demanded amount of units a month then its to your advantage to set the price higher even if it means that the hypothetical maximum you could earn at that price is lower.
So if you're delivering 300 units of cargo it makes the most sense for you to keep raising the price till only 300 units are demanded. In this case that will be $9100/unit earning you $2,730,000 a month compared to charging the elastic price and getting $1,499,700
Of course you have all the incentive in the world to get cargo delivered up until that magic number of 1667 units a month as this gives you maximum revenue. This will often mean being forced to deliver from longer distances as one nearby source isn't enough to hit the quantity at elasticity. Whether or not the higher revenue will be able to generate a higher profit depends on the costs of delivery. This will be up to the player to calculate. However the incentive of higher revenues the more he delivers will
A)Make the player want to deliver from longer distances.
B)Make the player prefer nearby industries to those far away
The Second objection is why would anyone want to go under the price at elasticity? Why would anyone ever want to charge less than $4999. You will notice that even at $4990 Q goes up only to 1670 and total revenue is only $8,333,300 which is $33 less than that at the higher price!
Well the answer to this objection is competition.
With this sort of model competition becomes really dog eat dog. Simply put if one player is making a 20% profit margin on a particular route then another player has the incentive to replicate that route exactly and just charge less. Sure he won't be getting a monopoly price but at least he'll be making profits. This will bid prices down severely till the quantity demanded cannot be satisfied by the current state of supply. (disclaimer: the demand curve would actually be hyperbolical not linear, I just did linear for ease of maths)
This is the incentive to charge less than the monopoly price. The non-monopoly price

imo, this would also make competitive play a lot more fun
Now a third even more tenuous objection might be "But the player shouldn't be able to influence the deals between suppliers and demanders"
This objection can only be asked if you don't understand exactly what I'm proposing. Ok, here it is assumed that all suppliers are in perfect competition. That is all coal producers charge $300/unit of coal. So when the demander is deciding where to get the coal from or how much to get the only variations in price are the cost of transport you attribute to them. So the only difference between coal from coal mine X and coal from coal mine Y is the amount $300 + $the_amount_you_charge.
Now if anyone has actually bothered reading this I think you'd agree that this is the best way conceptually to achieve
What is needed is a solution that addresses the *true problem*: some players think (reasonably) that industries should 'prefer' cargos from nearby sources.
Therefore we should simply make industries 'prefer' cargos from nearby sources.
That.
And if you don't agree tell me and tell me why. I'll be glad to hear
