# Working with the Budget
## A Different Mental Model
Most producers are accustomed to a three-document workflow: an estimate or bid, a working budget where vendors get assigned to line items, and an actualized budget built after wrap by filling in real costs from time cards and invoices. Three separate documents, created at three separate times.
PAI collapses this into one. The working budget isn't created after the estimate — it's implicit in it. When you set internal amounts on estimate line items during the bidding phase, you're already doing the working budget. The external column is what you sold; the internal column is what you expect to spend. When you convert the approved estimate, PAI generates a budget pre-loaded with that cost structure and all its assignment slots — vendor or staff — ready to fill.
The actualization happens in place too. As expenses get confirmed, invoices come in, and payments go out, the same document updates — it doesn't get copied. PAI's Live Margins panel reflects the difference between what you budgeted and what you're actually spending in real time, without any manual reconciliation step.
For how the budget is created from an approved estimate, see [Generating the Budget](../03-Winning-the-Job/Generating-the-Budget.md).
---
## From Line Items to Expense Lines
The most disorienting part of the budget for new users isn't the interface — it's the structure. In an estimate, you have line items. One line: Camera Operator, QTY 2, UNIT QTY 3 days, $800/day. In the budget, that single line becomes six expense lines — one per operator per day.
This is intentional. A budget expense line represents a real financial commitment: a specific person (or resource), on a specific day, at a specific rate. That level of detail is what allows PAI to connect the budget to call sheets, to post expenses to the right vendor on the right day, and to calculate overtime against actual hours worked. The estimate abstracts that; the budget makes it concrete.
The structure can feel verbose when you're used to reading a budget as a compact list of categories. The answer is grouping.
---
## Organizing the Budget
The budget is a PAI table, which means you can group, filter, sort, and save views to organize expense lines however you need. Views sit in a strip across the top of the grid; column, grouping, row height, and CSV export controls sit under **Display Options** at the top right. See [Working with Tables](../00-Understanding-PAI/Navigating-PAI.md#working-with-tables) for the full set.
The budget opens on the **Assignment** view: lines grouped by **Assignee**, then **Item**, sorted by **Dates**. That answers the first question of a working budget — who is doing what, and what's still unassigned (lines without an assignee collect under **No Assignee**). Every line also carries its **Resource Type**, so group by it whenever you want in-house and out-of-pocket lines as two distinct blocks. Views are customizable, so the ones in your workspace may differ from these defaults.
To recreate the estimate's structure, group by **Department**, then **Item**. In the camera operator example: you see a Camera department group, open it to find a Camera Operator item group, and open that to see the individual expense lines — one per day. The same hierarchy you built in the estimate, with the detail underneath rather than in the way.
A few views worth saving early in a job:
- **By category** — mirrors the estimate structure; good for financial review
- **By day** — shows what's scheduled and committed for each production day
- **By resource type** — separates in-house labor from out-of-pocket spend
- **By status** — surfaces what needs attention (Draft lines that haven't been confirmed, Posted lines awaiting invoices or hours)
> [!tip]
> Set up your views before production starts. Switching between a category view and a day view mid-job is faster than reconfiguring filters from scratch. Once a view is working, right-click it and **Save to Team Views** so the rest of the crew reads the budget the same way you do.
**Right-clicking** an expense line opens its quick actions: **Copy**, **Open in Sidebar**, and **Upload Receipt** on every line; **Add to Outside Invoice** on out-of-pocket lines; and, while the line is still editable, **Record Payment** and **Delete**. A posted in-house line adds **Log Hours**. **Open in Sidebar** shows the line's full record, every field including the ones hidden in the grid, with **Receipts** and **Logged Hours** tabs underneath.
Right-clicking a group header acts on the whole group: **Expand All Groups**, **Collapse All Groups**, **Filter by this Group**, and copy, delete, or add all of the group's expenses to an outside invoice. Double-clicking a group header toggles expand/collapse. Selecting lines with their checkboxes brings up the same bulk actions in a bar at the bottom of the grid: copy, delete, and **Add to Outside Invoice**.
---
## Expense Line Fields
Budget expense lines carry a lot of fields — most are hidden by default and surfaced as needed via **Columns**, under Display Options. They group into a few logical areas:
**Line details** — **Resource Type** (In-House or Out-of-Pocket, inherited from the estimate), **Item** (name, inherited from the estimate), **QTY**, **Unit Qty**, **Unit**, **Rate**, **Subtotal**, **Total** (subtotal inclusive of fringes)
**Scheduling** — **Dates** (for Day-unit lines, the production day the line is assigned to; for Hours/Flat lines, the date range the line covers), **Booking Status** (whether the assignee has been booked for that day)
**Assignment** — **Assignee** (the vendor *or* staff member on the line — the budget's name for the estimate's **Assigned To** field; click the cell to search staff and vendors, or create a new one), **Email**, **Phone** (pulled from the assignee's record; useful for call sheet context), **Contact** (optional override — see below)
**Cost classification** — **Category**, **Department**, **Acct Number**, **Fringes** (which modifiers are applied to this line), **Fringe Total**, **Tags**, **Estimate Line** (the estimate line item this expense came from)
**Budget vs. actual** — **Budget Amt.** (what the line was budgeted at), **Variance**, plus **Currency** and **Exchange Rate**
**Overtime** — **Min Hrs** (agreed day length for Day-unit lines; see below), **O/T** (overtime calculation method)
**Tracking** — **Status** (expense lifecycle stage; see below), **Pay Method**, **Payment Date**, **Reimbursement** (marks the line as reimbursable; see below), **Receipts** (attached receipt documents)
**Invoice** — **Invoice Number**, **Invoice Date**, **Invoice Status** (populated once a vendor submits or an outside invoice is processed)
**System** — **Notes**, **Created On**
The line's sidebar (**Open in Sidebar**) carries a few more, including **Manual** (whether the line was recorded as a transaction rather than generated from the estimate) and, on in-house lines, **Progress** (hours logged against hours committed).
> [!note]
> The **Dates** field is where you set a line's scheduling, and it works as it does in the estimate. On a **Day-unit** line, clicking it opens a dropdown of the project's existing days — pick one to reassign the line — plus a row of day-type buttons (Prep, Travel, Production, Wrap, Post). Clicking a type **creates a new day of that type and assigns the line to it**, so you can spin up a production day directly from the budget without returning to the estimate or the calendar. On an **Hours** or **Flat** line, the field opens a date-range picker instead.
> [!tip]
> Not seeing a column? Open **Display Options → Columns** to show or hide columns. Budget column visibility is saved per view, so remember to save the view once you've got it right.
---
## Expense Statuses
Every expense line moves through a lifecycle from initial creation to final settlement. The current status determines what actions are available and what the assignee can see.
The statuses below describe the full out-of-pocket lifecycle, which ends in payment to a vendor. Every status is available on every line, but in-house lines normally travel only part of the way — Draft, Confirmed, Posted, Approved — because they're settled by hours reported rather than by an invoice. See [In-House Lines](#in-house-lines) below.
**Draft** — the initial state after budget generation. The expense exists as a planned cost but no commitment has been made. Lines can be freely edited or removed.
**Confirmed** — a commitment has been established. The vendor has been booked or the expense has been verified. The line is no longer tentative but hasn't been sent to the vendor yet.
**Posted** — the expense has been handed to whoever it's assigned to. On an out-of-pocket line, that means it's been sent to the vendor's portal for invoicing and the vendor receives an email notification. A posted line shows up in the vendor's portal only once its day has arrived: lines dated today or earlier are visible right away, and lines on a future day appear on that day. On an in-house line, it means the expense now appears in the assigned staff member's HQ, where they can report hours against it.
Once posted, the expense line is locked from direct editing. If you need to make changes before the assignee has acted on it, you can move the line back to Confirmed or Draft. Once a vendor submits an invoice against an out-of-pocket line, it moves under AP control and can no longer be edited or have its status changed from the budget.
> [!important]
> You can only post expense lines to vendors who are connected to your organization and active in the Vendor Portal. Merchant-classified vendors do not receive posted expenses. See [Vendors](../05-Vendors-and-Payments/Vendors.md).
When a vendor submits their invoice against posted expense lines, that group of lines constitutes a single invoice in PAI. The invoice is then audited at the expense line level — each line is reviewed and resolved independently. The invoice itself reaches an approved state only once all of its expense lines have been approved. For the full AP workflow, see [Accounts Payable](../05-Vendors-and-Payments/Accounts-Payable.md).
**Requested** — this specific expense line requires human review. Within a single invoice, some lines may auto-approve while others land in Requested — for example, when the invoiced amount for that line differs from what was posted, when the line is reimbursable (reimbursable lines are always reviewed, whatever the amount), or when the vendor added a line that wasn't in the original posting.
**Approved** — this expense line has been reviewed and accepted. If the vendor's invoiced amount matches the posted amount exactly, the line approves automatically.
**Rejected** — this expense line has been disputed. You enter a rejection note, and the line's budget subtotal goes back to the posted amount. To send the invoice back to the vendor for revision, choose **Request Changes** on the invoice; the vendor is notified, sees your rejection note on the line, and resubmits.
**Payment Scheduled** — a payment date has been set for this expense line. You set it from the approved invoice with **Schedule Payment Date**, picking a date or a preset (Net 15, 30, 45, 60, 90, or Immediate). The vendor can see the date in their portal, though no notification is sent when it's set.
**Paid** — this expense line has been paid. PAI sets it automatically when the scheduled payment date arrives. Final state.
**Refunded** — the vendor deleted this posted line from their invoice. The line stays in the budget at a $0 subtotal as a record that it was posted and withdrawn. This is permanent.
---
## In-House Lines
The status lifecycle above describes out-of-pocket expenses — money paid to vendors, tracked from commitment through invoice to payment. In-house lines inherit the **In-House** Resource Type from the estimate and are assigned to a staff member rather than a vendor, and what settles them is **hours reported**, not an invoice.
They run the same first three statuses — **Draft**, **Confirmed**, **Posted** — and posting works the way it does anywhere else: it hands the commitment to the assignee. But instead of arriving in a vendor portal for invoicing, a posted in-house line appears in that staff member's HQ, where they log their time against the hours you committed. When they mark the assignment complete, PAI rewrites the line's internal cost to the hours actually logged and moves it to **Approved** — the end of the lifecycle for an in-house line. The Status dropdown still lists the later stages (Requested, Rejected, Payment Scheduled, Paid, Refunded), but an in-house line has no use for them: there's no invoice to audit and no vendor to pay.
Reporting only applies to in-house lines on an **Hours** unit. Each line's committed hours become the assignee's allowance. To read reporting status, use the line's **Progress** column, which shows hours logged against hours committed (also in the line's sidebar), or the project's **Track Hours** page, which shows progress for every open in-house line. For the full flow — posting, logging blocks, reporting on someone's behalf, completion, and reopening — see [Hours Reporting](./Hours-Reporting.md).
Until an assignment is marked complete, the budget holds the line at its full committed value; logged hours move its progress, not its money. That's what makes the difference at completion meaningful: the gap between what you booked for internal labor and what it actually took. Those hours also feed the in-house figures in Live Margins (group by **Resource Type** to see them on their own) and the **In-House** sections of Project Finance.
> [!note]
> The internal cost of in-house lines is gated by the **View In-House Internal Cost** permission. Without it, you still see the line's hours, days, assignment, dates, and external figures — and whether it's over or under on hours — but the internal rate, internal total, and variance are hidden behind an eye-slash. You can manage the logistics of internal work without seeing what it costs the organization. See [Users and Permissions](../01-Organization-Setup/Users-and-Permissions.md#view-in-house-internal-cost).
---
## Min Hours and Overtime
Min Hours and overtime apply to **out-of-pocket Day-unit lines** — the vendor labor case. They don't apply to in-house lines, which are reported on an Hours unit at a flat rate with no overtime calculation. See [Hours Reporting](./Hours-Reporting.md).
For expense lines with a **Day** unit type, the **Min Hours** field defines the agreed length of the work day. This is the same min hours value set on the estimate line item — the explicit agreement with the vendor about what a "day" means for that role.
PAI uses min hours to calculate a floating straight-time hourly rate, which it then applies when a vendor submits hours through the portal. Three overtime calculation methods are available via the **OT** field:
**Tiered** (default) — California labor law structure:
- Hours 1–8: straight time (1×)
- Hours 9–12: time and a half (1.5×)
- Hours beyond 12: double time (2×)
**After 8** — simplified structure:
- Hours 1–8: straight time (1×)
- All hours beyond 8: time and a half (1.5×)
**None** — linear calculation:
- All hours at the straight-time rate, regardless of total
### Example
A Camera Operator at $700/day with 12 min hours on Tiered. The day rate is inclusive of overtime up to min hours:
- PAI calculates the straight-time hourly rate at $50/hr
- First 8 hours: 8 × $50 = $400
- Next 4 hours: 4 × $50 × 1.5 = $300
- Total at min hours: $700
Min hours are guaranteed: a vendor who works 10 hours is still paid $700. Beyond 12 hours, PAI adds double time automatically (14 hours = $700 + 2 × $50 × 2 = $900).
> [!note]
> Min Hours only applies to Day-unit expense lines. Changes to Min Hours after a line has been posted to a vendor will affect how their overtime is calculated when they submit hours.
---
## The Contact Field
Every expense line has an optional **Contact** field separate from the **Assignee** field. By default, an expense line pulls the assignee's contact information onto the call sheet — if Bob Smith is the assignee, Bob's name, email, and phone appear on the call sheet crew row.
The Contact field lets you override that. Add any person — another vendor, a client contact, a workspace user — and their information replaces the assignee's on logistical documents. The assignment (and therefore the payee) stays unchanged; only what appears on the call sheet changes.
This is useful when the person being paid and the person showing up on set are different — for example, a talent agent is the vendor on a talent line, but the actual talent should be listed on the call sheet.
---
## Assignment and Call Sheet Sync
Assigning a vendor or staff member to a budget expense line automatically adds them to the call sheet for that day. Adding a line on a call sheet creates the corresponding expense line in the budget. Assignee and rate changes in either place update both.
An expense line appears on a call sheet when it's assigned to a **Production** day. Labor lines appear under **Crew**; equipment and service lines appear under **Equipment & Services**. See [Call Sheets](./Call-Sheets.md).
This sync means you don't need to maintain the budget and call sheets separately — they're the same data, viewed from different angles. Use the budget when you're thinking financially; use the call sheet when you're thinking logistically.
---
## Recording a Transaction
When you pay an expense directly — on a company card, an employee's card, or in cash — log it from the **Record Transaction** menu at the top of the budget: choose **Upload Receipt**. This is for costs you've already paid and just need to log in the system. (The menu's other option, **Upload Outside Invoice**, is for bills that still need to go through AP. See [Submitting an Outside Invoice](#submitting-an-outside-invoice).)
The form contains:
- **Item** — select an existing item from the budget or create a new one
- **Vendor** — optional; associate the payment with a vendor record
- **Amount** — the amount paid
- **Payment Method** — **Cash**, **Company CC** (the default), or **Employee CC**
- **Payment Date** — defaults to today
- **Receipt** — required; drag and drop or click to upload. Check **I do not have a receipt** to submit without one
- **Notes** — optional
When you submit, PAI creates the expense line and marks it **Paid** immediately — there's no status progression, because the payment already happened.
### Recording against an existing expense line
If the expense line already exists in the budget, right-click it and choose **Record Payment**. This opens the same form for that line, with its amount and other details pre-filled. You can modify any field before submitting, but in most cases the inherited values are correct and you just need to attach the receipt and confirm.
> [!tip]
> Recording against an existing line is the preferred approach when the expense was already planned in the budget — it keeps the line in place rather than creating a duplicate entry.
---
## Submitting an Outside Invoice
Some vendors need to be paid via payroll, ACH, or wire transfer — payment methods that organizations typically route through accounts payable rather than handling directly. When a vendor sends their invoice outside of PAI (by email, for example), you can submit it into the AP workflow on their behalf rather than processing it outside the system.
1. In the budget, select the expense lines the invoice covers, then choose **Add to Outside Invoice** from the bulk action bar (or right-click a line or group header)
2. Drop the vendor's invoice document into the left pane
3. Enter the invoice **Total**, **Invoice Date**, and **Net Terms**
4. Choose the **Vendor**, and code the invoice with a **Category** and **Department**
5. Optionally add **Notes**, the **Vendor Invoice Number** (the number on the vendor's own document), a **Payment Link**, and **Vendor Notes**. On the invoice, Notes and Payment Link show as **AP Notes** and **Vendor Payment Link**
6. Click **Submit to Accounts Payable**
The form shows how many expenses you selected and their total, and compares that **Expenses Total** to the **Document Total** you enter, so you see any gap before you submit. That's PAI holding the vendor's bill up against what you committed.
For an invoice that doesn't match lines already in the budget, choose **Record Transaction → Upload Outside Invoice** instead. It's the same form, without selected expenses.
PAI creates a submitted invoice in the project's AP grid and the organization-wide AP grid, attributed to the vendor, the same as if the vendor had submitted it through the portal. From there the standard AP workflow applies: review, approve, schedule payment.
This keeps vendor payments that require AP handling inside the system rather than being tracked externally, and works regardless of whether the vendor has a portal account.
> [!note]
> If the invoice total differs from the posted amount on the selected expense lines, those lines will land in **Requested** status for review rather than auto-approving.
---
## Reimbursable Expenses
Expense lines marked **Reimbursable** behave differently in the vendor portal. Rather than showing the full billable value, they start at $0 with the preapproved maximum shown beside it (for example, "Preapproved for up to $150.00" on a catering expense). The vendor enters the amount actually spent and must upload a receipt before they can submit the line. The maximum is a guide, not a limit: every reimbursable line comes to you for review, whether it's over or under the preapproved amount.
---
## Financial Visibility
The budget always tells you where you stand against what you approved. Two places show it:
- The **floating totals box** over the grid reads **Internal** (the approved internal total, your spending cap), **Working Total** (what the budget now adds up to), and **Working Variance** in dollars and percent. Positive variance means you're under; negative means you've committed more than you approved.
- The **Live Margins** panel in the right sidebar breaks the same comparison down. The budget ships two views, **Totals** and **Variance**. Columns are **Estimate Internal**, **Working Total**, and **Working Variance**, with **Estimate External** and **Estimate Margin** available under **Display Options → Columns**. Rows are grouped by department by default, with **Subtotal**, **Markups**, and **Grand Total** beneath. Regroup it (by Resource Type, for example), toggle **Show Margin Percent**, and choose which approved overages to count with **Included Overages**, then save the arrangement as a view.
Without the **View In-House Internal Cost** permission, in-house internal dollars are hidden. You still see in-house hours and every out-of-pocket figure, but not what internal labor costs. The floating totals box switches to an **Out Of Pocket** read, so its Internal, Working Total and Working Variance cover out-of-pocket lines only.
For a deeper financial view across the project, use the **Finance** page in the project's left navigation. For a full explanation of Live Margins and how to read it, see [Live Margins](../06-Financial-Visibility/Live-Margins.md).