Software collection playbook
Jobber: collect complete job and payment evidence
Eligible object and complete source-run coverage.
By Sam Yang · Updated
Does the job-cost view double count a material purchase?
For a profitability decision, trace whether the same material entered as both item cost and expense in the selected QuickBooks connector. For a collection decision, use invoice and payment records instead of treating the job dashboard as cash evidence.
Evidence basis: Official job-costing and QBO integration documentation, with job costing rechecked October 7, 2026. These sources do not establish a dated native collection walkthrough or hands-on implementation outcome.
Use a supported API or integration where it covers the required objects and history. Check the actual account permissions and complete population before supplementing a gap.
Materials appear as both an item cost and an expense
Use one representative purchase to test whether the job-cost total includes both. Do not delete either record merely to make the total agree.
A recurring job margin is compared with a full-month or lifetime ledger view
The official job-costing guide describes whole-job costing for one-off work and a trailing 30-day window for recurring work. Check that definition before treating the difference as a missing cost or incorrect sync.
Use supported API or native report access for the required scope. A permitted browser session can collect a specific gap. Neither route proves reconciliation or complete costs.
Put the evidence to work
Is the margin low because the work consumed more resources, because a cost was counted twice, or because the comparison uses another window?
Trace one purchase and one labor entry before trusting an aggregate margin. Item costs and expenses can describe the same purchase. Also compare recurring work on its actual rolling window, then inspect the cross-system job reference before joining it to accounting. A permission error or sparse export identifies a collection limit, not missing activity.
Trace a material cost through job costing and accounting
- Select one known material purchase and preserve its receipt or supplier-bill identity, amount and job. Record the account’s NEW or legacy QuickBooks integration.
- Read the job’s line-item unit cost, quantity and linked expense entry. The official costing guide warns against recording the same cost in multiple inputs.
- Compare that purchase with its accounting expense or bill. Similar amount and supplier are candidate evidence; establish the actual source linkage before treating two records as one occurrence.
- Read the selected job’s costing window. One-off jobs use the job duration; recurring jobs use the last 30 days including today, so compare the accounting extract on the same window.
- Return the cost paths and effect on the displayed margin. Do not delete an expense or alter item costs during collection.
Bring to the review: A purchase trace that identifies each representation, the chosen costing window and the suspected duplicate effect.
Then decide: Have the owner decide the appropriate cost-entry convention and connector configuration, then verify the corrected job view against the original purchase.
Build a usable job-to-books bridge
- Collect stable job, visit, invoice and payment identities through authorized paginated reads or complete native reports. Keep jobs and visits as separate objects.
- Inspect explicit external references in custom fields, work-order fields, invoice fields and job titles before concluding the systems cannot map.
- Test the key spaces with known examples. A Jobber jobNumber is not automatically the customer work-order number. Retain leading-zero normalization separately from the original value.
- Segment unmatched records by period and work type. Work billed outside Jobber should remain a separate operating population rather than being counted as a failed integration.
- Check field access and nested collection limits. The saved collector separately probes jobCosting access; an accessible schema and a successful top-level request are not complete financial coverage.
Bring to the review: A mapping table with original keys, normalization rules, confirmed pairs, ambiguous candidates and work outside the participating population.
Then decide: Calculate job-level economics only on confirmed relationships. Route an access issue to the owner and an ambiguous match to manual review.
Which collection route answers this question?
Choose the route for the missing evidence and the access available in your account. The comparison below distinguishes documented coverage from coverage that still needs checking.
Supported API or integration
- What it supplies
- Jobber documents GraphQL with OAuth scopes, API versioning and schema exploration. Saved finance collection queries job relationships, line items and payment references while probing jobCosting access separately.
- What still needs proof
- Actual permitted fields, nested pagination completeness and retained history must be verified. Payment availability alone does not establish bank payout coverage.
Choose it when: Use authorized API reads when the needed relationships and history are accessible, with page-count and source-run checks.
Native report export
- What it supplies
- The official help center distinguishes One-Off Jobs, Recurring Jobs, Visits, Timesheets and Invoice/Payment reports.
- What still needs proof
- A report title does not establish that its financial columns are populated or that the export includes all historical records.
Choose it when: Use the relevant complete report for the defined question, particularly where a permitted API field is unavailable.
Permitted browser collection
- What it supplies
- Read-only job detail can show the selected costing inputs, window and an external work-order reference.
- What still needs proof
- A visit roster does not establish payroll hours; a hidden profit bar can reflect permissions.
Choose it when: Use detail to resolve a specific cost or mapping exception rather than scraping every screen by default.
Reproduce the diagnostic
One material purchase represented twice
All records and amounts below are fictional teaching inputs. This example demonstrates the calculation, not a customer outcome or a reproduced software defect.
The teaching scenario intentionally identifies the two $600 rows as representations of one purchase. Summing every cost gives $1,700 and $300 contribution. Counting the purchase once gives $1,100 and $900 contribution. These are direct-cost teaching contributions, not proof of net profit or a recommended deletion.
What the CSV columns mean
- entry_id: Fictional retained source row
- kind: The job-cost input category
- amount: Fictional USD
- economic_once: Whether the row belongs in a once-counted teaching total
- All represented costs
- 1700 USD
- What naive addition produces
- Once-counted costs
- 1100 USD
- Economic purchase plus labor and other expense
- Naive contribution
- 300 USD
- Price less all represented costs
- Once-counted contribution
- 900 USD
- Price less costs counted once
Inspect jobber-cost-trace.csv
entry_id,kind,amount,economic_once JB-DEMO-A,item_material,600,yes JB-DEMO-B,expense_same_purchase,600,no JB-DEMO-C,labor,400,yes JB-DEMO-D,other_expense,100,yesDownload this CSV
Next decision: Prove the shared purchase identity in real evidence, then approve the cost-entry convention. Include payroll burden and overhead before making broader profit claims.
Run the example locally
Save the CSV files, expected-results.json and reproduce.mjs in one folder. With Node.js installed, run the command below. It calculates the checks from the CSV bytes and rejects a changed input or expected result.
node reproduce.mjs expected-results.json
No software login, customer records or API key is required.
When the result does not make sense
Materials appear as both line-item cost and expense
Check: Trace both representations to the same actual purchase and compare the sum with a once-counted amount.
Resolve the question: Record the duplicate-cost effect for owner review; preserve both raw records until the entry convention is approved.
A recurring margin differs from the calendar-month ledger
Check: Check the exact rolling 30-day endpoints, job billing type and accounting period.
Resolve the question: Rebuild the comparison on the same window or show a date-bucket bridge instead of calling the difference a sync error.
Few jobs match accounting despite familiar customer names
Check: Inspect external work-order/custom-field/title references and the participating work segment.
Resolve the question: Retain explicit mappings and ambiguous candidates. Avoid forcing customer-level totals onto individual jobs.
Where automation earns its place
Good work for automation
- Flag multiple cost representations and assemble their source references for review.
- Maintain explicit external-reference mappings, pagination receipts and access exceptions.
Keep a person on these decisions
- Determine whether two rows represent the same purchase rather than two genuine equal-value purchases.
- Choose the labor-cost basis and approve any source configuration changes.
References behind these workflows
Product documentation supports the specific scope stated beside each source. Level's diagnostic methods and fictional calculations remain distinct from vendor capabilities.
- Jobber job costing
Official inputs, duplicate-cost risk and job-type windows, updated September 17, 2026. Reviewed .
- Jobber API documentation
GraphQL authentication, scopes, versions and schema exploration. A tenant access probe remains necessary. Reviewed .
- Jobber QuickBooks connection guide
Account configuration for the NEW integration, distinct from legacy behavior. Reviewed .
Collect and verify the population
- Job and visit records
- Retain separate job and visit identifiers, the actual labor source and the profitability window. Scheduled visits do not establish paid crew hours.
- Item cost, expense and connector
- Confirm NEW versus legacy QuickBooks integration and the direction of later cost changes in the current account.
- Invoice, payment and payout
- Keep customer payment evidence distinct from bank settlement; a payment object does not prove the payout cleared.
Use native reports for a documented gap; retain all pages and stable source IDs. Verify collection completion and retained record freshness and distinguish job, visit, invoice and payment populations.
Evidence acceptance checklist
- Confirm the actual integration edition and eligible objects.
- Collect all pages and stable identifiers for the chosen report population.
- Keep jobs, visits, invoices, payments and payroll evidence distinct.
Fictional collection example
A fictional Visit list covers every scheduled appointment. No verified duration or payroll cost is attached. Return visit coverage as established and labor cost as unavailable. Do not multiply scheduled visits into an asserted crew-payroll total.
Invented teaching scenario, not a customer result or a reproduced vendor defect.
Capture the setup with the evidence
- Company, legal entity or account, report name, period, basis, currency and timezone.
- Selected filters, status, page count, original record identifiers and control totals.
- Collection time, source route and authorized role. Record browser and automation versions when using a browser.
- Original files and exceptions. Keep credentials, customer identifiers and financial artifacts private.
A browser version helps reproduce an interface issue. It does not validate the financial conclusion.
Pitfalls and stop conditions
A Visit roster is not crew hours. Payment object availability is not payout reconciliation. A successful request is not a complete retained source population.
How a plausible answer can go wrong
A connected account and a plausible job margin can coexist with an extra material cost or omitted payroll burden. Test a specific cost path rather than assuming that a successful sync covered it.
Stop if account identity, permission, cutoff or population is uncertain. Return the missing evidence for review. Do not fill the gap with an invented record, a balancing entry or an assumed zero.
Read-only AI collection prompt
Replace the bracketed scope before use. This prompt collects evidence; it does not permit edits, approvals or accounting execution. Requesting an emailed report is a separate account action and requires explicit authorization.
Collect read-only evidence for Jobber to answer [financial question]. Confirm [company], [account/entity], [period], [basis], [currency] and [allowed reports]. Use native reports for a documented gap; retain all pages and stable source IDs. Verify collection completion and retained record freshness and distinguish job, visit, invoice and payment populations. Retain original files, complete record IDs, counts, filters, collection timestamp and exceptions. A Visit roster is not crew hours. Payment object availability is not payout reconciliation. A successful request is not a complete retained source population. Stop if the source or scope is uncertain. Do not post, match, reconnect, delete or change settings. Return the evidence for financial review; do not claim the books are correct. Do not approve, submit payroll, pay, transfer, refund, send messages, invite users or accept terms. Stop at any login, MFA or credential prompt and hand back to the account owner. Store files only in [approved private location]. Do not paste customer artifacts into public tools. Use only preauthorized collection actions. Request an emailed report only when its delivery is explicitly authorized; otherwise ask the account owner to supply the file.
Next decision
What does the evidence support?
Can a bookkeeper explain the same material purchase once in the job view and once in accounting, with actual labor identified separately? Use that result to decide configuration work before replacing the software.
Compare the same population, identities and cutoff. Keep unsupported costs or settlements visible before using the result for pricing, cash or close.
Open the financial acceptance guide →Sources and scope
Base product-reference scopes were reviewed . No end-to-end dated native UI walkthrough is published for this software. Individual source rechecks are dated with their citations. Operator decision guidance was reviewed 2026-10-07. The references below support their stated product scope, not every observed interface detail. It is not a vendor capability certification, a measured customer result or an independently reconciled account. Verify current features and entitlement in the account you use.
- Jobber official documentation
Documented QBO integration edition and settings.
- Jobber job-costing definitions and double counting
Official costing inputs, one-off versus recurring windows, and duplicate item-cost/expense risk; not proof of complete ledger or payroll coverage.
Product reference rechecked .