When you click "Generate plan" on a keyword, a short but deliberate pipeline runs. This is what happens between that click and a finished business plan in the library.
1. Eligibility and dedup
First we check whether this keyword (or one with the same underlying business model) already has a plan. If it does, we reuse it via a lightweight reference row instead of paying to regenerate near-identical content. The smart picker uses the same logic to skip keywords that are already covered and choose the next ungenerated candidate above the score threshold.
2. Drafting with a model chain
The keyword and its context are sent to a large-language-model chain with a structured prompt that requests a complete plan: market, model, go-to-market, a multi-year financial sketch and risks — returned as valid, parseable output. We budget enough tokens for a full document rather than a teaser.
3. Multi-provider failover
A single model provider is a single point of failure. The chain tries providers in order and falls over to the next on error or rate limiting, with a preferred provider first. The goal is simple: a transient outage at one vendor should not turn into a failed generation for you.
4. Persist and view
The result is stored with its status, score, model tag and token usage, then rendered as a full HTML document at its own URL. While it is being written, the page shows a working state and refreshes itself; on failure it offers a retry.
What we are careful about
Generated plans are drafts to reason with, not gospel. We persist token usage so cost stays honest, dedup so we do not bill effort twice, and we surface failures plainly instead of pretending every run succeeds. The output is a strong first draft — your judgement is still the last step.