Up to version 7.0, the inventory valuation methods available as standard were standard costing and moving average. Those two are the common methods that most ERP systems support.
In 8.0 the inventory features were substantially reworked, and a real cost option ("Real Price") has been added alongside those. Briefly, real cost works by holding the unit price at receipt on each individual quant ("Quants") and recognising cost of goods sold at that unit price when the goods ship. The total valuation of the quants therefore agrees with the inventory account balance in the accounts.
You can set removal strategies such as FIFO (first in, first out), LIFO (last in, first out) and FEFO (first expiry, first out) on a product category, so the mechanism covers most of the inventory valuation requirements that come up.
Up to 7.0 there was in fact no concept of a quant: current stock quantities were derived by accumulating the history of past receipts and deliveries. That made the logic complicated and the performance poor whenever we added some small piece of stock-related functionality. Adding the concept of a quant resolved both problems and made this area considerably easier to extend.
We once spent several million yen building a real cost inventory valuation mechanism into a commercial ERP we used to work with. In Odoo it comes as standard, and it is free to use — which, with the passage of time, is where you feel how good open source is.
Inventory valuation methods you can use in Odoo