Truly "Rounding" is "revealing the nearest number with reduced decimal places to the given (source) one". Both "Half-up" and "Half-down" give the nearest result, but "Half-up" is the standard.
Example for numbers: "20.215", "20.21501" and "20.21499", rounding to cents - 2 decimal places.
Half-up:
round(20.215) = 20.22, not 20.21
checking: (20.22-20.215)=0.005 equals to (20.215-20.21)=0.005
round(20.21501) = 20.22, not 20.21
checking: (20.22-20.21501)=0.00499 less than (20.21501-20.21)=0.00501
round(20.21499) = 20.21, not 20.22
checking: (20.21499-20.21)=0.00499 less than (20.22-20.21499)=0.00501
Half-down:
round(20.215) = 20.21, not 20.22
checking: (20.215-20.21)=0.005 equals to (20.22-20.215)=0.005
round(20.21501) = 20.22, not 20.21
checking: (20.22-20.21501)=0.00499 less than (20.21501-20.21)=0.00501
round(20.21499) = 20.21, not 20.22
checking: (20.21499-20.21)=0.00499 less than (20.22-20.21499)=0.00501
They like to introduce new methods in the financial sphere, including rounding. Method "CELL" is useful to make a "cent discount". Make sure about sales tax calculation rules in your country. If before rounding you have to rip decimal places to 3, then "half-down" of "20.21501" gives "20.215"->"20.21", so you save a cent. If you have to always round up all fractions after 2 decimal places, then "half-up" of "20.21499" gives "20.215"->"20.22", so you lose a cent. Because of it, Beigesoft™ EIS allows you to change the tax amount in any invoice.
If you have a choice between a standard thing and a new one, then you should better select the standard one to avoid problems.
Here is used the most natural FIFO method. It's easy to understand and make it by computer. It's hard to make and track it by hand, unless you sell a few items per day. The average method is suitable when making it by hand i.e. without a computer. The LIFO is a little bit bizarre (it's hard to track) and it's lawless in many countries.
When we use items and make COGS entries, then we often face rounding errors. For example 120 eggs for 20 USD, price (rounded)=0.17USD, so withdrawal 119 eggs * 0.17USD = 20.23USD, that is no good. In old "Beige Accounting" you should use more decimal places for cost (price) to reduce the rounding error, and yet, a little rounding error (the rest) might occur in the "Inventory" assets account. That is price(cost) = 0.1667 * 120 = 20.00, so there is no remaining "the rest" in this and most cases. New COGS withdrawal algorithm allows to use the same precision (decimal places) for cost as price without any problem, the equation is:
IF items left - quantity != 0 THEN amount to withdrawal = round(total left / items left * quantity, price decimal places)
IF items left - quantity == 0 THEN amount to withdrawal = total left
e.g. 119 eggs to withdrawal, items left = 120, total left = 20, price decimal places = 2, so:
amount to withdrawal = round (20 / 120 * 119, 2) = 19.83
after that items left = 1, total left = 0.17
the rest 1 egg:
amount to withdrawal = total left = 0.17
To check this, just create a new test purchase (6 eggs for 4.29USD total) and one test sale for 96 eggs.
The "Purchase#1" (that was made before) has the rest of the eggs - 94 eggs for 15.66 USD: