In economics and mechanism design, a cost-sharing mechanism is a process by which several agents decide on the scope of a public product or service, and how much each agent should pay for it. Cost-sharing is easy when the marginal cost is constant: in this case, each agent who wants the service just pays its marginal cost. Cost-sharing becomes more interesting when the marginal cost is not constant. With increasing marginal costs, the agents impose a negative externality on each other; with decreasing marginal costs, the agents impose a positive externality on each other (see example below). The goal of a cost-sharing mechanism is to divide this externality among the agents.
There are various cost-sharing mechanisms, depending on the type of product/service and the type of cost-function.
In this setting,[1] several agents share a production technology. They have to decide how much to produce and how to share the cost of production.The technology has increasing marginal cost - the more is produced, the harder it becomes to produce more units (i.e., the cost is a convex function of the demand).
An example cost-function is:
So if there are three agents whose demands are 3 and 6 and 10, then the total cost is $100.
A cost-sharing problem is defined by the following functions, where i is an agent and Q is a quantity of the product:
A solution to a cost-sharing problem is defined by a payment
Pay(i)
\sumiPay(i)=Cost(D)
D:=\sumiDemand(i)
Several cost-sharing solutions have been proposed.
In the literature on cost pricing of a regulated monopoly,[2] [3] it is common to assume that each agent should pay its average cost, i.e.:
Pay(i)=Cost(D) ⋅ Demand(i)/D
This cost-sharing method has several advantages:
However, it has a disadvantage:
This is a measure of fairness: no agent should suffer too much from the negative externality. In the above example, the agent with demand 3 can claim that, if all other agents were as modest as he is, there would have been no negative externality and each agent would have paid only $1 per unit, so he should not have to pay more than this.
In marginal cost-sharing, the payment of each agent depends on his demand and on the marginal cost in the current production-state:
Pay(i)=Demand(i) ⋅ Cost'(D)+{1\overn}(Cost(D)-D ⋅ Cost'(D))
This method guarantees that an agents pays at most its unanimous cost - the cost he would have paid if all other agents had the same demand.
However, an agent might pay less than its stand-alone cost. In the above example, the agent with demand 3 pays nothing (in some cases it is even possible that an agent pays negative value).
Serial cost-sharing[1] can be described as the result of the following process.
So, if the agents are ordered in ascending order of demand:
{Cost(n ⋅ Demand(1))\overn}
{Cost(n ⋅ Demand(1))\overn}
{Cost(Demand(1)+(n-1)Demand(2))-Cost(n ⋅ Demand(1))\overn-1}
This method guarantees that each agent pays at least its stand-alone cost and at most its unanimous cost.
However, it is not immune to splitting or merging of agents, or to transfer of input and output between agents. Hence, it makes sense only when such transfers are impossible (for example, with cable TV or telephone services).
In this setting,[6] there is a binary service - each agent is either served or is not served. The cost of the service is higher when more agents are served, but the marginal cost is smaller than when serving each agent individually (i.e., the cost is a submodular set function). As a typical example, consider two agents, Alice and George, who live near a water-source, with the following distances:
Suppose that each kilometer of water-pipe costs $1000. We have the following options:
The choice between these four options should depend on the valuations of the agents - how much each of them is willing to pay for being connected to the water-source.
The goal is to find a truthful mechanism that will induce the agents to reveal their true willingness-to-pay.
A cost-sharing problem is defined by the following functions, where i is an agent and S is a subset of agents:
A solution to a cost-sharing problem is defined by:
Pay(i)
A solution can be characterized by:
Surplus:=\sumi\inPay(i)-Cost(S)
Welfare:=\sumi\inValue(i)-Cost(S)
It is impossible to attain truthfulness, budget-balance and efficiency simultaneously; therefore, there are two classes of truthful mechanisms:
A budget-balanced cost-sharing mechanism can be defined by a function Payment(i,S) - the payment that agent i has to pay when the subset of served agents is S. This function should satisfy the following two properties:
\forallS:\sumi\inPayment(i,S)=Cost(S)
T\supseteqS\impliesPayment(i,T)\leqPayment(i,S)
For any such function, a cost-sharing problem with submodular costs can be solved by the following tatonnement process:[6]
Note that, by the population-monotonicity property, the price always increases when people leave S. Therefore, an agent will never want to return to S, so the mechanism is truthful (the process is similar to an English auction). In addition to truthfulness, the mechanism has the following merits:
Moreover, any mechanism satisfying budget-balance, no-positive-transfers, individual-rationality, consumer-sovereignty and group-strategyproofness can be derived in this way using an appropriate Payment function.[6]
The mechanism can select the Payment function in order to attain such goals as fairness or efficiency. When agents have equal apriori rights, some reasonable payment functions are:
The above cost-sharing mechanisms are not efficient - they do not always select the allocation with the highest social welfare. But, when the payment function is selected to be the Shapley value, the loss of welfare is minimized.[6]
A different class of cost-sharing mechanisms are the VCG mechanisms. A VCG mechanism always selects the socially-optimal allocation - the allocation that maximizes the total utility of the served agents minus the cost of serving them. Then, each agent receives the welfare of the other agents, and pays an amount that depends only on the valuations of the other agents. Moreover, all VCG mechanisms satisfy the consumer-sovereignty property.
There is a single VCG mechanism which also satisfies the requirements of no-positive-transfers and individual-rationality - it is the Marginal Cost Pricing mechanism.[6] This is a special VCG mechanism in which each non-served agent pays nothing, and each served agent pays:
Pay(i)=Value(i)-[Welfare(All)-Welfare(All\setminus\{i\})]
The problem with this mechanism is that it is not budget-balanced - it runs a deficit. Consider the above water-pipe example, and suppose both Alice and George value the service as $10000. When only Alice is served, the welfare is 10000-8000=2000; when only George is served; the welfare is 10000-7000=3000; when both are served, the welfare is 10000+10000-9000=11000. Therefore, the Marginal Cost Pricing mechanism selects to serve both agents. George pays 10000-(11000-2000)=1000 and Alice pays 10000-(11000-3000)=2000. The total payment is only 3000, which is less than the total cost of 9000.
Moreover, the VCG mechanism is not group-strategyproof: an agent can help other agents by raising his valuation, without harming himself.[6]