JCP Settings
The JCP (Job Cost Profitability) settings page configures the inputs that drive the JCP module's profitability dashboards: the default engineer cost rate, the financial year, per-user cost overrides, and the optional QuickBooks Online integration.
URL: /settings/jcp
Required permission: settings.tenant
How to get there
Go to Settings from the sidebar.
Open the JCP settings card.
Or from the JCP dashboard, click the settings cog in the top-right.
Labour cost
The engineer hourly cost feeds every profit-margin calculation in the JCP module: per-ticket profit, per-engineer profit, and monthly P&L roll-ups.
| Field | Notes |
|---|---|
| JCP override (pence per hour) | A JCP-specific cost rate in pence (e.g. 3000 = £30/hour). Leave blank to fall back to the claims rate. |
| Claims fallback | The value from Claims settings. Used automatically when the JCP override is blank. |
The two-rate design is deliberate: the Claims module already asks for an engineer hourly cost for commission profit calculations, and most MSPs want the same number used by JCP. The override is there for cases where your JCP accounting treatment differs from the claims one.
Per-user overrides (below) always win over both this rate and the claims fallback.
Financial year
| Field | Effect |
|---|---|
| Year start month | The month your financial year starts. Defaults to April (the standard UK FY). US tenants typically pick January. |
| Revenue recognition | accrual (revenue recognised when earned, the default for most UK businesses) or cash (revenue recognised when paid, simpler but less accurate for month-by-month P&L). |
These drive how the JCP dashboard groups months into quarters and year-to-date totals, and which column of the invoice history is used to count revenue.
Per-user cost overrides
A table listing every user in your workspace. Each row is inline-editable: edit a cell, tab out or click elsewhere, and the change saves independently.
| Column | Meaning |
|---|---|
| Engineer | Name and email of the user. |
| Hourly cost (pence) | Per-user cost rate in pence. Leave blank to fall back to the tenant default. Useful for senior engineers who cost more or junior ones who cost less. |
| Burden multiplier | 1x (standard), 1.5x (overtime), or 2x (premium). Applied on top of the hourly cost for overtime or emergency call-out time. |
| Contracted hrs/week | Contracted weekly hours (e.g. 37.5). Used to calculate utilisation and capacity metrics. Leave blank if you don't want to track utilisation for this user. |
Click Clear on a row to remove all overrides for that user; they'll revert to the tenant defaults.
Accounting integration: QuickBooks Online
If connected, the JCP module pulls your monthly P&L from QuickBooks and merges it with concorbit's revenue and cost data so your profitability dashboard reflects true operating profit (rent, salaries, utilities, subscriptions, not just ticket labour margin).
States
| Badge | Meaning |
|---|---|
| Not configured | Your platform admin hasn't set QBO_CLIENT_ID and QBO_CLIENT_SECRET in the environment. Ask them. |
| No badge (connect button shown) | Configured but not connected for this tenant. Click Connect QuickBooks to start the OAuth flow. You'll sign in to Intuit and authorise concorbit. |
| Connected | Active connection exists. The company name, last sync, and sync status are displayed. |
Actions when connected
Sync now: triggers an immediate pull from QuickBooks. Runs in the background; the page reloads when done.
Disconnect: revokes the connection. Your JCP dashboard will stop pulling P&L data until you reconnect.
Sync status
Healthy: last sync succeeded.
Degraded: recent sync ran into an error. Check the QuickBooks connection or retry with Sync now.
Daily sync also runs automatically in the background.
Chart of Accounts
When QuickBooks is connected and the qbo:sync --entity=accounts command has run at least once, a read-only mirror of your QB Chart of Accounts is displayed, grouped by account type (Income, Expense, Cost of Goods Sold, Assets, Liabilities, etc.).
Features:
Search: filter accounts by label or subtype.
Account rows show the label, subtype, and current balance in pounds.
This section is purely informational. concorbit does not maintain its own ledger; the CoA is a read-only reference so you can see what account codes JCP is matching against. Accountants continue to enter bills and make adjustments in QuickBooks itself.
Notes
Cost rate changes flush the JCP KPI cache immediately so the dashboard reflects new numbers on the next load (no 5-minute wait).
A user must have logged at least one time entry to appear meaningfully in the per-user overrides table; the rest of the rows are just there in case you want to set up rates before they start logging time.
If you are running both JCP and Claims modules, prefer to set the engineer cost in Claims and leave the JCP override blank, so both modules stay in sync and you only have one number to update.
QuickBooks integration is one-way (read-only pull from QB into JCP). concorbit does not write invoices or bills back to QB.