How validation works
When you hit Generate, the orchestrator builds a dependency graph of the 30 sections, groups them into layers that can safely run together, and walks layer-by-layer. The first layer holds sections that have no upstream dependencies — problem framing, market sizing, competitive landscape, legal basics. The last layer holds the verdict, roast, and executive summary, which read everything that came before them.
The 8-layer pipeline
Strict sequential execution would take ~30 minutes for a full report. Strict parallel would corrupt the upstream context every reasoning section depends on. The compromise: parallel within a layer, sequential between layers. A slow section among peers does not gate its siblings, but a slow section gates everything downstream that needs it.
Each layer starts only after all sections in the prior layer have settled (success or failure). Failed sections do not block the run — their dependents are marked blocked instead of pending, and the orchestrator keeps going. You can regenerate any failed or blocked section later from the Nova chat without re-running the entire pipeline.
Per-section model routing
Not every section needs the same model. The 9 premium-reasoning sections — verdict, risk register, JTBD analysis, validation experiments, SWOT, Porter's, business model canvas, PMF score, and upgrade verdict — run on Opus 4.7 or Sonnet 4.6 with a 16k extended-thinking budget. Synthesis sections that just recombine prior findings (executive summary, roast, research synthesis) run on Haiku 4.5 because formatting is not where reasoning earns its keep. Research-heavy sections (TAM, competitive, demand signals) run on Sonnet 4.6 with web_search enabled.
Sections classified as synthesis-only have web_search forcibly disabled even if their prompt would request it — saves ~30% of API spend and 3-6 minutes of wall-clock without compromising depth. Their material comes from your idea text, intake answers, and upstream section outputs.
Source citations + liveness
Every numeric claim in a section ships with a Source object — URL, 200-char quote, source type. Citations get walked out of the section JSON, deduplicated by URL across your whole report, and persisted asIdeaSource rows. A daily cron HEAD-checks each URL and marks dead links; when you open the report later, dead citations are flagged so you know which numbers need fresh evidence.
Refusal is explicitly allowed in the prompt: if a section can't find a verifiable source for a claim, it says so instead of fabricating one. You will see honest gaps in the report — that's the design, not a bug.
Per-section credits + refunds
Old validation tools charge upfront and refund nothing when something fails. PlanMySaaS charges credits the moment a section starts, and if that section fails, the exact credits charged for it get refunded automatically. Run out of credits mid-report? The orchestrator pauses gracefully, leaves the remaining sections at pending, and resumes from where it stopped after you top up. No section is ever paid for twice.
See the credits page for the exact numbers per section and the full-report and upgrade-report totals.
Next: see what each section covers for the catalog of 30 sections, or jump to understanding the verdict to see how the final score is computed.