diff --git a/pkgs/markdown/tool/common_mark_stats.dart b/pkgs/markdown/tool/common_mark_stats.dart
index 87c8039..454b247 100644
--- a/pkgs/markdown/tool/common_mark_stats.dart
+++ b/pkgs/markdown/tool/common_mark_stats.dart
@@ -21,12 +21,15 @@
 
 void main(List<String> args) {
   var raw = args.any((s) => s == '--raw');
+  var verbose = args.any((s) => s == '--verbose');
 
   var sections = loadCommonMarkSections();
 
   var scores = new SplayTreeMap<String, SplayTreeMap<int, bool>>(
       compareAsciiLowerCaseNatural);
 
+  String indent(String s) => s.splitMapJoin('\n', onNonMatch: (n) => '    $n');
+
   sections.forEach((section, examples) {
     for (var e in examples) {
       var output;
@@ -43,6 +46,16 @@
       var expected = parseFragment(e.html);
       var actual = parseFragment(output);
       nestedMap[e.example] = compareHtml(expected.children, actual.children);
+      if (verbose && !nestedMap[e.example]) {
+        print('FAIL');
+        print('input:');
+        print(indent(e.markdown));
+        print('expected:');
+        print(indent(expected.outerHtml));
+        print('actual:');
+        print(indent(actual.outerHtml));
+        print('-----------------------');
+      }
     }
   });
 
