Section Metadata Reference
Decision‑Making Insights
- Content pacing: Monitor
words,paragraphs, andread_time_minto balance chapter lengths. - Tone analysis: Use
paragraph_sentimentsto spot narrative highs and lows within a chapter. - Keyword strategy: Leverage
tf_idfandtopicsto refine SEO, marketing tags, or blurb keywords. - Style adjustments: Compare
readabilityandlexical_metricsagainst target audience grade levels. - Entity tracking: Review
entitiesto ensure consistent character/place naming throughout sections. ``
How each analytics tile can guide your edits
| UI tile / metric block | What it reveals | How to use it to polish the current chapter |
|---|---|---|
Core counts (words, paragraphs, read_time_min) | Pacing & density of the chapter. | If this chapter is 8 000 words while others average 3 000, consider splitting or tightening. A 40-min read may exhaust some readers. |
| Readability (Flesch–Kincaid, Fog, SMOG) | Sentence complexity & estimated U.S. grade level. • Flesch–Kincaid = grade level based on sentence length and syllables. • Gunning Fog = grade level based on sentence length and complex words. • SMOG = grade level based solely on polysyllabic words. | Aim for 4–6 for middle-grade, 6–9 for YA, and 10+ only for academic or literary prose. Lower scores mean more accessible reading. Adjust by simplifying sentence structure and vocabulary. |
Lexical metrics (ttr, hapax, avg_word_length) | Vocabulary breadth & repetition. | Low TTR (< 0.25) signals echoing words—add synonyms or sensory details. Very high TTR (> 0.45) can read purple; prune unusual adjectives. |
Bag of Words & Phrases (term_freqs, bigrams, tf_idf) | Over-used lexis and signature phrases. | If “wolf growled” appears 15 ×, try “snarled”, “bared its teeth”, or non-verbal cues to keep imagery fresh. Promote rare, vivid TF-IDF terms into hook lines or chapter titles. |
Sentiment gauge (sentiment) | Net emotional tone of the whole section. | A strongly negative compound (e.g., –0.99) may need a breather scene or light banter before the next down-beat. |
Paragraph sentiment arc (paragraph_sentiments) | Moment-to-moment emotional flow. | Spot flatlines: seven neutral paragraphs in a row? Inject a surprise, revelation, or sensory jolt to maintain momentum. |
Sentence metrics (avg_len, min_len, max_len) | Rhythmic texture of prose. | Avg 12 words with max 45 suggests many short beats punctuated by an occasional ramble—merge tiny sentences for smoother cadence. |
| Entities (add-on) | Character & place consistency. | Catch misspelled names (“T’y” vs “Ty”) or verify that minor locations don’t vanish without closure. |
| Topics / Genre (add-on) | Dominant themes & market fit. | If “political intrigue” topics outweigh “romance” in what you intended as a love story, refocus scenes or marketing copy. |
Interpretation (section-level example)
- Words 7 420 → longest chapter so far (≈25 min read); split or tighten for steadier pacing.
- F-K 10.2 → dense senior-HS level; shorten multi-clause sentences to ease flow.
- TTR 0.21 → vocabulary slipping into repetition; replace echoes like repeated “looked” with “glanced, surveyed, scanned.”
- “back” × 32 (top term) → filler word; swap for spatial cues (“stepped away from the doorway”).
- “wolf growled” × 12 (top bigram) → image losing impact; vary with “snarled,” “lips curled,” “hackles bristled.”
- Sentiment –0.88 → emotionally heavy throughout; add a hopeful beat (joke, sunrise) to avoid reader fatigue.
- Dialog 62 % → dialogue-driven scene; weave in sensory details between lines to ground setting.
Interpretation — Section-level Paragraph Sentiment Trend
-
Paragraph polarity bars
Each stacked bar mirrors the emotional ratio inside one paragraph. Sudden flips (red→green) flag mood pivots—great for reveals. -
Compound line
Paragraph-by-paragraph single score.
• A steep drop (+40 → –60) marks shock moments.
• If the line flatlines near zero, tension may stall—inject conflict or humor.
• Remember: bars give the mix; compound gives the net.
Revision workflow:
- Smooth big word-count outliers to even pacing.
- Shape document-level sentiment for balanced highs/lows (use compound & bars together).
- Fine-tune micro-beats with paragraph trend inside each scene.
Advanced analytics—Named-Entity checks, topic clustering, trope/beat detection, and AI engagement scoring—are optional add-ons at checkout for deeper structural and marketing insight.
Use this checklist hierarchy: fix readability and high-frequency fillers first, adjust emotional pacing second, then leverage advanced add-ons for final polish.
Aggregated insights at the section level
| Field | Type | Description |
|---|---|---|
title | Option<String> | First heading detected (H1/H2/H3). |
subtitle | Option<String> | Secondary heading (e.g. H2 following H1). |
author | Option<String> | Author attribution extracted from a “By …” line in the opening paragraphs. |
words | usize | Total word count in this section. |
paragraphs | usize | Number of <p> tags/paragraphs. |
chars | usize | Total character count, including spaces. |
read_time_min | usize | Estimated reading time (ceil division at 200 WPM). |
term_freqs | HashMap<String, usize> | Top N word frequencies (stop words removed). |
bigrams | HashMap<String, usize> | Top N two-word phrases. |
tf_idf | HashMap<String, f64> | Top N TF–IDF keyword scores relative to the full document. |
sentiment | Option<Sentiment> | Overall sentiment scores (neg/neu/pos/compound). |
paragraph_sentiments | Vec<Sentiment> | Sentiment score for each paragraph—useful for sentiment arcs. |
entities | Option<Vec<(String,String)>> | Named-entity tokens and labels (e.g. PERSON, ORG). |
topics | Vec<String> | Extracted topics via LDA or similar modeling (stub for future integration). |
genre | Option<String> | Heuristic genre label based on top keywords. |
sentence_metrics | SentenceMetrics | Avg/min/max sentence length (in words). |
lexical_metrics | LexicalMetrics | TTR, hapax legomena count, average word length. |
readability | ReadabilityMetrics | Flesch–Kincaid, Gunning Fog, SMOG scores. |
dialog_ratio | f64 | Proportion of this section’s words that occur within detected dialogue passages. |