Skip to main content
2,200+ service businesses benchmarked. Do you know your gross profit per labor hour? See where you stand →
Level

Software collection playbook

LMN: verify report scope and labor-rate basis

Complete report population and labor-rate basis.

By Sam Yang · Updated

Which labor rate belongs in this decision?

Choose the report from the denominator the owner needs. An estimating rate helps price work; payroll cost per productive hour requires a paid-cost numerator and the intended productive-hour population.

Evidence basis: Saved Analytics and legacy Jobs report export sequences; current menu names and date limits require verification.

Verify any supported scoped source before selecting a native report/widget export.

The question is whether an estimate funds overhead

Inspect the configured estimating and overhead assumptions, retaining their definitions rather than calling them actual employer cost.

The question is actual job labor economics

Bring the appropriate operational-hour report and payroll cost into the same population; keep paid hours and productive hours distinct.

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

How can a job run over its labor-hour budget while appearing under its estimated labor dollars?

The two dollar columns may multiply hours by different rates. An estimating or configured rate is not verified payroll cost per productive hour. Compare hours on the same population, then identify each rate’s cost and overhead basis. Also keep the report hierarchy intact: project totals and job detail often represent the same underlying activity.

Explain the labor-dollar and hours disagreement
  1. Collect estimated and actual operational hours for the same work, keeping project and job identities separate. If the cost extract lacks a date dimension, do not pretend a date filter scoped it.
  2. Read the configured estimating labor basis and overhead recovery assumptions. Official LMN guidance separates direct labor burden, overhead recovery and profit; these are not one interchangeable markup.
  3. Bring authorized payroll cost and paid-hour evidence into the intended period. Keep productive job hours separate from paid hours, drive/load time and other nonproductive categories.
  4. Compute the hours variance independently of rate differences. Describe estimating dollars as hours times estimating rate, and the retained actual-dollar field using its verified configured basis.
  5. Return an hours-control result and a separate payroll-to-operational-hours rate bridge. Do not call a lower configured-dollar total a purchasing or productivity saving.

Bring to the review: An hours variance plus a labeled rate comparison: estimating rate, configured operational rate, payroll cost per paid hour and cost per productive hour when supported.

Then decide: Use the hours finding to investigate execution. Use the verified cost/hour basis to revisit pricing and overhead recovery.

Collect every required report window without double counting
  1. Using the saved October 6 Analytics procedure, verify dashboard/widget filters and choose More actions > Export. Retain Raw versus Formatted choice and export-info metadata.
  2. Confirm the dialog’s final Export and retain the actual download. A menu opening is not a completed report, and a spreadsheet extension alone does not prove the file can be parsed.
  3. For the legacy history route, distinguish Job History - Services and Job History - Time from Job List. The saved history procedure observed a 100-day cap; verify the present cap and partition the intended coverage explicitly.
  4. Record each requested interval, retained file, row count and measure total, including zero-row results. Inspect empty files against access and report filters instead of calling them zero work.
  5. Preserve parent/project/job levels and sum one authorized level. Check interval boundaries for gaps or duplicated days before comparing with accounting.

Bring to the review: A report manifest covering the requested intervals, format, retained rows and one hierarchy level, with empty or unparsed files named explicitly.

Then decide: Repair the missing collection interval or parser first. Only then interpret the operating variance or source-to-books difference.

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 integration or scoped source

What it supplies
Official LMN materials describe estimating and QuickBooks routes. Saved implementation uses retained reports and explicit source-run manifests for this analysis.
What still needs proof
This review does not establish a general-purpose supported API for the required operational history or that any connector supplies payroll cost completeness.

Choose it when: Verify a supported route against the exact report and account before choosing it; do not infer API absence from using exports.

Native Analytics or history export

What it supplies
Saved Analytics collection supports defined Raw/Formatted CSV/XLSX choices. Legacy Services/Time history and Job List use different forms and scope controls.
What still needs proof
Current report limits, current columns and whether a cost report can be period-scoped require verification.

Choose it when: Use the native report matching the question and retain its window and hierarchy metadata before transforming it.

Permitted browser collection

What it supplies
A read-only browser can select and read back authorized widget/report filters, follow the final export dialog and retain the completed file.
What still needs proof
A rendered total does not prove full export coverage or payroll cost. Current selectors and embedded frames can change.

Choose it when: Use it to obtain the specified native file or investigate a named missing report, with completion checked per report rather than per click.

Reproduce the diagnostic

Hours over budget, configured dollars below estimate

All records and amounts below are fictional teaching inputs. This example demonstrates the calculation, not a customer outcome or a reproduced software defect.

Actual job hours exceed estimated hours by 10. Yet configured actual labor dollars are $500 below estimated labor dollars. The implied estimating rate is $50 per hour and configured actual rate is $30. Verified payroll cost divided by 60 paid hours is $37.50; divided by 50 productive job hours it is $45. These are explicitly invented teaching bases, not LMN default rates.

What the CSV columns mean
  • kind: Distinct teaching measure
  • amount: Fictional value; units depend on kind
Hours over estimate
10 hours
50 actual job hours less 40 estimated
Configured dollar difference
500 USD
Estimated dollars less configured actual dollars
Payroll cost per paid hour
37.5 USD/hour
Payroll cost divided by paid hours
Payroll cost per productive hour
45 USD/hour
Same payroll numerator divided by job hours
Inspect lmn-labor-bases.csv
kind,amount
estimated_hours,40
actual_job_hours,50
estimated_labor_dollars,2000
configured_actual_dollars,1500
verified_payroll_cost,2250
paid_hours,60
Download this CSV

Next decision: Inspect the operating cause of the hours overrun, then choose the payroll/hour basis relevant to pricing. Do not equate the $500 configured difference with savings.

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

Actual labor dollars are below estimate while hours exceed budget

Check: Inspect the estimated and actual rate bases and compare hours independently.

Resolve the question: Report hours overrun and rate difference separately; obtain payroll before asserting actual economic savings.

Cost exceeds every visible subtotal when imported

Check: Check whether parent totals were added to project or job rows and whether overhead is inside or outside direct cost.

Resolve the question: Recompute one hierarchy level and foot direct legs before adding any separate overhead amount.

A successful download contains no recent work

Check: Check requested interval, retained row count, actual account access and whether the export parsed successfully.

Resolve the question: Keep an empty-file manifest and identify the collection cause. Recollect the missing period after access/filter review rather than substituting zero hours.

Where automation earns its place

Good work for automation

  • Maintain a per-file coverage manifest, including empty files and explicit report windows.
  • Separate hierarchy levels and calculate hours variances without silently mixing rate bases.

Keep a person on these decisions

  • Choose productive-hour categories and determine which payroll costs belong in the numerator.
  • Set overhead recovery and decide whether source dimensions permit the proposed comparison.

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.

  • LMN overhead and labor-burden definitions

    Indexed official guidance separates burden, overhead cost base and profit; direct retrieval encountered an access challenge on review day. Reviewed .

  • LMN reports guide

    Indexed official report catalogue includes job and payroll report families; direct retrieval encountered an access challenge. Reviewed .

Explore the financial diagnostic examples

Collect and verify the population

Analytics export
Retain Raw versus Formatted choice and export metadata; they can present hierarchy differently.
Job History - Services and Job History - Time
Partition any current date limit into explicit coverage windows. A missing interval is not zero work.
Job List and hierarchy
Do not apply history-report assumptions to the Job List form. Count parent and child values once when footing totals.

Choose native report and date range; inspect report panel and complete export population. Preserve hierarchy once, then foot totals and distinguish actual paid-hour, operational-hour and estimating rates.

Dated collection sequence

Dated saved collection procedure reviewed October 6, 2026. Verify the current account, interface, permission and available reports. Menu names may differ.

  1. For an Analytics widget, verify the dashboard and filters, wait for loading, then hover the required widget and select More actions > Export.
  2. Under DATA choose the authorized Formatted (.xlsx), Formatted (.csv) or Raw (.csv) source definition.
  3. Review Keep attribute cells merged and Include sheet with export info, then click the confirmation dialog Export and retain the actual download and metadata.
  4. In the older Reports > Jobs route, 5 Job History - Services (Excel Format) and 6 Job History - Time (Excel Format) use Report By, Job, Start Date and End Date, then Submit. The observed history window cap was 100 days; verify the current limit.
  5. 7 Job List - (Excel Format) uses Job Type and Active Jobs Only or All Jobs, then Download File. It has a different form, with no date-range control in the saved procedure.
  6. Retain parent/child hierarchy once and keep rate definitions separate before adding or comparing totals.

Evidence acceptance checklist

  1. Read back the chosen native report and actual applied date range.
  2. Retain complete export coverage and identify parent versus child rows.
  3. Label paid, operational and productive-hour rate definitions separately.

Fictional collection example

A fictional export includes a department total above employee detail. Adding both would count the same labor twice. Retain the hierarchy and sum one level. An estimating rate can then be compared with actual cost only after its hours and overhead basis are documented.

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

Date caps, report hierarchy, partial exports and overhead allocation can change the answer. Configured hourly rate is not employer cost per productive hour.

How a plausible answer can go wrong

A parent subtotal added to its child rows inflates cost; a configured hourly rate used as payroll cost can misprice labor even when the arithmetic is correct.

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 LMN / Granum to answer [financial question]. Confirm [company], [account/entity], [period], [basis], [currency] and [allowed reports]. Choose native report and date range; inspect the report panel, including any embedded frame that contains its visible values and complete export population. Preserve hierarchy once, then foot totals and distinguish actual paid-hour, operational-hour and estimating rates. Retain original files, complete record IDs, counts, filters, collection timestamp and exceptions. Date caps, report hierarchy, partial exports and overhead allocation can change the answer. Configured hourly rate is not employer cost per productive hour. 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?

Show the owner the exact numerator, denominator and overhead treatment behind the proposed rate. If a report cannot support one of them, label the missing input rather than presenting a precise hourly answer.

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.

Content revision history