Most businesses will use several units of measure, even if the belief that just one (pieces) is used.
Take purchases - you could order in the units you are comfortable with, and you receive goods in a different unit - for e.g., order in Pcs, receive in KG's. Similarly you could record sales in the units that your customer is comfortable with. The flexibility of this 'compound' unit of measures is to ensure that Tally.ERP 9 does not get in the way of your way of working. Like in the case of multi-currency, every quantity field is inherently multi-unit ready.
Some commodities, say cotton, have 'peculiar' problems - the unit of stock used for this commodity is 'bales', yet trade is in Kg's. With changes in weather, cotton looses or gains weight due to changes in moisture content. If you used Kg's for your records, you would loose the ability to manage stock count and stock take of bales; if you used bales, you would have a mismatch in the actual quantity transacted. This problem is compounded in real life – since each bale carries a different weight of cotton.
With Tally.ERP 9 you can manage all these, with the support for multiple units of measure. Now, you can record both units in transactions – Kg's and bales at the same time. Stock valuation will be done in Kg's; inventory count can be managed in bales!
You receive some supplies - the Invoice shows 5 Pcs. and the actual count shows 6 Pcs.! Were you to enter your receipt as 6 Pcs., there will be a mismatch with the voucher and physical document which will result in an audit objection. Entering as 5 Pcs. would mean that one piece is not recorded... Tally.ERP 9 supports 'actual' and 'billed' quantities - thus delinking the inventory count from the financial impact of the transaction. With this you can also receive and deliver free samples and manage the many variations that occur now and then.
Therefore compound units, alternate units and billed/actual quantities should deliver the capabilities needed for most, if not all, of your requirements.