Message Export Quality Index and 100,000-message stress test
Grey Mirror’s public benchmark now runs the production message parser against a published, versioned synthetic ground-truth matrix spanning five export shapes, then keeps the existing 100,000-message aggregation stress test in the same machine-readable artifact. Every input, expected message, formula, result, and limitation is published.
- Overall parser score on the narrow v1 synthetic fixture matrix.
- 100 / 100
- 20 expected messages across UTC text, CSV, JSON, and NDJSON fixtures.
- 5 shapes
- Generated messages in the separate aggregation stress test.
- 100,000
What is the Grey Mirror Message Export Quality Index?
The Message Export Quality Index v1 runs Grey Mirror’s production Node.js parser against five synthetic ground-truth export shapes containing 20 expected messages. The July 28, 2026 run recovered 20 of 20 and scored 100 in message recovery, text fidelity, timestamp preservation, sender resolution, and direction resolution, for an overall 100/100 under equal 20% weights.
- Scope: five small, platform-neutral happy-path fixtures—not every real export, damaged archive, locale, attachment, reaction, or screenshot.
- Separate test: the same artifact records a 100,000-message synthetic aggregation run built by repeating 30 repository fixture messages.
- Boundary: neither result measures relationship interpretation accuracy, clinical validity, customer outcomes, or production capacity.
Message Export Quality Index v1 results
Each shape contains the same four synthetic ground-truth messages so format handling can be compared without changing the conversation. Scores below are generated by src/services/message-parser.js, not entered by hand.
A 100/100 score means the parser matched this narrow versioned matrix. It does not mean every message export will parse perfectly.
How the 100-point score is calculated
The index uses five equally weighted dimensions. Each export shape contributes equally to every dimension, and the overall score is the weighted arithmetic mean.
- Message recovery: 100 × min(expected count, recovered count) ÷ max(expected count, recovered count).
- Text fidelity: exact text matches at the expected sequence position ÷ expected messages × 100.
- Timestamp preservation: exact UTC epoch-millisecond matches at the expected sequence position ÷ expected messages × 100.
- Sender resolution: exact sender-label matches at the expected sequence position ÷ expected messages × 100.
- Direction resolution: exact sent/received matches at the expected sequence position ÷ expected messages × 100.
- Overall: 20% × each of the five dimension scores.
What the synthetic fixture matrix covers
The v1 matrix tests only formats with deterministic UTC timestamps and explicit or resolvable participants. Labels describe data shapes accepted by the parser; they are not claims of official platform certification.
Bracketed text
ISO 8601 UTC timestamp, sender label, and message body on each line.
CSV variants
Two header vocabularies exercise machine-style aliases and human-readable column names.
JSON variants
A nested messages array and newline-delimited records exercise structured JSON paths.
The separate 100,000-message stress test
The existing stress test remains part of the artifact. It repeats 30 repository metric-fixture messages until the input reaches 100,000 records, assigns deterministic timestamps and roles, and measures message-feature construction plus fingerprint, transition, and genome aggregation.
How to reproduce and inspect the result
The generator reads only the versioned synthetic fixture matrix, runs the current parser and metric code, and writes matching public artifacts. The JSON includes the complete fixture definitions, expected messages, observed messages, formulas, SHA-256 ground-truth digest, runtime environment, and measured outputs.
- Run npm run generate:grey-mirror-benchmark-snapshot from the repository root.
- Inspect messageExportQualityIndex for fixture inputs, ground truth, observed output, formulas, scores, and limitations.
- Inspect metricPhase for the 100,000-message stress-test environment, timing, memory, and output fields.
- Compare the SHA-256 digest and benchmark version before comparing results across revisions.
Limitations and the next credible expansion
The v1 result is a regression baseline, not a universal parser-accuracy claim. A stronger next version should add reviewed failure fixtures without collapsing parser quality, analyzer accuracy, confidence calibration, and relationship usefulness into one score.
- Not covered: ZIP or GZIP extraction, corrupted or truncated files, ambiguous local dates, attachments, reactions, deleted-message semantics, screenshots, OCR, and adversarial inputs.
- Not measured: analyzer labels, evidence quality, report usefulness, clinical claims, relationship outcomes, or population generalization.
- Not guaranteed: maximum upload size, production throughput, report latency, or performance on every customer export.
- Next: add synthetic failure fixtures, locale-specific timestamps, archive extraction, media placeholders, and explicit expected error behavior.
Frequently Asked Questions
What is the Message Export Quality Index?
It is a reproducible parser regression benchmark that compares Grey Mirror’s actual message-parser output with a published, versioned synthetic ground-truth matrix across recovery, text, timestamps, senders, and directions.
What score did Message Export Quality Index v1 produce?
The July 28, 2026 artifact reports 20 of 20 messages recovered and 100 in all five equally weighted dimensions, producing an overall 100/100 on five narrow synthetic happy-path export shapes.
Does 100/100 mean every message export parses perfectly?
No. The score applies only to this small versioned fixture matrix. It does not cover damaged archives, ambiguous locales, every platform variant, media semantics, screenshots, OCR, or adversarial inputs.
Does this benchmark use customer conversations?
No. The published parser matrix and 100,000-message stress test use versioned synthetic fixtures from the repository and do not read or aggregate private customer reports.
What does the 100,000-message result measure?
It records environment-specific timing, memory, and output shape for feature construction and selected aggregation stages on a deterministic repeated fixture. It is not an accuracy or production-capacity guarantee.
How can I inspect or reproduce the benchmark?
Open the published JSON artifact for inputs, ground truth, observed output, formulas, digest, environment, and limits. In the repository, run npm run generate:grey-mirror-benchmark-snapshot.
References and methodology
Related Grey Mirror guides
- Relationship text analyzer
- Methodology
- Public white paper
- Metrics library
- Evidence standards
- Privacy and deletion
- AI sycophancy vs measured analysis
- Interactive sample report
- Relationship text analysis glossary
- Long-term pattern analysis
- Love language in texting
- iMessage analysis
- WhatsApp chat analysis
- Instagram DM analysis
- ChatGPT vs Grey Mirror
- Screenshots vs full thread
- Repair attempts in texting
- Conflict escalation patterns
- Emotion word frequency
- Texting anxiety signs
- Friendship text analysis
- Telegram text analysis
- Improve text communication
- Apology insufficiency case study
- Full thread vs screenshot case study
- Couples text message analyzer
- Analyze chat history for patterns
- SMS and Android text analysis
- Pricing and free preview
- Private relationship text analyzer
- Best relationship text analyzer
- Best text message analyzers 2026
- Chat analyzer comparison
- Red flag text analyzer
- Situationship text analyzer
- Analyze relationship texts
- Relationship pattern analysis case study
- Criticism in texts case study
- Dismissiveness case study
- Emotional availability case study
- Emotional labor case study
- Emotional tone drift case study
- Talking about problems case study
- Mixed signals case study
- Post-conflict patterns case study
- Power dynamics case study
- Reading subtext case study
- Validation in texts case study
View the canonical Message Export Quality Index and 100,000-message stress test page