Approvals and surcharges
When a project runs over budget or you need to charge extra for materials/travel/etc., the portal has a structured approval flow so the client always agrees to extra spending before it happens. No more "surprise" invoices.
When approval is required
Three things put an approval in front of the client:
- A project reaches its budget. Once billable work passes 80% of the project's budget cap, the portal raises the request and emails the client. At 100% of the cap, new billable work stops until the client approves more. Fixed-price projects are exempt: their budget is shown for reference and never gates work.
- A surcharge is added to a project that wasn't set up with surcharges disclosed. If the project's service plan sets an auto-approve ceiling, only surcharges above that ceiling need approval.
- You ask for extra hours from Client Actions, then Request hours.
The approval flow
1. You request approval
Budget requests are raised for you. There's no button for them: the portal creates the request as soon as billable work crosses 80% of the cap, and again later if the approved extra budget gets used up.
To ask for extra hours, open the client's page, click Client Actions, then Request hours. The Request More Hours dialog asks for:
- Project (optional), left on "All projects (retainer)" for retainer clients.
- Hours to request, in whole hours.
- Message to client (optional), explaining why you need them.
Click Send Request. The portal picks the kind of request for you: retainer clients get a retainer overage request, everyone else gets an extra-hours request on the project you chose.
Either way the portal:
- Emails the client and posts a notification in their portal.
- Shows the request with a red badge in the Approval Status section of the project you picked.
A pending hours request doesn't pause anything by itself. Billable work pauses only when a project's spend reaches its budget cap, or when a retainer client's included hours are used up. Non-billable work always continues.
2. Client responds
The client opens the email or their Approvals tab. They see:
- Current spend and the agreed budget (or current usage and current limit, for hours).
- The project the request belongs to.
- A box to enter how much they're approving: How much additional spending do you approve? ($) for budget, or How many extra billable hours do you approve? for hours.
- One button: Approve Extra Budget or Approve Extra Billable Time.
Retainer overage also asks them to pick which project to prioritize once the included time runs out.
The client types the number themselves, so they can approve less than you asked for. There's no Decline button on budget or hours approvals. A client who doesn't want to go ahead just leaves the request sitting, and billable work stays paused.
3. After their response
Approved:
- The project's cap goes up by the amount the client entered, on top of the original budget. The original budget is never edited by the approval.
- Billable work resumes as soon as there's room under the new cap.
- You get a notification, as long as Approval Responses is on in Settings, then Notifications.
- When the approved extra gets used up, the request flips back to pending and the client gets a fresh email.
Not approved:
- The request stays pending and billable work stays paused.
- You can still log non-billable work.
- Talk it through offline, or set a new budget yourself from Client Actions, then Budgets & dates. Budget changes are recorded in the activity log.
Surcharges
A surcharge is a one-off or recurring extra cost on a project: materials passthrough, fuel, equipment rental, third-party fees. They appear as line items ("Surcharge: Lumber pass-through") on the next invoice generated for the project.
Disclosed vs not disclosed
At project creation, you answer Surcharges Possible?. Your answer controls how new surcharges on that project are treated:
- Yes, surcharges may apply means surcharges can be added freely and apply automatically. You can also fill in What kind of surcharges?, which is shown to the client so they know what to expect.
- No surcharges expected means every new surcharge needs explicit client approval before it can be billed.
One exception: if the project's service plan set an auto-approve ceiling, surcharges at or under that amount are approved automatically even on a "no" project. The ceiling is snapshotted when the project is created, and the Surcharges section spells it out when one applies.
Adding a surcharge
From the project's Surcharges section:
- Surcharge Name, for example "Lumber pass-through".
- Amount in dollars. The field is labeled Amount ($) and takes
25.00. Do not enter cents: typing2500creates a $2,500.00 surcharge. - Frequency: Monthly, Quarterly, Annually, or One-Time.
- Notes (optional).
Every amount you type into the portal is in dollars. A $25 fuel surcharge is 25 or 25.00. Entering 2500 bills the client $2,500.00, and on a project with surcharges disclosed it goes straight onto the next invoice with no approval step to catch it.
The button reads Add Surcharge when surcharges are disclosed, and Request Surcharge Approval when they aren't. Disclosed surcharges are approved immediately and show up on the next invoice. Otherwise the surcharge sits as pending and an email goes to the client.
A few things worth knowing:
- Quarterly and annual amounts are spread across monthly invoices: a quarterly surcharge bills a third of the amount each month, an annual one a twelfth.
- A one-time surcharge bills once, on the invoice for the period it was approved in.
- Deactivate stops a surcharge from billing on future invoices.
- Surcharges can't be added to a completed project. Reopen it first.
Client response
The client gets an email and sees the surcharge in the Surcharges section of their Projects page, marked "Pending Your Approval". They choose Yes, I Approve or No, I Decline, with an optional response note that comes back to you. Once approved, it bills on the next invoice cycle. Declined surcharges never bill.
Recurring product costs (expenses)
A heads-up disclosure to the client about ongoing third-party costs they'll be responsible for as a result of the project. Common examples: cloud infrastructure (AWS, GCP, Azure) for an app you're building them, AI API usage (OpenAI, Anthropic) for an automation, SaaS subscriptions, hosting, domain renewals.
The client pays the vendor directly. These costs do not appear on any invoice you send, and the portal does not bill or forward them.
Add them in the project's Recurring Product Costs section so the client sees the full cost-of-ownership picture upfront. The amount field is in dollars here too. From their Projects page the client can Acknowledge each cost or Flag a concern, which is useful as a written record that they understood the ongoing costs before you started the work.
The distinction vs. surcharges:
- Surcharge is an extra amount you charge the client (your fuel, your equipment rental, materials you fronted). Bills on your invoice.
- Recurring product cost is a cost from a third party the client will pay directly (their cloud bill, their AI API bill, their SaaS subscription). Informational only, never bills through you.
Section attention badges
The project accordion flags what needs a decision:
- Approval Status shows a red badge counting the approval requests on that project waiting on the client. A non-zero badge means the client owes you a decision, and if it's a budget request, billable work on that project is paused.
- Surcharges shows its own amber badge counting surcharges awaiting client approval.
- Recurring Product Costs shows an amber badge counting costs the client hasn't acknowledged yet.
What clients see in their portal
Clients have an /dashboard/approvals tab that lists every pending budget, extra-hours, and retainer overage request across all their projects, plus an Approval History list of what they've approved before. Surcharges and recurring product costs are handled on their Projects page instead, inside the project they belong to.
Approvals don't expire. They sit pending until the client acts on them.
When billable work is blocked
Once a project's tracked value reaches its budget cap, Start Work with Billable ticked won't open a session. The portal emails the client the approval request and drops you back on the client page instead. Untick Billable and the session starts normally, so non-billable work is never held up.
For retainer clients who have used up their included hours, the Work Session section goes further: it unticks Billable for you and says billable work is paused until the client approves additional spending.
The block lifts as soon as the client approves more spending, or you raise the budget yourself from Client Actions, then Budgets & dates on the client's page. Budget edits are recorded in the activity log.
