@model StoryIntelligenceOverviewViewModel @{ ViewData["Title"] = "Ready to analyse manuscript"; }

Step @Model.WizardCurrentStep of @Model.WizardTotalSteps

Ready to Analyse Manuscript

Review the approved manuscript scope before setting final story and portrait context.

@if (TempData["OnboardingStoryIntelligenceError"] is string error) {
@error
} @if (TempData["OnboardingStoryIntelligenceMessage"] is string message) {
@message
} @if (Model.ExistingBatchID.HasValue) {

Analysis has already started

You can return to progress or open the Review Centre when analysis is ready.

View progress
} else {
Chapters @Model.ApprovedChapterCount

Approved chapters from your manuscript review.

Words @Model.ApprovedWordCount.ToString("N0")

Chapter text ready for analysis.

Estimated time @EstimateDuration(Model.ApprovedWordCount)

The analysis runs in the background, so you can leave this page and return later.

Review You approve creation

After analysis, unresolved character identities are handled first, then optional review categories are available later.

@if (!string.IsNullOrWhiteSpace(Model.Message)) {

@Model.Message

@if (Model.MissingChapterTextCount > 0) {

@Model.MissingChapterTextCount chapter(s) do not include scanned text. Scan the manuscript again before analysing.

}
}
1Analyse chapters
2Create scene intelligence
3Resolve characters
4Open Review Centre
}
@functions { private static string EstimateDuration(int wordCount) { if (wordCount <= 0) { return "A few minutes"; } var minutes = Math.Clamp((int)Math.Ceiling(wordCount / 3000m) * 2, 2, 30); return minutes <= 2 ? "About 2 minutes" : $"About {minutes:N0} minutes"; } }