Skip to content

The Completion Formula

Every book in your project has a completion percentage. That number isn’t made up. It’s computed from six specific dimensions, each weighted by how much you think it matters, and the defaults are tuned for long-form fiction with serial plot threads — fantasy novels, the kind of project most Ishvana users are building. But the defaults are a starting point, not a cage. You can tell Desktop that word count doesn’t matter for your workflow. You can crank plot resolution up to 40% if your book is a mystery where every plant matters. You can turn whole dimensions off entirely. The formula is yours to shape.

DimensionWhat it tracksDefault weight
Outline statusChapters, scenes, and beats marked as done in your outline30%
Word countActual words written versus per-chapter targets25%
Plot resolutionPlotlines marked resolved versus still active20%
Plant payoffPlants paid off versus total (excluding red herrings)10%
Promise fulfillmentPromises marked fulfilled versus total10%
Lore coverageLegendry entries referenced in your prose and fleshed out5%

The defaults add up to 100%. They’re weighted the way they are because, for a typical long-form fiction project, outline status and word count are the two things that most predict whether the book is actually going to get finished. Plot structure matters, plant and promise tracking matters, and lore coverage matters — but they matter after you have scenes and words on the page.

This dimension counts how many outline nodes in your book are marked “Done.” Chapters, scenes, beats, or whatever depth you’re outlining at — Ishvana counts the marked-done ones and divides by the total. If you haven’t outlined a book at all, this dimension sits at 0% regardless of how much prose you’ve written. If your outline is fully marked done but your prose is empty, this dimension sits at 100%. It’s a measure of planning progress, not manuscript progress.

This dimension compares actual words written to per-chapter target word counts. You set the targets when you create the outline — each chapter gets an expected word count, and the dimension tracks how close the actual prose is to the target. A chapter at 3,000 words with a target of 5,000 contributes 60% to this dimension. Chapters over their target cap at 100% — writing 8,000 words for a 5,000-word target doesn’t push the dimension above 100%, because the book isn’t “more than done,” it’s done plus padding.

If your workflow doesn’t use per-chapter word targets, turn this dimension off. It’ll sit at 0% forever otherwise.

Plotlines marked “resolved” versus the total count of plotlines in your Plot Studio. A resolved plotline is one where the narrative question it asked has been answered. Unresolved plotlines are either open on purpose (you’re mid-book and the plot is ongoing) or open by accident (you forgot to resolve them). This dimension can’t tell the two apart — it just counts. That’s what makes it useful as a diagnostic. If your resolution percentage is below where you expect it to be near the end of a draft, you have open threads you forgot about.

Plants paid off versus total plants, excluding red herrings. A plant that’s been marked “paid off” has had its reveal. A red herring is a plant you set deliberately to mislead — it doesn’t count against the total. The dimension only looks at real plants that should have had their payoff. Orphan plants — ones you set but never paid off — drag this dimension down and also trigger an alert. The payoff column in Plot Studio is what feeds this number.

Promises fulfilled versus total promises. A narrative promise is the contract between the author and the reader — “this hero will face the villain” or “this character will change.” Promises get marked fulfilled when the narrative delivers on them. A broken promise — one that’s been marked broken — drops this dimension hard and also triggers the highest-severity alert Desktop shows.

This one is the smallest by default and also the most approximate. It tries to measure how much of your Legendry has actually made it into the prose. Ishvana counts entries that have been referenced (entity mentions in documents, plot tags, relationship links) and compares that to the total number of entries in the project. A book with fifty characters in the Legendry but only five who show up in the manuscript gets a low lore coverage score.

The weight is 5% by default because lore coverage is the noisiest dimension — you can have fully realized Legendry entries that intentionally never appear in a particular book, and that shouldn’t drag your completion score. If you want lore coverage to matter more to your project, raise the weight. If you want it to matter less, lower it or turn it off.

Open the formula editor from the gear icon on the Attention lens (or from the Desktop settings menu — both go to the same modal). Every dimension has a toggle and a weight slider. The toggle enables or disables the dimension; a disabled dimension contributes 0% regardless of its weight. The slider sets the weight in the range 0-100.

The weights don’t have to sum to 100. They’re relative. If you enable only two dimensions with weights 50 and 30, they’ll normalize to 62.5% and 37.5% of the final score. You can set all six to 100 and it’ll work the same as setting them all to 10 — what matters is the ratio between them.

Saving the formula triggers an immediate recalculation across all your tracked books. Their completion percentages update, their stage classifications re-run, their attention scores get recomputed, and everything on the Desktop tab refreshes. You don’t have to reload.

There’s a second knob in the same modal that isn’t a dimension weight — it’s the weak dimension threshold. The default is 60%. Any enabled dimension whose value falls below this threshold gets flagged as “weak,” and the weak flag is what contributes a book’s attention score.

Lower the threshold if you only want severe weakness to trip attention. A threshold of 40% means a dimension has to be really lagging to count as weak, which cuts down on Attention-queue noise in the early stages of a project. Raise it if you want the queue to catch problems earlier. A threshold of 75% means even a dimension that’s mostly there will still count as weak, which makes the queue more eager.

Most users set it once and never touch it. The default is fine for most projects. The knob exists because “weak” is a subjective judgment and Ishvana doesn’t want to hardcode yours.

The default weights (outline 30, words 25, plot 20, plants 10, promises 10, lore 5) aren’t arbitrary. They’re ordered by how much each dimension actually predicts whether a long-form fiction project gets finished.

Outline first because a project without an outline tends to stall before it gets anywhere. Word count second because the book doesn’t exist until the words exist. Plot resolution third because plot threads are the most common thing that goes forgotten in a long draft. Plants and promises after that because they’re the things you track to catch storytelling inconsistencies — important but secondary to actually having the scenes. Lore coverage last because it’s the noisiest signal and the one most likely to be wrong for any given book.

If your project breaks these assumptions — you’re writing a novella series where word count targets are the main constraint, or you’re writing a mystery where plant payoff is the whole point — adjust the weights. Ishvana doesn’t know your project. You do.