docs: refresh 10% MBrainz numbers post-retraction-fix

ober

0f599a14bffcdc9689bc5ce0fe033d6616de9284

diff --git a/jerboa-db.md b/jerboa-db.md
index b96dd43..49a68c5 100644
--- a/jerboa-db.md
+++ b/jerboa-db.md
@@ -2877,7 +2877,7 @@ Open items (not blocking parity):
 |---|---|---|
 | `defquery` macro for compile-time specialization | Q1/Q2/Q6/Q7 sub-µs hot path | Deferred — auto-routing already covers the headline gap |
 | Real MBrainz EDN loader | Full-scale validation | Synthetic data tracks the shape; real EDN would eliminate any "synthetic shortcut" doubt |
-| Q4 row-count divergence at 10% scale | Translator parity | Datalog 4.27M vs DuckDB 8.27M at 10%; 1% and 5% match bit-for-bit |
+| Faster `analytics-sync!` at scale | Throughput | 126s for 6.4M datoms (10%); could go to APPEND/COPY API + incremental delta |
 
 ### Comparison vs Datahike (published numbers, full scale)
 
diff --git a/plan.md b/plan.md
index 2d5beff..491c23e 100644
--- a/plan.md
+++ b/plan.md
@@ -46,13 +46,13 @@ compile-time query specialization no longer moved the needle on the bench.
 | Q1 | 0 ms | — | parity holds |
 | Q2 | 8 ms | — | parity holds |
 | Q3 | 9 ms | — | parity holds |
-| Q4 (4.27M result rows) | 20451 ms | **6476 ms** | bit-for-bit identical after retraction-aware sync fix |
-| Q5 | 35 ms | — | parity holds |
+| Q4 (4.27M result rows) | 21191 ms | **3826 ms** (auto: 3702) | 5.5× — bit-for-bit identical |
+| Q5 | 36 ms | — | parity holds |
 | Q6 | 0 ms | — | parity holds |
 | Q7 | 0 ms | — | parity holds |
-| Q8 | 15800 ms | **45 ms** | 351× — bit-for-bit identical (3 rows) |
-| Loading | 25.6 s | | |
-| Analytics-sync (one-time) | 126 s | | |
+| Q8 | 15260 ms | **41 ms** (auto: 42) | 372× — bit-for-bit identical (3 rows) |
+| Loading | 27.6 s | | |
+| Analytics-sync (one-time) | 127 s | | one-time, amortized across many queries |
 
 Q4 result counts match bit-for-bit between Datalog and DuckDB at 1%, 5%,
 and 10% scale (428,096 / 2,138,115 / 4,270,990 rows respectively). The