 # Simulating Socialism (3): Valuation

Published in Theory on 21.06.2019

by Jan Philipp Dapprich

This is the third part of my series “Simulating Socialism” (Part 1, Part 2) in which I give an outline of my simulation of a socialist economy. In the previous parts we saw what the overarching structure of the simulation is and how an optimal production plan is determined using linear programming. In this part we will see how linear programming can be used to determine what I call mathematically derived valuations (MDVs). MDVs are meant to represent the opportunity cost of a consumer product. In other words, they give the answer to the question “How much other stuff could be produced if we had to produce one unit less of this?”. A comparison of clearing prices and MDVs is then used to adapt the planning target, to ensure that consumer products are produced at adequate proportions. More on this in a later post. Since this is currently the only purpose of valuation, it is not necessary to calculate values for non-consumer products.

## How MDVs are calculated

The question “How much other stuff could be produced if we had to produce one unit less of this?” can be answered by considering what would happen if the resources involved in that production were freed up. How many more consumer products could be produced at the proportions specified by the plan target with those resources available? We can measure this as an increase in plan fulfilment, or in other words an increase in the objective function of the linear programming problem. This increase is then recorded as the MDV for the according consumer product. This is done separately for each consumer product by considering how plan fulfilment would increase if the resources for one unit of that product were freed up. Let us see how this works in practice by calculating the MDV of bread in the sample economy we saw in part 2.

Tables 1 and 2 are the input and output tables for the economy respectively. These show the various available production methods, their required inputs and what and how much they produce. In a later post we will consider examples where there is more than one production method for the same product, but in this very basic economy there is only one way to produce each kind of item. The first thing we will have to do is determine how much could be produced at the proportions specified by the plan target with available resources. The only resource we have to consider in this case is labour, because all other resources are assumed to be produced within the same planning period (see part 2). We will assume that there are 1000 units of labour available. Using lp_solve we find that the optimal production plan for the plan target (see table 3) produces 1161.26 units of corn, the output of which serves at the objective function. Note that this doesn’t include the corn which is used for baking bread, only the corn which is directly made available to consumers. Since the proportions specified by the plan target are maintained, this also means that approximately 1355 units of coal and 1935 units of bread are produced for consumers under the optimal production plan.

When we include the ‘one free bread’ method, lp_solve finds that this increases the value of the objective function (i.e. the output of corn for consumers) by 0.19. So, the overall corn supply for consumers would be increased from 1161.26 to 1161.45. An increase at the proportions specified in the plan target for the other consumer goods would also follow, but we use the increase in corn supply as a measure for valuation. So, the (unadjusted) value of one unit of bread would be 0.19. Values are later adjusted to make them more comparable to prices, as we will see in an upcoming part of this series. In the same way that we have calculated the value of one unit of bread, we can also find the MDVs for other consumer goods by including methods that yield one free unit of the according product and observing how this increases the value of the objective function. When doing this we will find that the value of one unit of corn is 0.31 and the value of one unit of coal is 0.32. This tell us that the marginal opportunity cost for producing one unit of corn or coal is much higher than the marginal opportunity cost for producing one unit of bread.

The main disadvantage of this method of calculating MDVs is that it requires solving a linear programming problem for every consumer product in order to determine the corresponding value. This significantly increases the computing time needed for economies with large product diversity. Possible solutions to this are finding more efficient optimal planning methods than linear programming (something that Paul Cockshott has been working on), reducing the frequency at which values are recalculated, aggregating similar products in the same category, or finding a completely different method of valuation which yields comparable results.

## Alternative Labour Value Model

To compare the model of socialism based on MDVs to the original ‘Towards a New Socialism’ model by Paul Cockshott and Allin Cottrell, I’ve created an alternative version of the simulation which uses labour values. These are calculated using the Marxist labour theory of value. Each product has the value of all material inputs required, plus any direct labour needed in the production process. In cases where there is more than one method for producing a product, we take the societal average. The optimal production plan calculated by `lp_solve` will specify the intensity at which the various methods will be used, which allows us to determine the overall resources and labour used in the production of one type of consumer good and the overall amount of that good produced. From this we can calculate the average resource usage per unit of product when the optimal production plan is implemented.

Calculating the labour values on this basis requires us to solve a system of linear equalities. This is easily done using the NumPy library for Python. The only condition is that there mustn’t be any production methods that have more than one output, as this may lead to linear dependencies which would make it impossible to solve for the labour values. Since in our example this isn’t the case, we find that the labour values for corn, coal and bread are given by 0.27, 0.27 and 0.16 respectively. In relative terms, this is basically identical to the MDVs. But we will see in a future post that this is not always the case, demonstrating that labour values cannot necessarily be used as a proxy for opportunity cost as defined by the MDV method.

## Appendix

Inputs Farming Coal Mining Iron mining Baking
Corn 2 0 0 5
Coal 1.05 1.1 3 1
Iron 1.09 2 1.2 0
Labour 2 3 1.3 2.1

Table 1: Input table based on a small sample economy devised by W.P. Cockshott.

Outputs Farming Coal Mining Iron mining Baking
Corn 11 0 0 0
Coal 0 13 0 0
Iron 0 0 17 0

Table 2: Output table complementing table 1.

Target 6 7 0 10

Table 3: Target vector complementing tables 1 and 2.

Inputs Farming Coal Mining Iron mining Baking Free Bread
Corn 2 0 0 5 0
Coal 1.05 1.1 3 1 0
Iron 1.09 2 1.2 0 0
Bread 0 0 0 0 0
Labour 2 3 1.3 2.1 0

Table 4: Input table with hypothetical free production method used for valuation of bread

Outputs Farming Coal Mining Iron mining Baking Free Bread
Corn 11 0 0 0 0
Coal 0 13 0 0 0
Iron 0 0 17 0 0
Bread 0 0 0 23 1

Table 5: Output table complementing table 4.