Software collection playbook
Housecall Pro: invoice and job-cost evidence
Invoice completeness and cost readiness.
By Sam Yang · Updated
Which report actually describes the jobs behind this margin?
Start with the question: calendar-period invoicing, payments received, or the lifetime economics of selected jobs. Those need different populations even when their screen totals look comparable.
Evidence basis: Saved native export sequence and job-cost review observations; current report limits and permissions must be checked.
Verify eligible objects, connector direction, trigger and current retained source population before supplementing it.
The owner wants calendar-year invoicing
Choose the relevant invoice-date population and retain invoice detail. A selected-job lifetime total needs a separate bridge to that period.
The owner wants margin on completed jobs
Keep the selected jobs and their full cost history together, then identify costs still missing. Job linkage alone cannot establish that all supplier and payroll costs arrived.
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
Why can a completed-job margin disagree with this month’s QuickBooks sales even when both reports are collected correctly?
The reports may describe different work. Invoice-date sales describe a calendar population; a selected job can include invoices and costs across several months. Start with a bridge between those populations. Then inspect the existing invoice link and the date settings before calling the difference a failed sync. A budget, entered job cost and supplier bill also have different evidentiary value.
Bridge selected jobs to calendar-period invoicing
- Write down the exact question: invoices dated in September, cash received in September, or lifetime economics of jobs completed in September. Freeze the intended business and basis.
- Using the saved October 6 collection procedure, obtain invoice detail from Home > View all invoices > Actions > Export > Send file only when email delivery is authorized. Otherwise use an owner-supplied export. Retain its filters, count and actual attachment.
- Collect job detail through Customers > Jobs > Actions > Export > Send file under the same delivery authorization. Keep the selected job IDs, completion dates and lifetime scope distinct from invoice dates.
- Attach each invoice to its source job. Partition that job’s invoices into before-period, in-period and after-period rows; do not copy the whole job value into the calendar column.
- For a receipt question, collect Reporting > Payments for its own period. The dated procedure observed a 365-day cap, which needs current confirmation. Review entered costs separately from payroll and supplier evidence.
Bring to the review: A job-to-invoice bridge with three date buckets, a separate receipt column and a missing-cost list. The totals explain which definition each number answers.
Then decide: Use lifetime job economics for pricing the selected work only after its costs are complete. Use the calendar bridge for accounting-period comparison.
Investigate a linked invoice that differs after a revision
- Retain both existing invoice identities, source totals and line details, plus the HCP QuickBooks card link where visible. Avoid searching by amount alone.
- Read the current trigger and invoice-date versus service-date settings. The September 3 official guide distinguishes those date treatments and simple versus progress invoicing.
- Compare the original linked invoice with the current HCP line items, quantities and prices. The guide says later invoice edits require a manual update push; collection does not press sync, Finish, Invoice or Pay.
- Check deposit and progress invoice identities separately. The invoice number may differ from the job number, so preserve the explicit links instead of assuming equality.
- Return a proposed change with affected fields and a before/after comparison to the owner. Require authorization before changing either system, then re-read both records.
Bring to the review: A revision exception naming the existing linked pair, changed fields, date configuration and any missing link.
Then decide: Decide whether the discrepancy is a date definition, a supported revision needing owner action, or an unresolved identity problem.
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 connector
- What it supplies
- The official API overview documents a public API for MAX-plan accounts and says not every feature is exposed. The QBO guide describes invoices, payments, new customers and price-book items flowing primarily from HCP.
- What still needs proof
- This review does not establish endpoint-level cost history coverage, the account’s API entitlement, or a complete supplier/payroll cost population.
Choose it when: Use supported read access for recurring collection after verifying required fields and actual account permissions. Test revisions and date mapping on existing authorized evidence.
Native report export
- What it supplies
- The saved collection separates emailed invoice detail, emailed job detail and the generated payment report. The Invoices by date export in that procedure was a grouped summary.
- What still needs proof
- A requested email is not an attachment. Current menus, caps and actual exported columns need readback.
Choose it when: Prefer the complete native file when it supplies the required population. Keep original bytes and reconcile detail counts before importing.
Permitted browser collection
- What it supplies
- Read-only navigation can inspect job cost panels, invoice links and account configuration that explain a named discrepancy.
- What still needs proof
- An empty panel does not prove zero expense, and a UI observation does not certify the entire tenant’s historical population.
Choose it when: Use it for a specific missing relationship or setting, keeping the original report and the observed detail together.
Reproduce the diagnostic
One completed job, two invoice periods
All records and amounts below are fictional teaching inputs. This example demonstrates the calculation, not a customer outcome or a reproduced software defect.
The selected job has $10,000 of invoices across its lifetime, but only $6,000 falls in September. The $4,000 difference is an earlier invoice, not evidence of missing September sales. This example establishes invoicing scope, not earned revenue, cash or profit.
What the CSV columns mean
- job_id: Fictional job identity
- invoice_id: Fictional invoice identity
- period_bucket: Bucket relative to September
- amount: Invoice amount in fictional USD
- Lifetime invoiced
- 10000 USD
- Sum of both invoice rows
- September invoiced
- 6000 USD
- Only the in-period row
- Outside-period difference
- 4000 USD
- Lifetime less September invoicing
Inspect hcp-invoice-window.csv
job_id,invoice_id,period_bucket,amount HCP-DEMO-1,INV-DEMO-A,before,4000 HCP-DEMO-1,INV-DEMO-B,in,6000Download this CSV
Next decision: Inspect costs over the selected job’s relevant history before calculating its margin; collect payments separately for cash.
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
Jobs total exceeds September invoice total
Check: Check whether job revenue is lifetime while the invoice export is scoped by issue date. Also inspect the actual invoice/service date setting.
Resolve the question: Build the before/in/after-period bridge. Leave the totals labeled by population rather than inserting a balancing amount.
The original invoice synced but the edited amount differs
Check: Compare the existing linked invoice and exact changed lines. Check the supported revision behavior in the current QBO guide.
Resolve the question: Prepare the authorized update for the existing linked record. Do not create a replacement invoice during investigation.
Margin looks excellent because materials or labor are blank
Check: Distinguish blank cost from a measured zero and compare job costs with supplier bills and payroll evidence.
Resolve the question: Mark cost readiness incomplete and assign the missing evidence before using the margin to change prices.
Where automation earns its place
Good work for automation
- Build the same job-to-invoice date bridge each month and retain the source-file counts.
- Compare linked invoice revisions and assemble an exception packet with both existing record IDs.
Keep a person on these decisions
- Decide the accounting basis and whether job costs are complete enough for a pricing decision.
- Approve any update push and resolve ambiguous deposit or progress-invoice relationships.
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.
- Housecall Pro API overview
Public API availability and feature-scope limits, updated July 8, 2026. Reviewed .
- Housecall Pro QuickBooks syncing guide
Invoice linkage, revision behavior and configuration-dependent date/number mapping, updated September 3, 2026. Reviewed .
Collect and verify the population
- Invoice detail and job detail
- Retain the native identifiers and distinguish created, issued and completed dates rather than using whichever date is populated.
- Payments report
- Use its own date scope and tie actual receipt evidence separately from invoice value.
- Entered job costs and books
- Label estimates, entered labor rates, incurred costs and paid suppliers separately; a blank panel is unknown.
Collect the native invoice/job report for the same status/date population; inspect supporting job cost panels only where the missing financial fact requires it. Retain IDs and cross-check both source-to-books and books-to-source.
Dated collection sequence
Dated saved collection procedure reviewed October 6, 2026. Verify the current account, interface, permission and available reports. Menu names may differ.
- Verify the intended business in the rendered account context.
- For invoice detail, open Home > View all invoices, inspect the count and filters, then Actions > Export > Send file. Request emailed delivery only with explicit authorization; otherwise ask the owner for the existing file.
- For job detail, use Customers > Jobs > Actions > Export > Send file under the same delivery authorization.
- For payments, use Reporting > Payments, verify the date range, then Generate report. The dated observed procedure used a maximum 365-day range; verify the current limit.
- Treat every emailed request as pending until the actual attachment is retained. Reporting > Invoices > Invoices by date > Export is a grouped summary, not invoice detail.
- Keep the detail files and their individual periods separate before financial comparison.
Evidence acceptance checklist
- Freeze the invoice status and date population before collecting job detail.
- Separate expected job cost from entered, booked and paid cost.
- Compare source invoices with posted invoices in both directions.
Fictional collection example
A fictional job has an invoice and an expected materials budget but no supplier bill evidence. The invoice can be part of the accepted billing population. The budget cannot silently become booked materials cost or proof of profit.
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
Expected cost, entered cost, booked expense and paid supplier are different. Blank cost is unmeasured. Completed jobs and WIP have different populations.
How a plausible answer can go wrong
The Invoices by date export can be a grouped summary while the emailed invoice export supplies detail. Receiving one file does not complete the invoice, job and payment bundle.
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 Housecall Pro to answer [financial question]. Confirm [company], [account/entity], [period], [basis], [currency] and [allowed reports]. Collect the native invoice/job report for the same status/date population; inspect supporting job cost panels only where the missing financial fact requires it. Retain IDs and cross-check both source-to-books and books-to-source. Retain original files, complete record IDs, counts, filters, collection timestamp and exceptions. Expected cost, entered cost, booked expense and paid supplier are different. Blank cost is unmeasured. Completed jobs and WIP have different populations. 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?
Before changing prices, ask whether the same selected jobs have complete invoices, receipts and costs, and whether that job view has been bridged to the requested accounting period.
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 . The collection procedure retains its own review date in the dated sequence above. 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.
- Housecall Pro official documentation
Documented QBO sync triggers, direction and changes.