In my opinion, the Elite Dangerous market system is broken, and the recent change to how mined commodities are priced has made it even worse. One of the main problems is that - unlike reality - real people cannot trade with each other, only with the stations. What has happened is that real people do trade with each other, via a barter system: "I'll drop x tons of A if you'll drop me y tons of B"
It's time it was all fixed.
What I propose is that ED introduce a proper, formal stockmarket system. The electronic stockmarket system is quite simple and very powerful, and will allow anybody - player or NPC - to trade with anyone else. Here's how it works:
Buying:
1. A CMDR docks at a station, and wants to buy commodity X. Instead of a single market with a single supply quantity and price for each commodity, each station faction will have their own market with their own stock and their own price, plus there will be commodities that CMDRs have put up for sale. The purchasing CMDR may simply place a Buy order for n tons of X at a maximum price of y and a maximum duration of z, or the CMDR may specify that he wants to limit his purchases to some subset of the sellers offering X. Why might he want to do this? Because purchasing from a minor faction will increase that faction's influence, and the CMDR may want to support or oppose certain factions.
2. Having placed a Buy order, the order may be filled instantly if one of the entities from which he is willing to purchase has sufficient stock of X on-station. Otherwise, if all the ordered stock is not on-hand, he may be willing to take a partial fulfilment if that is possible, or he may have specified all-or-nothing. In any case, if the order cannot be fulfilled (because the stock is not available, or the offered price is too low), it should persist in the system until it expires, and should be visible to anyone - whether CMDR or NPC - as an order requiring fulfilment, much like a source and return mission, except that the price offered may be below market value, so let the seller beware. If any person or NPC decides that they need the money and have the goods, they can fulfil the order, up to the time at which it expires.
3. If the buyer is not on-station when the order is fulfilled, the goods are held in storage by the station (by the controlling faction) until collected... for a fee, chargeable per ton per day. If the fee goes unpaid for more than a certain time, the goods may be seized as unclaimed and on-sold by the controlling faction, with the profits less brokerage fees and any unpaid storage fees credited to the buyer.
Selling:
A CMDR docks at a station and wants to sell n tons of commodity X, at a minimum price of y per ton. Instead of a single market with a single price, demand and selling price per commodity, each faction will have their own, as will CMDRs, as above. If the CMDR has more X than is required by all the unfulfilled Buy orders for X at that station (for the entities that the CMDR is willing to deal with, or vice versa) at the minimum sale price he has specified, then that CMDR will be unable to sell part or any of his supply of X unless he reduces his price to below the maximum purchase price of the Buy orders... or he may be unable to sell immediately at any price.
If a Sell order cannot be fulfilled immediately, the CMDR may choose to leave his cargo at the station - for a fee per ton per day - until the cargo is sold or the Sell order expires. If sold, the station/controlling faction deducts brokerage fees and storage fees before crediting the CMDR's account. If the Sell order expires, the goods continue to be stored until the storage fees have gone unpaid for a certain amount of time... you get the picture as per an uncollected delayed purchase.
Storage:
Required for this system is the concept of storage. CMDR's or anyone else may store commodities in a station. Each station has a finite amount of storage space, and as that storage space is consumed, the amount charged for storage will increase, and the station's patience with unpaid storage accounts will decrease, thus increasing the rate at which cargoes will be removed from storage.
Order Matching:
This system requires automated order matching. As the broker (the station/controlling faction) is paid a percentage based on the sale price, it is in the broker's interest to maximise the sale price. This is achieved by sorting the Sell orders and Buy orders from high to low, and for each Sell order (starting with the highest value), finding the highest Buy order where the max buy value is greater than the min sell, and applying the max buy price of the next lowest Buy +1 Cr. Some Sell orders may be asking too much, and will go unfulfilled.
Also implicit is the concept on an average max buy or min sell... so in order to meet the order, multiple other orders may be matched, and it may be necessary to Buy over the next lowest Buy's max +1 in order to make the sale with lower Buys, so that the average Buy price of all involved Buys will match the min sell.
This may sound complex to develop... but a mission system already exists, and this could easily tap into that as a 3rd type of mission on top of the existing Passenger and Other mission types. As a professional software developer, I would be quite capable of coding this myself.
It's time it was all fixed.
What I propose is that ED introduce a proper, formal stockmarket system. The electronic stockmarket system is quite simple and very powerful, and will allow anybody - player or NPC - to trade with anyone else. Here's how it works:
Buying:
1. A CMDR docks at a station, and wants to buy commodity X. Instead of a single market with a single supply quantity and price for each commodity, each station faction will have their own market with their own stock and their own price, plus there will be commodities that CMDRs have put up for sale. The purchasing CMDR may simply place a Buy order for n tons of X at a maximum price of y and a maximum duration of z, or the CMDR may specify that he wants to limit his purchases to some subset of the sellers offering X. Why might he want to do this? Because purchasing from a minor faction will increase that faction's influence, and the CMDR may want to support or oppose certain factions.
2. Having placed a Buy order, the order may be filled instantly if one of the entities from which he is willing to purchase has sufficient stock of X on-station. Otherwise, if all the ordered stock is not on-hand, he may be willing to take a partial fulfilment if that is possible, or he may have specified all-or-nothing. In any case, if the order cannot be fulfilled (because the stock is not available, or the offered price is too low), it should persist in the system until it expires, and should be visible to anyone - whether CMDR or NPC - as an order requiring fulfilment, much like a source and return mission, except that the price offered may be below market value, so let the seller beware. If any person or NPC decides that they need the money and have the goods, they can fulfil the order, up to the time at which it expires.
3. If the buyer is not on-station when the order is fulfilled, the goods are held in storage by the station (by the controlling faction) until collected... for a fee, chargeable per ton per day. If the fee goes unpaid for more than a certain time, the goods may be seized as unclaimed and on-sold by the controlling faction, with the profits less brokerage fees and any unpaid storage fees credited to the buyer.
Selling:
A CMDR docks at a station and wants to sell n tons of commodity X, at a minimum price of y per ton. Instead of a single market with a single price, demand and selling price per commodity, each faction will have their own, as will CMDRs, as above. If the CMDR has more X than is required by all the unfulfilled Buy orders for X at that station (for the entities that the CMDR is willing to deal with, or vice versa) at the minimum sale price he has specified, then that CMDR will be unable to sell part or any of his supply of X unless he reduces his price to below the maximum purchase price of the Buy orders... or he may be unable to sell immediately at any price.
If a Sell order cannot be fulfilled immediately, the CMDR may choose to leave his cargo at the station - for a fee per ton per day - until the cargo is sold or the Sell order expires. If sold, the station/controlling faction deducts brokerage fees and storage fees before crediting the CMDR's account. If the Sell order expires, the goods continue to be stored until the storage fees have gone unpaid for a certain amount of time... you get the picture as per an uncollected delayed purchase.
Storage:
Required for this system is the concept of storage. CMDR's or anyone else may store commodities in a station. Each station has a finite amount of storage space, and as that storage space is consumed, the amount charged for storage will increase, and the station's patience with unpaid storage accounts will decrease, thus increasing the rate at which cargoes will be removed from storage.
Order Matching:
This system requires automated order matching. As the broker (the station/controlling faction) is paid a percentage based on the sale price, it is in the broker's interest to maximise the sale price. This is achieved by sorting the Sell orders and Buy orders from high to low, and for each Sell order (starting with the highest value), finding the highest Buy order where the max buy value is greater than the min sell, and applying the max buy price of the next lowest Buy +1 Cr. Some Sell orders may be asking too much, and will go unfulfilled.
Also implicit is the concept on an average max buy or min sell... so in order to meet the order, multiple other orders may be matched, and it may be necessary to Buy over the next lowest Buy's max +1 in order to make the sale with lower Buys, so that the average Buy price of all involved Buys will match the min sell.
This may sound complex to develop... but a mission system already exists, and this could easily tap into that as a 3rd type of mission on top of the existing Passenger and Other mission types. As a professional software developer, I would be quite capable of coding this myself.