Every novel has a question the manuscript cannot answer while you are inside it: does the book hold its tension? Does the conflict from chapter three carry through to the middle, or does something sag there that you never noticed while writing, because every chapter was good on its own? Editors answer that question by reading the whole thing in one go. If you write alone, you do not get that reading.
Since this week, Hermes 3000 shows a small curve at the top of the editor for novels: the tension curve. It is as wide as the planned book, written chapters fill it from the left, and one click opens what is behind it. In this article we explain how the curve is made, why we deliberately do not ask the AI for a number, what a decision model is, and where the limits lie. If you just want to see it, scroll to the video.
What the curve shows
In the editor header, next to your writing progress, sits a pill with a line. The line is the tension per chapter, the maximum of inner and outer tension, over the whole length of the book as planned in your chapter structure. What is written carries the line; what is still missing is a dotted track. A half-written novel shows a half-filled curve, so it doubles as a progress indicator, and it appears by itself: open a book whose curve is missing, and the analysis starts in the background, the curve growing chapter by chapter into a small wave.
A click opens the panel with three lines:
- Inner tension: conflict between characters or within one. An argument, a thwarted wish, a lie, a dilemma, a loss, adversaries meeting face to face.
- Outer tension: stakes coming from the world and the plot. Physical danger, violence, flight or pursuit, a deadline, a threat, a revelation, a decision with no way back.
- Development: how much moves in a chapter. Has a main character's situation changed by the end, how many threads were opened and resolved, how many events and character developments the Story Atlas counts.
Plus, switchable, the pace: dialogue share and sentence length, counted rather than judged. Below the chart sits the chapter under your cursor with its values and the signals behind them: "open conflict 98", "concealment 85", "time pressure 71". Below that, a few observations about the arc, for instance: "Since chapter 2 (tension 100) the curve has been falling; chapter 3 sits at 59. If this continues, the middle of the book risks sagging."
Why we do not ask the AI for a number
The obvious approach would be to show a language model each chapter and ask: how tense is this, from one to ten? We have had exactly that in Hermes for months, in the quality analysis that rates eleven dimensions of a chapter, tension among them. We never built a curve from it, and the reason is measurable: the numbers are noisy. The same chapter gets a seven today and a five tomorrow, neighbouring chapters jump for no visible reason, and a model that sees a chapter in isolation has no stable scale.
That is not a Hermes problem but a research finding. Glenn Matlin and colleagues at Georgia Tech replicated four classic studies from the psychology of suspense in 2025, with ten language models in place of the human participants (Do Language Models Agree with Human Perceptions of Suspense in Stories?, COLM 2025). The result: at the question whether a text sets up suspense, the models are usable; the authors call them "quite competent". At the question how much suspense a reader feels, they fail, especially at the turning points, which is exactly where it gets interesting. Text manipulations that would lower suspense for humans barely change the models' ratings. The models read cues within the passage, but they do not build a model of the story.
The consequence for us was clear: ask what models can do, and compute the rest ourselves.
The model transcribes, the code judges
Instead of a number, we ask the model eighteen yes/no questions per chapter about observable things. For example:
- Do two or more characters carry out an open conflict in this chapter: an argument, an accusation, a confrontation, a fight?
- Does a character want something from another (love, approval, help, forgiveness, closeness) and not get it in this chapter?
- Does a character deliberately hide something important from another character present in the chapter, or lie to them?
- Is a character in concrete physical danger?
- Does a deadline, an ultimatum or a race against time drive the action?
- Does a character make a decision that cannot be undone?
- Does the chapter end on an unresolved question, an interruption or an imminent event?
- Is a main character's situation materially different at the end of the chapter than at the beginning?
Added to these are two three-level questions as an anchor per axis: how intense are the conflicts between or within the characters, none, latent or open? How high are the external stakes, none, hinted or acute?
The model answers each question with a probability. Everything else is arithmetic that lives in our code, not in the model: an axis value is half the ordered question and half the weighted sum of the predicates, which saturates at two strong signals. A chapter with a fight and a betrayal is not twice as tense as one with a fight; it is at the top of the scale. That decision can be discussed, changed and tested, and it does not change from run to run.
The nicest side effect: the signals are the explanation. A point on the curve does not say "73", it says "open conflict, concealment, thwarted desire". That is something an author can work with.
The principle is not new to us. Our legal norm check for draft laws works the same way: the model transfers a law's temporal structure into a table, every row with a verbatim quote, and code decides whether there is a gap. A model told to look for errors invents them; a model that only transcribes can be checked.
What a decision model is, and why it fits here
Any language model can answer questions with yes or no. But it answers in text that has to be parsed, it rephrases, sometimes it gives no answer, and its "probability" is just a number it writes down. Since September 2026 there is a model class for exactly this: decision models. The startup TypeSafe opened the category with Jev, OpenAI announced the Decisions API at DevDay on 29 September and made it available to everyone on 22 October, and Cloudflare followed with Clef, models with open weights.
The idea: the model reads the input and all questions in one pass and returns a probability for every question, no text. Three question types: a statement that is true or false; a choice among named options; a position on a described scale. The answers are guaranteed in form, there is nothing to parse, and the models are trained for calibration: if the model says "70 percent" on a hundred questions, it should be right about seventy times. That is where a number from a chat model and a number from a decision model part ways.
Hermes uses OpenAI's Decisions API, not directly but through the gateway of our sister company HybridAI, which routes it with European regional processing. All twenty questions about a chapter run in a single call; a forty-page chapter costs about a quarter of a cent and takes one to two seconds. Chapters that have not changed cost nothing, because the answers are stored against the text's content. If the gateway is down, an ordinary language model steps in and answers as JSON; the panel marks such chapters as "fallback model", because those numbers are not calibrated.
One limitation belongs here, and OpenAI states it themselves: behind the Decisions API currently sits "plain old Luna", the normal GPT-6 Luna in a different output mode, not a specially trained judgement model. A paper comparing Jev with LLM judges is titled Cheaper, Faster, and Wrong in the Same Places. The decision model solves the form problem, calibrated numbers without parsing; it does not solve the judgement problem. Which is exactly why our questions stay observable and the scale stays with us.
Development and pace: what can be counted is counted
Two of the four lines barely need a model. The pace comes from sentence length and dialogue share, measured over the whole text, for every chapter, with no call at all. That is not tension, a calm dialogue reads fast too, but it is the one line that can be measured down to the paragraph.
The development combines one predicate ("situation changed") with what the Story Atlas already knows about a chapter: which plot threads it opens and which it resolves, how many events it contains, which characters change. If you run the atlas scan you get a fuller development line; without it the predicate carries the value alone, and the panel says so with an asterisk.
This is also where the research we want to tap next lives. Olivier Toubia, Jonah Berger and Jehoshua Eliashberg showed in PNAS in 2021 how to measure the shape of a story from language embeddings: the speed at which the text moves through meaning space, the volume it covers, and how circuitous its path is. A study from February 2026 applied this to 28,606 books and found volume to be the strongest length-independent predictor of how often a book is read. These measures are deterministic and free, and they would be a counted second source for the development line.
The x-axis is the book, not the chapter index
A detail that curves of this kind almost always get wrong: a forty-page chapter with one argument in the middle and a five-page chapter that is nothing but argument look identical as two equally wide points. Our x-axis is therefore the position in the book in standard pages. Each chapter is as wide as it is long. A dry stretch of three short chapters is short, one of three long chapters is long, and the curve says so honestly.
Chapters that exist in the structure but have no text yet get the mean width of the written ones. So the axis ends where the book is meant to end, and the fill from the left is the progress. Most books this curve will run on are unfinished; we built it for that state, not for the shelf.
Observations instead of a grade
It would have been easy to overlay an ideal curve, the three-act structure or the hero's journey, and hand out a grade. We did not, for the same reason our legislative tracker has no progress bars: a novel has no defined hundred percent. A chamber piece is allowed to look flat. A thriller is allowed to be a sawtooth. Andrew Reagan's analysis of 1,327 stories from Project Gutenberg, which gave us the "six basic shapes" of stories, shows precisely that: there are several shapes that work, not one.
What carries weight are a few concrete observations, computed deterministically, each naming its chapters:
- A flat stretch of three or more chapters that never climbs.
- A falling trend since the high so far, phrased as a warning for an unfinished book: if this continues, the middle risks sagging, or, if the end is already in sight, the book falls off towards its end.
- A valley between two highs, in finished parts.
- The strongest point so far in the first third of the planned book, named with the number of chapters still to come that will have to stand up to it.
- A consistently quiet axis, as a property of the book, not a fault.
- Few open chapter endings, and, only once seventy percent is written, more threads opened than resolved. In the middle of a book, open threads are the point of the book.
The vocabulary for turning points we keep in mind here comes from film studies: Pinelopi Papalampidi and colleagues defined five turning point types in 2019 and measured their expected position in the arc, opportunity, change of plans, point of no return, major setback, climax. An observation like "the peak sits at 25 percent" is thought in that language.
What the curve cannot do
Three things we prefer to say ourselves before someone discovers them.
The curve shows what the text sets up, not what a reader feels. That is Matlin's finding, and we do not get around it; we work within its limits. Two editors marking the same scenes as "dangerous or not" agree, according to a Würzburg study on German novels (Albin Zehe, Julian Schröter, Andreas Hotho, 2023), in only about six of ten cases beyond chance. A machine must not claim more precision than two humans, and the curve does not. That is why a sentence under the panel says how it is computed.
The model sees one chapter and the summary of the previous one, not the whole book. It recognises "thwarted desire" only if the desire is in the chapter or in the summary. Threads that span ten chapters are the Story Atlas's job, and its counts feed the development line, not the tension.
And: the thresholds for when a stretch is "flat" or a drop is a "trend" are set, not calibrated. A calibration on hand-marked chapters from three or four novels is still to come; it is the next step, and we will report what comes out of it. OpenAI's own documentation says explicitly that thresholds should come from your own labelled examples. We take that literally.
For the technically curious
Only the model's raw answers are stored, per chapter, under the hash of the chapter text and the version of the question set. Every value you see is derived at read time: axes, pace, development, positions, observations. If we change a weight, the curve of every book changes at its next opening without a model call. If the Story Atlas arrives later, it is counted at once. If a chapter changes, only that chapter is asked again; when you complete a chapter this happens by itself, in the background, after the summary.
The smoothing of the line, by the way, is a monotone cubic interpolation and not a Catmull-Rom curve. The latter looked prettier and dipped below the baseline on a jump from 54 to 4. A curve that goes below zero has a lying problem.
References
- Glenn Matlin et al.: Do Language Models Agree with Human Perceptions of Suspense in Stories? COLM 2025. arXiv:2508.15794
- David Wilmot, Frank Keller: Modelling Suspense in Short Stories as Uncertainty Reduction over Neural Representation. ACL 2020. ACL Anthology
- Albin Zehe, Julian Schröter, Andreas Hotho: Towards a Computational Analysis of Suspense: Detecting Dangerous Situations. 2023. arXiv:2305.06818
- Pinelopi Papalampidi, Frank Keller, Mirella Lapata: Movie Plot Analysis via Turning Point Identification. EMNLP 2019. ACL Anthology
- Yufei Tian et al.: Are Large Language Models Capable of Generating Human-Level Narratives? 2024. arXiv:2407.13248
- Olivier Toubia, Jonah Berger, Jehoshua Eliashberg: How quantifying the shape of stories predicts their success. PNAS 2021. doi:10.1073/pnas.2011695118
- Semantic Novelty at Scale: Narrative Shape Taxonomy and Readership Prediction in 28,606 Books. 2026. arXiv:2602.20647
- Ryan L. Boyd, Kate G. Blackburn, James W. Pennebaker: The narrative arc: Revealing core narrative structures through text analysis. Science Advances 2020. doi:10.1126/sciadv.aba2196
- Andrew J. Reagan et al.: The emotional arcs of stories are dominated by six basic shapes. EPJ Data Science 2016. doi:10.1140/epjds/s13688-016-0093-1
- OpenAI: Decisions API (documentation). developers.openai.com
- JEV vs. LLMs as Rubric Judges: Cheaper, Faster, and Wrong in the Same Places. 2026. arXiv:2609.29769
Frequently asked questions
Which books get the tension curve?
Novels and stories. For non-fiction, whitepapers and seminar material the editor shows no curve; "conflict between characters" would not be a meaningful question there.
Does the tension curve cost anything?
No. It is included in every book. A chapter is only asked again when its text has changed.
When is the curve computed?
When you open a book whose curve is missing or stale, by itself in the background; when you complete a chapter; and via the button in the panel, which only re-analyses changed chapters.
Why does the curve show no grade or ideal curve?
Because a novel has no defined hundred percent. A quiet chamber piece and a thriller are different shapes, not better and worse ones. The curve shows the arc and names a few concrete observations; the decision stays with you.
What is a decision model?
An AI model that writes no text but answers typed questions (yes/no, choice, level) with a calibrated probability, in one pass. Hermes uses OpenAI's Decisions API via HybridAI with European processing to answer the tension questions about a chapter.
Does the model see my whole book?
No. It sees the chapter in question and the summary of the previous one. Threads that span many chapters are counted by the Story Atlas.