There appears to be at least two issues, both bugs.
"Inventory Valuation" reports quants and which location they are currently in. "Inventory at Date" reports moves and which location they moved in and out of, if they are "inward" or "outward".
Problem 1: "Inventory at Date" effectively finds internal moves, but "Inventory Valuation" does not.
eg. Order 5 and receive to "Stock". Both reports list 5 at stock. Move 5 from "Stock" to "Stock / Shelf 1". Report 1 says 5 at "Stock / Shelf 1", report 2 says 5 at "Stock".
Problem 2: If a pack operation mismatches the stock move, then they think said items are at different places. This is a biggie for my thinking, especially since base Odoo allows the following bad data to arise.
eg. Order 5 to be received to "Stock". Before receiving, click the pencil icon and change the "pack" operations to receive to a different location "Stock / Shelf 1". Report 1 says 5 at "Stock / Shelf 1" and report 2 says 5 at "Stock". Now the two are out of sync, and availability / OH checks for various processes and procurements, depending on which they look at, are screwed and inconsistent....
I am facing something similarly weird, and is, that qty_available does not reflect quants sum.
I have same problem in v12 and you know why?