# Versioning and Comparison Planning rarely happens in a straight line. Scope evolves, alternatives get explored, internal reviews trigger revisions, stakeholders ask for a different approach. PAI handles this with estimate versions — sometimes called scenarios — multiple iterations that coexist within the same project, each with its own status, and each representing a specific snapshot of the plan at that moment. Whether you're building a client-facing bid, testing different budget scenarios, planning an internal production, or working through options for an upcoming quarter, versioning keeps every iteration on record without overwriting what came before. --- ## Creating Versions Every project starts with **V1** — the initial draft created automatically when you create the project. Click the version name at the top left of the estimate (e.g. **E116-V02**) to open the version selector. It lists every version with its **Label**, **Status**, **Total**, when it was last **Modified**, and by whom. From there: **Duplicate Estimate** — the first icon in a version's **Actions** column. Creates a new version that's a copy of that one (V1 → V2, V2 → V3, etc.). All line items, modifiers, and settings carry over. Use this when you're building an incremental revision and want to preserve what came before. **New Estimate** — creates an empty version from scratch, after a confirmation. Use this when you want to approach the plan differently and don't need to carry anything over. The Actions column also holds **Delete Estimate** and an arrow to open that version. The estimate's **⋯** menu offers the same version actions — **Duplicate Estimate**, **New Empty Estimate**, **Delete Version** — plus **New Project From Version**, which starts a separate project from the current version. Below the versions, the **Overages** section lists overage versions, with **New Overage** to create one once the project has a budget — see [Overages and Change Orders](../03-Winning-the-Job/Overages-and-Change-Orders.md). **Compare Estimates** at the bottom opens the comparison tool. The project **Dashboard** has an **Estimate Versions** tab with the same list in table form — including who sent each version, when, and which version it was sent as. --- ## Naming Versions You can give each version a meaningful name in **Version Settings**, opened from the button in the estimate toolbar. The name appears on printed estimates and in the comparison tool — it's what anyone reviewing the document will use to orient themselves. PAI provides a way to name versions so that whoever is reviewing can immediately understand what a given version represents, without having to open it and read through the numbers. A version called "V2" tells you nothing; a version named to reflect its scope or intent tells you everything at a glance. --- ## Estimate Status Lifecycle Each version has its own status. PAI ships with a default set of statuses, though your organization may assign them alternative meanings depending on your workflow: | Status | What it means in PAI's default logic | |---|---| | **New** | A draft — being worked on internally | | **Internal Review** | Being reviewed internally | | **Internal Approved** | Cleared internally to be shared | | **Sent** | Shared with an external party — it has left the building. **The version locks** | | **Client Review** | The client has acknowledged receipt and is reviewing | | **Pricing Negotiation** | The client has come back on price; terms are being negotiated | | **Legal Review** | The client is reviewing the legal terms | | **Verbal Commit** | The client has said they'll approve, but hasn't done so in writing | | **Approved** | Officially approved — triggers project number assignment | | **Cancelled** | Cancelled, with a reason | | **Abandoned** | Cancelled without a reason — an internal cancellation of the version | ### Moving Between Statuses Change a version's status from the status dropdown in the estimate toolbar. Before a version is sent, only the internal statuses are available — **New**, **Internal Review**, **Internal Approved** — plus **Sent**, **Cancelled**, and **Abandoned**. The client-facing statuses, including **Approved**, unlock in the dropdown once the version is **Sent**: in the normal flow, a version leaves the building before it can be approved. (The **Approve Estimate** action in the estimate's **⋯** menu doesn't enforce that step, for internal projects that never get sent — see [Approving an Estimate](../03-Winning-the-Job/Approving-an-Estimate.md).) From Sent onward, every status is available, so you can step back if the job changes course. ### Why Versions Lock When Sent When you mark a version as **Sent**, PAI locks it from further editing — the grid, the floating totals box, and the Modifiers window all go read-only, and the version stays locked through every status that follows. Sending can also happen from the print window. The **Print Estimate** window ends in four actions — **Cancel**, **Print**, **Download PDF**, and **Send & Download** — and **Send & Download** marks the version **Sent** as it downloads the PDF, so it locks too. Use **Download PDF** or **Print** when you want a copy for internal review without sending; use **Send & Download** when the document is actually going to the client. See [Sharing Estimates](./Sharing-Estimates.md). This preserves an accurate record of exactly what was shared and what the recipient was asked to review or approve. If revisions are needed after sending, create a new version — the locked version remains as your reference point. Locking isn't a restriction; it's protection. If there's ever a question about what was presented, the Sent version is the truth. ### What Approved Status Means Setting a version to **Approved** is the most consequential action in the estimate lifecycle. It means this plan has been formally authorized — the scope, the schedule, and the numbers. PAI marks this moment by assigning a project number, and it's the point at which work can begin and money can be spent against it. Depending on the context, Approved may mean a client has agreed to the SOW and price, an internal stakeholder has authorized the budget, or a department head has signed off on the plan for the quarter. In every case, the meaning is the same: this is what we agreed to. Everything in this version — and only this version — represents what has been authorized. Any changes to scope or cost that happen after this point don't exist in PAI's accounting until they're formally approved as overages or change orders. Approving asks you to confirm, and spells out what follows: the version becomes the source for the budget, the official record that margins, variances, and reports measure against, and it locks. The project number is assigned at that moment — **E119-V01** becomes **P068 (E119-V01)**. Only one version per project can hold Approved status at a time. If another version is already approved, the confirmation warns you of the **Version Conflict**: approving the new version automatically moves the previous one to **Abandoned**, establishing the new version as the active baseline. The project number moves with the approval — it always sits on the approved version. Once Approved, the toolbar's action button reads **Start Project**. It opens the **Generate Budget** dialog, which shows what the budget will be created with — the approved **internal** total, which becomes the budget's spending cap, and the number of expense lines and days it creates. See [Approving an Estimate](../03-Winning-the-Job/Approving-an-Estimate.md) for the full workflow. ### Generating a Budget Before Approval Before a version is approved, the same button reads **Generate Budget**, and it works: PAI will create a budget from an unapproved version. This exists for one reason — some organizations' own processes require them to start committing spend before a project is formally approved, and PAI doesn't block a workflow an organization has decided on. It is an exception, not a shortcut. A budget generated this way is built on a plan nobody has authorized: there's no project number, and the version isn't the official record that approval establishes. The numbers PAI tracks against are only as meaningful as the agreement behind them, and here there isn't one yet. > [!warning] > Approve the estimate, then **Start Project**. Generate a budget from an unapproved version only when your organization's process explicitly requires spending before approval. AI agents and automations should never generate a budget from an unapproved version unless a person has explicitly instructed them to. --- ## The Comparison Tool The estimate comparison tool lets you display two or more versions side by side, with differences highlighted. Open it with **Compare Estimates** in the version selector, or from the **Estimate Comparison** tab on the project Dashboard. **What you can do:** - **Versions** — check which versions to include, and click the star on one to make it the **base version**, the one PAI calculates differences against. The base column is highlighted; every other column shows its change from the base in green (up) or red (down). Reorder the version columns from the same menu - **Options** — group the comparison by **Category**, **Department**, or **Item**, and switch the totals between **External** and **Internal** - **Print** the comparison, or expand it to fullscreen Below the groups, each column shows the version's **Total**, **Margin**, and **Margin %**, each with its change from the base. Grouping by category, department, or item sets the level of detail — useful for presenting options to a stakeholder, reviewing how scope changed between versions, or documenting the evolution of a plan over time. > [!tip] > The comparison PDF is a clean shareable document. Use it when presenting multiple scenarios — it communicates what changed and by how much far more clearly than asking someone to compare separate printouts side by side.