# Building an Estimate
The estimate is where you project what you plan to charge and what you plan to spend. Those two numbers — and the gap between them — are what PAI tracks throughout production. Build the estimate carefully, and PAI will always be able to tell you how reality compares to what you planned. The estimate is the baseline; everything downstream is measured against it.
This doc covers the mechanics: adding line items, setting quantities and rates, and understanding how PAI calculates costs. For the different views you can use while building (Sheet, Days, Timeline), see [Estimate Views](./Estimate-Views.md). For modifiers (fringes and markups), see [Modifiers](./Modifiers.md).
---
## Adding Line Items
Line items are the building blocks of an estimate. Each one represents a single service, resource, or deliverable — an editor, a day of studio time, a licensing fee.
All line items in PAI come from the rate card. You add them from the **floating totals box** that sits over the grid: click into it, or press **/** from anywhere on the estimate, and start typing. Results come back in groups — **Items** from the rate card, each labeled with its category and department (e.g. *Labor · Post*), and **Staff** for matching workspace users. Use the arrow keys and **Enter**, or click, to add one; an item arrives pre-populated with its default department, category, unit type, and rates. If nothing fits, the last option is **Create Item "…"** with what you typed. Creating a new item adds it to the rate card automatically.
### The floating totals box
The box does two jobs at once. It's the entry point for adding items, and it's the running read on where the estimate stands: **External**, **Internal**, **Margin $**, and **Margin %**, updating as you build. It replaces the grand total box that used to sit in the top-right corner of the grid.
It floats over the grid so those four numbers stay with you as you scroll and work. If it's covering a line you need, dismiss it with the **×**.
Without the [View In-House Internal Cost](../01-Organization-Setup/Users-and-Permissions.md#view-in-house-internal-cost) permission, the box shows the blended **External** total, then an **Out Of Pocket** read: External, Internal, Margin $ and Margin % for out-of-pocket lines only. Nothing in it includes in-house internal cost.
### Adding a Staff Member by Name
The same search also matches workspace users — one quick way to put internal staff on an estimate. Search a person's name instead of an item; matches appear under **Staff**, each with their default item beneath their name. Select one and PAI builds an in-house line for them:
- **If the user has a default item** on their staff rate card, PAI adds that item, assigns the person, sets the line's Resource Type to **In-House**, and applies their rates — one step.
- **If the user has no default item**, PAI opens an item-select modal. Pick the role from the dropdown and PAI adds it with the person assigned.
Either way, the line is rated from the person's [staff rate card](../01-Organization-Setup/Staff-Rates.md) rather than the organization rate card — including the unit type configured there, so someone billed hourly comes in on an Hours unit even if the item normally defaults to Days. You can also assign a staff member to a line that already exists; the line flips to In-House and re-rates against their card. For the exact rate-resolution order, see [Staff Rates](../01-Organization-Setup/Staff-Rates.md#how-rates-resolve-on-a-line).
Once a line item is added to an estimate, you can configure it for that estimate — adjust quantities, rates, notes — without affecting the rate card. When you've arrived at a rate configuration worth saving, right-click the line and choose **Save Rate**. This saves that specific rate configuration back to the item on the rate card for future use. The same menu has **Duplicate Line** and **Delete**. **Save Rate** is available on out-of-pocket lines only — it's disabled for in-house lines, whose rates belong to each person's [staff rate card](../01-Organization-Setup/Staff-Rates.md) rather than the organization rate card.
> [!tip]
> Line item names come from the rate card and are fixed once set. If you need a different name, create a new item. For rate variations of the same item (different day rates, different configurations), use **Save Rate** to save those as rate card entries.
---
## Line Item Fields
Each line item carries metadata that determines how it's organized and calculated. The names below are the column names in the grid; the Estimation view shows the core set, and the rest can be turned on from **Columns**.
- **Resource Type** — whether the line is **In-House** or **Out-of-Pocket**. See [Resource Types](#resource-types) below.
- **Item** — the item name, sourced from the rate card; not editable on the line
- **Assigned To** — who the line is assigned to: a vendor or a staff member. See [Assigned To and Dates](#assigned-to-and-dates) below.
- **Dates** — when the line is happening. See [Assigned To and Dates](#assigned-to-and-dates) below.
- **Department** — which department the item belongs to. Used primarily to organize line items in the estimate grid and financial summaries; departments feed into financial totals as an added benefit.
- **Department Group** — the higher-level grouping: Agency, Creative, Prep, Production, Wrap, Post, Media
- **Category** — organizes items by cost type and tells PAI how to handle billing for expenses in that category (Labor, Equipment, Facility, etc.)
- **Unit** — the unit type: Days, Hours, or Flat
- **Min. Hrs** — for Day-unit items, defines the standard day length.
- **Modifiers** — the fringes and markups applied to the line. See [Modifiers](./Modifiers.md).
- **Headcount** — how many people the line represents: a Line Producer is 1, a camera rental is 0. Sum it for a quick count of total personnel — the number behind meal counts and other per-person logistics
- **Disc. (%)** — a percentage discount on the line
- **Currency** and **Exchange Rate** — for a line paid in a foreign currency. Set the currency on the line; the exchange rate comes from the project's **Currencies** settings in [Version Settings](./Estimate-Views.md#version-settings)
- **Acct Num** — auto-assigned from the rate card; used in financial reporting
- **Rev. Recog** — revenue recognition category; accounting metadata for financial reporting
- **Int. Note** — private notes visible only to your team; never appear in externalized documents
- **Ext. Description** — appears on printed estimates; use to describe what a line item includes for the client
---
## Resource Types
Every line item is either **In-House** or **Out-of-Pocket** — its **Resource Type**. This single designation is what lets PAI track the two costs of a project separately and then combine them:
- **Out-of-Pocket (OOP)** — external spend: vendors, freelancers, rental houses. Money that leaves the building. Visible to everyone.
- **In-House** — the cost of your own staff's labor, drawn from their staff rate card. The internal side is confidential by default — see below.
Resource Type is an editable field. Like Unit, it's a fixed set of choices: click into the cell and pick **In-House** or **Out-of-Pocket**. Adding a staff member by name sets it to In-House for you, but you can change any line's Resource Type directly when you need to.
By default, the estimate's data grid groups by Resource Type at the top level, so your in-house and out-of-pocket work read as two distinct blocks. See [Estimate Views](./Estimate-Views.md).
> [!important]
> **"Internal" is the cost side on every line; In-House and Out-of-Pocket is which track that cost belongs to.** On an OOP line, the internal value is the vendor cost — visible to everyone. On an in-house line, the internal value is your staff cost — confidential by default, gated by the **View In-House Internal Cost** permission. Users without that permission see an eye-slash icon in place of the internal rate, internal subtotal, internal fringe, internal total, and margin on in-house lines, but still see everything on OOP lines and all external and logistical fields. See [Users and Permissions](../01-Organization-Setup/Users-and-Permissions.md#view-in-house-internal-cost).
---
## How PAI Calculates Cost
Every line item uses the same formula:
**QTY × UNIT QTY × RATE = Subtotal**
This runs separately for external and internal values.
- **QTY** — the number of unique instances. Two editors = QTY 2.
- **UNIT QTY** — how much of the unit type applies to each instance. Four days each = UNIT QTY 4.
- **External Rate** — what you plan to charge (your price to the client)
- **Internal Rate** — what you plan to spend (your actual cost)
The difference between the external subtotal and the internal subtotal is the **margin** on that line item — what you plan to make. When those rates are the same, margin is zero; when external exceeds internal, you're building in a return above cost.
### Example
An editor at an external day rate of $900 and an internal rate of $750, working 4 days:
| | Calculation | Result |
|---|---|---|
| External (price) | 1 × 4 × $900 | $3,600 |
| Internal (cost) | 1 × 4 × $750 | $3,000 |
| **Margin** | $3,600 − $3,000 | **$600** |
Because this is an estimate, all of these are **projected** amounts — you're planning to charge $3,600 and planning to spend $3,000, for a projected margin of $600. That projection becomes the baseline PAI measures against when the job is live. The Live Margins panel shows you, in real time, whether actual spend is tracking with what you planned.
Margin represents what you expect to make on a given item or the project as a whole. That might be profit, overhead recovery, a contingency buffer, or something else depending on how your organization uses it — the label matters less than the discipline of projecting it and tracking it through production.
---
## Unit Types
The unit type you assign to a line item changes how it behaves throughout the system — not just in the estimate, but in the budget and calendar too.
**Days** — the item is scheduled onto specific production days. It appears in Days View and Timeline View, creates logical day entities in the system, and can generate call sheets when the project is activated. Use Days for any resource that's engaged on a per-day basis. Raising a Days line's Unit Qty past the number of days the project has asks you to confirm the change (e.g., "change the number of days in the project from 1 to 3?") — confirming adds the days.
**Hours** — a time-based cost that isn't tied to individual production days (e.g., editorial time billed by the hour across a multi-week engagement). It isn't placed on production days, but you can still give it a date range in the **Dates** field to record the span it covers.
**Flat** — a fixed cost that doesn't scale with time. QTY × 1 × RATE. Use Flat for licensing fees, delivery charges, project fees, or any cost that's a set number regardless of how long the project runs. Like Hours, a Flat line can carry a date range in the **Dates** field.
> [!note]
> Unit type determines which calendar layer a line feeds. **Days** lines populate the **Project Schedule** layer — the shared production days that drive Days and Timeline View and generate call sheets. **Hours** and **Flat** lines instead populate the **Assigned Dates** layer: the range you set in the Dates field marks committed time without creating a production day. Set a range's start and end to the same date to place one on a single day. See [Project Calendar](../04-Executing-the-Job/Project-Calendar.md).
---
## Rates and Min Hours
Rates come from the rate card when you add an item and can be adjusted freely within an estimate. Changing rates in the estimate doesn't affect the rate card.
**Min Hours** applies to Day-unit items and defines the agreed length of that day's engagement — how many hours this rate covers. It prints on the estimate, making it an explicit part of the bid: this resource is engaged for 10 hours, not 11. That specificity is intentional. On the client side, hours beyond the min can become an overage. On the vendor side, they can become an overtime claim. Either way, PAI needs the number to know when the agreement has been exceeded. The organization sets a default (typically 10 hours), which pre-fills at project creation; you can override it in the project creation modal and change it on individual line items at any time.
---
## Assigned To and Dates
Two fields capture the logistics of a line — who's doing the work and when.
**Assigned To** names the resource on the line. It can be a **vendor** or a **staff member**: assigning a vendor is how external work gets a payee; assigning a staff member makes the line in-house and pulls in their rates (see [Adding a Staff Member by Name](#adding-a-staff-member-by-name)). The field accepts either, which is why it's "Assigned To" rather than "Vendor" — though vendor *records* and the Vendors module keep the vendor name.
**Dates** captures when the line happens, and what it shows depends on the unit type:
- **Days** — the field lists the specific days the line is assigned to, by name (the same logical days you see in Days and Timeline View). You can also create a new day right from the cell by choosing a day type — a prep day, a production day, and so on.
- **Hours or Flat** — the field opens a date-picker. Choose a start and end date and the cell displays the range, e.g. **Jun 22 – 29, 2026**.
Dates feed PAI's per-user calendars, so a staff member's assignments — and the span of time they cover — show up on their record. This is the foundation for seeing who's committed when across projects.
---
## Modifiers
Once your line items are in place, you'll likely want to account for costs that sit on top of individual line item rates — things like taxes, insurance, agency fees, or a production markup. PAI handles these through **Modifiers**, which are percentage-based adjustments that can be applied across the estimate at different levels of specificity.
Modifiers come in two types: **Fringes** and **Markups**. Both run on external and internal values independently, so you can model pass-through costs, margin-generating markups, or internal-only costs depending on how you configure them. For a full explanation of both, see [Modifiers](./Modifiers.md).
---
## Sidebar Panels
While building an estimate, the project sidebar gives you additional context and configuration options. Open it with the sidebar button at the top right of the project view (**⇧⌘S**), and switch panels from the selector at the top of the sidebar.
**Grid** — the current grid's layout controls (Views, Columns, Filter, Sort, Group) in one place, plus a **Totals** read for the rows you've selected: headcount, external and internal subtotals, fringes, and totals, and margin.
**Live Margins** — a real-time financial panel that updates as you build: what you're billing, what you expect to spend, and the margin that results. The panel is configurable — it ships with **Totals** and **Margin** views, and you can build your own, choosing which figures appear and how they group. It's PAI telling you, as you build, whether the numbers are where you want them. The floating totals box is the quick read; Live Margins is the full one.
**Reporting** — the opportunity details that feed pipeline and forecasting: Opportunity Owner, the **Reported Version** (which estimate version the pipeline reports), Expected Close Date, Probability, Lead Source, Job Type, Notes, and Loss Reason.
**Project Scope** and **Billing Notes** — the version's scope of work and billing terms, shown for the version you're viewing. Both are edited in [Version Settings](./Estimate-Views.md#version-settings), and both appear on externalized estimate documents.
**Internal Notes** — private notes visible only to your team. Never externalized.
**Messages** — the project's message thread. Messages are scoped to the project, not the version, so the conversation carries across every estimate version. Tag a user with **@** to notify them.
For a detailed breakdown of the financial panels, see [Live Margins](../06-Financial-Visibility/Live-Margins.md).