# ETO Project Percent Complete and Margin Forecast Calculator

> Source: https://netray.co/tools/eto-percent-complete-and-margin-forecast-calculator
> Publisher: Netray (netray.co), AI and integration engineering for ERP and manufacturing systems.
> Section: Free Tools

## Short answer

Compute cost-to-cost percent complete, earned revenue, forecast gross margin, margin fade versus budget and over or under billing for a fixed-price engineer-to-order project.

## Category

cost-finance

## Industry

Engineer-to-Order Machinery

## Audience

- Controller
- Project manager
- Cost accountant

## Tool

**Kind:** calculator

**Currency:** $

**Inputs:**

#### Original contract value

**Key:** contract

**Type:** number

**Default:** 850000

**Min:** 0

**Step:** 5000

**Unit:** $

#### Approved change orders (net price)

**Key:** approved_co

**Type:** number

**Default:** 42000

**Min:** 0

**Step:** 1000

**Unit:** $

#### Original budgeted cost at completion

**Key:** budget_cost

**Type:** number

**Default:** 640000

**Min:** 0

**Step:** 5000

**Unit:** $

#### Budgeted cost added by approved change orders

**Key:** co_cost

**Type:** number

**Default:** 31000

**Min:** 0

**Step:** 1000

**Unit:** $

#### Actual cost incurred to date

**Key:** cost_to_date

**Type:** number

**Default:** 392000

**Min:** 0

**Step:** 5000

**Unit:** $

**Help:** Labor, material and subcontract cost recorded, including committed material received.

#### Estimate to complete (remaining cost)

**Key:** etc

**Type:** number

**Default:** 305000

**Min:** 0

**Step:** 5000

**Unit:** $

**Help:** Bottom-up forecast from the project manager, not budget minus actual.

#### Billed to date

**Key:** billed

**Type:** number

**Default:** 430000

**Min:** 0

**Step:** 5000

**Unit:** $

**Outputs:**

#### Revised contract value

**Key:** revised_contract

**Expr:** contract + approved_co

**Format:** currency

#### Revised budget cost

**Key:** revised_budget

**Expr:** budget_cost + co_cost

**Format:** currency

#### Estimate at completion (EAC)

**Key:** eac

**Expr:** cost_to_date + etc

**Format:** currency

**Description:** Actual cost plus forecast remaining cost.

#### Percent complete (cost to cost)

**Key:** pct

**Expr:** if(gt(eac, 0), min(100, cost_to_date / eac * 100), 0)

**Format:** percent

**Primary:** true

#### Earned revenue to date

**Key:** earned_rev

**Expr:** revised_contract * pct / 100

**Format:** currency

#### Forecast gross profit at completion

**Key:** gp_total

**Expr:** revised_contract - eac

**Format:** currency

**Primary:** true

#### Forecast gross margin

**Key:** margin_pct

**Expr:** if(gt(revised_contract, 0), gp_total / revised_contract * 100, 0)

**Format:** percent

#### Budget gross margin

**Key:** budget_margin

**Expr:** if(gt(revised_contract, 0), (revised_contract - revised_budget) / revised_contract * 100, 0)

**Format:** percent

#### Margin fade vs budget (points)

**Key:** fade

**Expr:** budget_margin - margin_pct

**Format:** decimal

**Description:** Positive means the forecast margin is below budget.

#### Overbilled (+) or underbilled (-)

**Key:** billing_pos

**Expr:** billed - earned_rev

**Format:** currency

**Description:** Overbilling is a contract liability, underbilling a contract asset.

**Chart:**

#### Forecast gross margin vs estimate to complete

**Type:** line

**X:** etc

**From:** 150000

**To:** 500000

**Steps:** 25

**Series:**

- margin_pct

**Disclaimer:** Cost-to-cost input method as commonly applied under ASC 606 for over-time recognition. Your auditors and accounting policy decide the actual treatment, including loss provisions on loss contracts.

## Content

**Intro:** On a fixed-price ETO project the margin you see in the ERP is only as good as the estimate to complete behind it. This calculator applies the cost-to-cost method to give percent complete, earned revenue, forecast margin and the billing position in one place.

**Sections:**

#### How to use it

**Body:** Enter the contract value and approved change orders at their net price, then the original budgeted cost and the budgeted cost the change orders added. Take actual cost to date from your job cost report and ask the project manager for a bottom-up estimate to complete. The result shows percent complete, earned revenue and the forecast gross profit. Compare forecast margin to budget margin to see fade, and compare billed to earned revenue to see whether the project is a contract asset or liability.

**Bullets:**

- Use approved change orders only; unapproved ones belong in the exposure log
- Refresh the estimate to complete at every close
- Include received but uninvoiced material in cost to date

#### The formulas

**Body:** Estimate at completion is actual cost to date plus estimate to complete. Percent complete is cost to date divided by EAC. Earned revenue is revised contract value times percent complete. Forecast gross profit is revised contract value minus EAC, and margin fade is budget margin minus forecast margin in percentage points. Over or under billing is billed to date minus earned revenue. These are the standard cost-to-cost relationships; if your policy uses units delivered or milestones, the percent complete input changes but the rest holds.

#### Reading the output

**Body:** Margin fade is the early warning. A project that began at 25 percent budget margin and now forecasts 17 percent has lost eight points, and the sweep chart shows how sensitive the result is to the remaining cost forecast. Heavy overbilling is cash-positive but can hide a project that is behind. Underbilling often points to milestones not yet invoiced or a customer dispute. If forecast gross profit goes negative, the full expected loss normally must be recognised immediately, so involve your controller.

#### Common mistakes

**Body:** The classic error is setting estimate to complete as budget minus actual, which assumes perfect performance on the remainder. Another is leaving material purchased but not yet used out of cost, which understates percent complete on material-heavy jobs; many policies exclude uninstalled materials from the progress measure, so follow your policy. People also forget to add change-order cost to the budget when adding the price, producing false margin gains.

**Bullets:**

- Forecast from the work remaining, not from the budget remaining
- Match change-order price and cost in the same period
- Track fade monthly, not at project close

**Cta:** If your project cost, billing and forecast data live in SyteLine, NetSuite or another ERP, Netray can build an on-prem view that computes this for every open job. Ask about it.

**Faq:**

#### What is cost-to-cost percent complete?

**Answer:** It is an input measure of progress: costs incurred to date divided by total expected costs at completion. It is widely used for fixed-price contracts because cost data is readily available in job costing, and it drives revenue recognition under over-time methods.

#### Why does forecast margin change when estimate to complete changes?

**Answer:** Because EAC is actual plus estimate to complete, any increase in remaining cost lowers gross profit at completion one for one. Percent complete also falls, which moves earned revenue, so the to-date profit shifts too.

#### What does overbilled mean?

**Answer:** Overbilled means you have invoiced more than the revenue earned to date. It is shown as a contract liability, sometimes called billings in excess of costs. Underbilled is the opposite and appears as a contract asset.

#### How often should I update the estimate to complete?

**Answer:** At least every month-end close, and any time a major event occurs such as a design change, a supplier delay or a rework event. Stale estimates to complete are the main reason margin surprises appear late.

## Search terms

percent complete calculator, cost to cost percent complete, project margin forecast, margin fade calculator, over under billing calculator, estimate at completion calculator, poc revenue recognition calculator, fixed price project margin tracker

---
Talk to an engineer: https://netray.co/contact?intent=erp_ai | Machine catalog: https://netray.co/agent/catalog.json
