While working on metadata, there are chances that MD may get corrupt. Only reason for corruption of MD is MicroStrategy programmers NOT you (No way), unless you have manually fiddled with the metadata. One small change can messed the metadata forever, some time impossible to recover.
There are two types of discrepancies in MicroStrategy
ScanMD is used to recover from Logical discrepancies, where as MD Doctor is used for Physical discrepancies. Why these discrepancies creep????? Like any software application, there are bugs in MicroStrategy, dandling code (a situation never programmed), etc. such a thing is the main reason behind discrepancies.
Logical discrepancies: Using desktop you can create/delete several objects. Sometime deletion of the objects doesn’t get reflected in metadata and they get deleted in metadata but still available in front-end. Now such a mis-match in case of schema objects is simply killing, because it won’t let you update schema at all. Imagine not having ability to update schema. Using ScanMD is not an easy task. ScanMD shows 95% for false errors as discrepancies. Engine team of MicroStrategy, Inc. needs to update the tool. For one error, you may have to go through 100+ errors. You can verify the error easily by having project opened side by side. NEVER EVER FIX A FALSE ERROR.
Physical discrepancies: There are not just 10 DSS tables that make metadata, there are several more database objects that are created for metadata; e.g., triggers, views. If any of these objects are messed up, you have a physical discrepancy in your project. I’ve never worked on MD Doctor and look forward some information from you.
This blog is not exhaustive and 100% as I certainly do not believe the bugs in MicroStrategy are only source of discrepancies in metadata.