Skip to main content
Checked against the product · 2026-10-05

Forecast a Single Contract

Open one contract's 12-month forecast, adjust its revenue, cost, and staffing lines, test alternatives safely in Sandbox mode, and commit the result — then push it through the submit/approve workflow.

This is the day-to-day loop for a controller or analyst who owns a book of contracts: pick a contract, get its forecast right, and lock it in.

Where it lives​

In the left nav, open FP&A → Operations → Forecast (/forecast). It sits between Contract Portfolio and Pricing, and it appears for any tenant with the FP&A module enabled.

You can also reach a single contract's forecast directly: from a contract's info drawer elsewhere in FP&A, click the button that opens its forecast editor.

Once on the Forecast page you will see the Forecast Cockpit, Contract Forecasts, Budget Submissions, Growth Targets, and Pipeline Forecast tabs, in that order — they build up one P&L forecast, so working left to right follows the way the number is assembled. Users with admin-config access also see an Indirect Costs tab holding the division-level forecast Inputs and Parameters (relocated from the Admin console); any other role following a link into it is told who can open it, rather than being dropped on another tab without a word. At the top right, the year picker (labeled FY followed by the year) sets which fiscal year you are forecasting. It appears only on the tabs it drives: Contract Forecasts, Budget Submissions and Pipeline Forecast. Confirm it is the year you intend before editing.

Each panel on this page tells a failed load apart from an empty one. If the editor reads The contract editor could not be loaded, or a panel says it could not read its data, the request failed; it is not telling you the contract has no forecast, no staff or no submissions. Retry before acting on it.

Step 1 — Find the contract​

  1. Click the Contract Forecasts tab.
  2. Use the Search contracts... box to filter by name or number. The count above the table tells you how many contracts match.
  3. If the contract you want has ended, tick Show Expired to bring expired contracts into the list.
  4. Scan the row. The table shows Contract, Ceiling, YTD Revenue, Forecast Rev, GP %, and Status. A GP % shown in red or yellow flags margins the platform considers thin.
tip

If you want to review the contract's profile before editing — contract number, client, period of performance, funded value — click the info icon (ⓘ) on its row to open the read-only drawer first. From there, Open Forecast Editor takes you into the editor.

Step 2 — Open the forecast editor​

On the contract's row, click Open. This opens the full-screen forecast editor for that single contract.

The editor header shows the contract name, its client, its Status, and its contract type. Below the header are three sub-tabs:

  • Forecast Grid — the 12-month spreadsheet where you edit numbers directly.
  • Staffing Calculator — build the forecast up from positions, rates, and hours (shown when contract-level payroll is available for your entity).
  • Summary — charts that show how the engine projects this contract across its full period of performance plus one year.

Step 3 — Adjust the forecast grid​

Click Forecast Grid. Each editable row runs across the twelve months of the fiscal year with a Total column on the right. The editable lines include Revenue, Direct Labor, and the other direct-cost rows. Gross Profit and GP % are computed for you and cannot be edited.

To edit a value:

  1. Click the cell for the month and row you want to change.
  2. Type the new number and confirm.
  3. Gross Profit and GP % recalculate immediately so you can see the margin effect of each change. A month with no revenue shows a dash for GP %, not 0%.
note

A month is locked once it carries actuals, and also once the accounting close has passed it, whichever reaches further — those columns are frozen. You can forecast only the months after both. The grid offers only months a save will accept, so a locked month you did not touch never blocks your save.

Copy a month forward​

If several future months should mirror an actual month you already have:

  1. Use the Copy from... picker in the header to choose a source month.
  2. Click the copy button beside it. The source month's values are copied into the editable months for you to adjust further.

Protect a month from recompute​

The Lock toolbar sits above the grid. Each month has a lock toggle:

  • Click a month to lock it — its icon switches to a closed lock and it is protected from being overwritten when the forecast is recomputed. You will see a Locked confirmation.
  • Click again to unlock it. You will see an Unlocked confirmation, and a recompute may overwrite it.

Closed (actuals) months show as disabled here — they are already frozen.

Compare against last year​

Click Prior Year in the header to overlay the prior fiscal year above your editable rows — every line the grid shows, the revenue and cost lines plus Gross Profit and GP % — so you can sanity-check this year's forecast against what actually happened last year. Click it again to hide them.

Step 4 — Build from staffing (optional)​

If you would rather derive Revenue and Direct Labor from people rather than typing them in, click the Staffing Calculator sub-tab.

  1. Add positions one of three ways: Add Position to enter one by hand, Import from Pricing Proposal to pull LCATs, bill rates, pay rates, and headcount from a saved proposal, or Derive from Actuals to back-derive rates from the contract's revenue history.
  2. For each position, set Position Name, Bill Rate ($/hr), Pay Rate ($/hr), and Vacancy %. Toggle Escalation on a position to model a mid-year rate change.
  3. Click Save Positions to persist your staffing, then Preview Forecast to generate a monthly revenue and labor projection.
  4. In the preview, set the apply-month range if the contract does not run the full year, then push the numbers into the grid with Apply Revenue, Apply Labor, or Apply Both.

Applying sends those values into the Forecast Grid as unsaved edits and returns you to the grid so you can see them. Closed months are skipped automatically.

Step 5 — Test changes in Sandbox mode​

Sandbox mode lets you try aggressive changes without touching your working forecast — nothing you do in the sandbox is committed until you deliberately promote it.

  1. In the editor header, click Sandbox. The header button changes to Exit Sandbox and the grid's row label column now reads Sandbox.
  2. Edit cells as usual. Gross Profit and GP % recompute from your sandbox values so you can see the impact of the what-if.
  3. When you have a version you like, click Apply to Base to copy the sandbox values into your real working edits. To throw the experiment away instead, click Discard.
  4. Clicking Exit Sandbox returns you to normal editing.
tip

Use Sandbox mode to answer "what if we raised the bill rate" or "what if this position stays vacant" without risking the forecast you have already tuned. Only Apply to Base moves those numbers into what you will eventually save.

Step 6 — Commit your edits​

Whenever the grid has unsaved changes, a Save button appears in the editor header.

  1. Click Save.
  2. If your edits move divisional revenue by more than a trivial amount, a rebalance prompt opens so you can reconcile against the division's target before the save completes. For small edits, the save goes through directly.

Closed months are never written — the save drops any edit that lands on a month at or before the close month.

Step 7 — Adjust contract settings that drive out-year forecasts (optional)​

Below the header is a collapsible Contract Settings panel. Its summary line shows the current recompete, p(win), and growth values at a glance. Expand it to set the assumptions that feed the out-year projection:

  • Recompete — whether this contract is assumed to recompete.
  • p(win) % — the probability the recompete is won.
  • Annual Growth % — year-over-year escalation applied to option years.
  • Recompete size, transition months, and an optional successor contract link. The card names the successor contract rather than showing its internal id.

Make your changes and click Save Settings. Open the Summary sub-tab afterward to visually confirm the projection reflects them — the charts mark where the period of performance ends and where the engine assumes the recompete fires.

Step 8 — Submit for review, or approve​

The workflow buttons in the header change with the contract's Status:

  • When the forecast is in draft with no unsaved edits, click Submit to send it for review. A confirmation tells you the fiscal-year forecast was submitted and out-year forecasts were regenerated.
  • If you are a reviewer and the forecast is submitted, click Approve to accept it, or Return to send it back to draft.

Choosing Return opens the Return to Draft dialog. Enter a reason and click Return to send it back to the owner, or Cancel to keep it as-is. The owner sees your reason when they reopen the contract.

note

Save commits your numbers. Submit moves the forecast into the review workflow. They are separate actions — save your edits first, then submit once the grid is clean.

The full loop, at a glance​

  1. Contract Forecasts → find the contract → Open.
  2. Edit the Forecast Grid, or build it from the Staffing Calculator.
  3. Test alternatives in Sandbox, then Apply to Base.
  4. Save to commit.
  5. Submit for review — reviewers Approve or Return.