Methodology
How retellings are scored and verified
You speak for a minute or two; the report has to be reproducible. Delivery is measured from the audio, story content is checked against the text you read, and every number is computed in code. This page publishes the weights, the cap and the rules a story passes before it becomes public.
Written and maintained by the SoulfulStories editorial team. Last updated: October 26, 2026.
What the analyzer measures
The browser records your retelling. The recording is transcribed with a word-level timestamp for every word, then measured in deterministic code — no model decides a score:
- Delivery. Pace on a words-per-minute timeline, measured against your speaking profile's band (native 130–170 wpm; learners 100–150, and 90–140 at A2–B1). Filler words and repetitions, counted per minute. Pauses of 0.35 seconds or more, split into strategic pauses and hesitations. Pitch range and variation in semitones, and volume variation in decibels.
- Story content. The story's key facts and emotional beats are supplied by the story, not guessed from your retelling. Each fact is judged covered, partly covered, distorted or missed, with the words you said as evidence; each beat is located in your transcript and compared with your own baseline pitch, pace and pausing.
- Craft and vocabulary. The hook in the first 15 seconds, vividness, how the ending lands and engagement cues; structure (setup → turn → resolution) and sequence. Vocabulary uses moving-average type–token ratio, lexical density and an estimated CEFR band.
How the overall score is built
The overall score is a weighted mean of the dimensions, then capped twice. The weights are the same for every retelling; only the pace target changes with the speaker profile.
| Dimension | Weight | Built from |
|---|---|---|
| Delivery | 35% | Fluency 12, pace 8, pauses 8, articulation 7 |
| Emotion | 30% | Emotional match 16, tonality 8, volume variation 6 |
| Impact | 20% | Hook 30%, vividness 25%, ending 30%, engagement 15% |
| Craft | 10% | Structure 60%, sequence 40% |
| Vocabulary | 5% | Range, density and word choice |
Dimension weights are shares of the overall score; the smaller numbers under each dimension are that dimension's internal split, summing to 100 within it.
The facts floor. If fewer than 70% of the story's facts are covered (a partly covered fact counts half) or any critical fact is contradicted, the overall score is capped at 59, so the next level cannot be unlocked. For your own stories the cap is never below 60. A failed floor also puts the corrections first in the report: you said X — actually Y, with the source.
The completeness cap. A very short retelling cannot score high: the ceiling is 20 + 80 × the smaller of (fact coverage ÷ 80) and (length ÷ 30% of the story). The final score is the lower of the weighted mean and that ceiling.
The language model never writes a score. It labels the content it can judge — which facts were said, where a beat sits, how the hook and ending land — and the code turns those labels into the numbers above. The same rules are used in the backend and the analyzer so a score cannot drift between them.
How a story is verified before it is published
Every true story in the library goes through the same pipeline, whether it was curated by us or requested by a reader:
- Sources. A curated story has at least two sources, with the publisher, URL and the date each was read. The source text is cached, so a claim can be checked against what the source actually said, not against a summary of it.
- Claims with quotes. Every factual statement in the story is an atomic claim tied to one source by index, with a verbatim quote from that source. The validator checks the types, the word counts per reading level, the fact and beat counts, the claim-to-source references, and that every quote appears verbatim in the cached text. Direct quotes in the prose must also appear in a source.
- A separate fact-check. A checker model, different from the writer, judges each claim supported, partly supported or unsupported against its quote, and lists factual statements that no claim covers. Anything unsupported, or any uncovered statement, fails the check and triggers a repair pass from the verified claims only.
- Independent audits. Independent accuracy audits then re-read every sentence of all three reading levels — plus the title, hook, era and region, and the facts and beats — against the cached source text, not against the claim list. Findings get a severity: major (contradicts a source or the arithmetic), medium (unsupported, overstated or misleading) or minor (stylistic). Each finding is fixed, then re-audited, and later rounds check both the fix and unchanged fact-dense sentences for regressions.
- The publication gate. A story is published only when its latest verification has zero major and zero medium findings. Anything else stays a draft: written, kept in the catalog, and invisible to readers — the importer skips it. The gate is re-run after every fix wave.
The public story pages show the sources, the claims and where each fact came from, so a reader can repeat the check. Read one in the story library.
What this page does not claim
We publish no learning-outcome promises, no testimonials, no customer counts and no satisfaction scores. The example report on the home page is labelled as illustrative and uses made-up numbers. Scores compare you with your own earlier attempts, never with other people. Prices and limits on the pricing page come from the billing API, not from a marketing copy deck.
If a claim on this site is wrong, we want the source that shows it. The same standards apply to our guides and comparisons: a fact without a citation is cut, and a comparison says where the other product is better.