ONLY MAKE CHANGES TO THE STOCK FILE ALLOCATED QUANTITY WHEN YOU ASK IT TO "FIX" AND NOT WHEN YOU ASK IT TO "VALIDATE-ONLY" AND ALWAYS PRODUCT A REPORT FOR EITHER OPTION.
By way of detailed explanation, yesterday I was advised to run Balance Ledgers by Sage Support because a customer had some stock items that showed a Free Stock quantity that was wrong (too high) but when they went to adjust it using Write Off or Add Stock the free stock quantity shown was correct within that form (a lower value in this case). There were no SOP allocations or orders so something else had to be involved in the calculation.
I ran Balance Ledgers and asked it to Validate and Report, which it did and said "no errors" hence clicking the Print button didn't produce anything in the spooler. I then decided to check the stock item again before proceeding to run this again and ask it to "fix" any problems and to my amazement the stock item was now correct! However because there was no report I had no proof of what I had actually done (did I inadvertently choose the "correct errors" option?)
I spoke to Sage Support this morning and the explanation was that there is an "allocated stock" table that's used as a temporary table to allocate on the fly as orders are entered and that if the SQL database connection times out or the PC crashes for example then these entries can get left behind so "IT ALWAYS CLEARS THIS TABLE", which is why you should only run as a single user. All of which makes sense except that now the free stock on the item is the wrong, higher value. But, there is no trail of which items were "corrected" in this way by emptying the table. So now the customer has to go through all stock items and check them.
UPDATE: I believe there is no "temporary table" and that it just corrects the allocated quantity in the stock file to match the live sales orders.
So in summary, only fix when you're asked to and either way product a report showing the old and new values (ie what is going to be / was corrected)