Grey Mirror by JustLayMe

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.

  1. Run npm run generate:grey-mirror-benchmark-snapshot from the repository root.
  2. Inspect messageExportQualityIndex for fixture inputs, ground truth, observed output, formulas, scores, and limitations.
  3. Inspect metricPhase for the 100,000-message stress-test environment, timing, memory, and output fields.
  4. 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.
Message Export Quality Index v1 results
Synthetic export shapeRecoveredTextTimestampSenderDirectionOverall
Bracketed UTC text4 / 4100100100100100
Structured CSV aliases4 / 4100100100100100
Human-readable CSV headers4 / 4100100100100100
Nested JSON message array4 / 4100100100100100
Newline-delimited JSON4 / 4100100100100100
Matrix total20 / 20100100100100100
The separate 100,000-message stress test
Published fieldValueWhat it supports
Target messages100,000Input size passed through the measured aggregation stages.
Source messages30 repeated fixturesA deterministic workload, not 100,000 independently authored messages.
Stage timingsMilliseconds in the JSON artifactA recorded run on the listed environment, not a latency guarantee.
MemoryRSS and heap snapshotObserved process memory, not a production ceiling.
Output shapeTransitions, phases, selected metricsDeterministic execution for this repeated fixture, not real-world prevalence.

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

View the canonical Message Export Quality Index and 100,000-message stress test page