Proposal for modifying gnucash to use exact quantities
Tue, 25 Jul 2000 15:53:05 -0500
On Tue, 25 Jul 2000, John Hasler wrote:
> The pump knows that 1.699 * gallons = total sale, anyway.
> IMHO transaction_total != price * quantity.
> Rather, transaction_total = f(price, quantity)
> where transaction_total is an integer,
> price and quantity are reals, and
Actually, price is a rational and quantity is an integer.
(At least in the pumps that I helped program)
The metering of the delivery was done by a positive displacement pump which
delivered a fixed amount on each stroke. We measured the amount delivered in
pump strokes and converted the display to milli-gallons for the volume and
cents for the transaction amount.
> f() is a nonlinear (though usually monotonic) function. transaction_total
> is the amount that you are obligated to pay or have the right to receive,
> and it is what the accountants want us to keep exact track of.
> Quantity is an inventory control matter and not expected to be exact.
That really depends upon the "packaging" of the item and the value of a
distinguishable package. If I am repackaging the material for sale, there is
often some inexactness in the process. A box of 100 steel machine screws may
actually end up with 101 of them. But if it is a bottle of prescription
drugs, there better be exactly 100. The difference is that it is cheaper to
give away a screw at $0.002 than it is to accurately count them.
And I can be reasonably sure that I would not receive either 19 or 21 "747"s
when I pay for exactly 20.
> Price and f() are part of your contract with the other party and so are
> legal matters. Only transaction_total is really accounting.
Agreed. Although pricing and valuation are related to the transactions,
the fundamental bookkeeping entry is that a quantity of an item is moved on
the books (widgets-on-hand --> widgets-sold) and associated with that, there
are other quantities also moved (gross-sales --> cash-in-bank),
(cost-of-manufactured-inventory --> cost-of-goods-sold), etc.