Billing ProcessorUser manual
All manuals
CCI Suite · Billing

Billing Processor

The Timesheet Importer and Billing Processor turn technician timesheets into QuickBooks invoices, a Tech Hours report and contractor pay.

Status CurrentUpdated November 2026Microsoft 365 · Web browser

01Where this fits now

Note

The Timesheet Importer now also runs inside Meter, and hardware and software invoices from Quotes are made on Meter's Hardware tab. The standalone Importer and Billing Processor pages described here still work the same way. Billing screens are for people with the Accounting permission.

02Overview

The Re-Lax billing suite consists of two single-file web tools that convert timesheet data into QuickBooks-ready invoices. Both tools run entirely in the browser — no installation required — and handle all client types including standard hourly, monthly retainer, in-house, and prepaid block clients.

ToolPurpose
RelaxTimesheetImporter.htmlDrag-and-drop individual technician timesheet .xlsx files exported from SharePoint. Merges entries from multiple techs, generates invoices, and exports all reports.
RelaxBillingProcessor.htmlLoad a consolidated billing spreadsheet (all techs in one file with monthly sheet tabs). Select one or more months, generate invoices, and export reports.

Both tools produce the same set of outputs: a QuickBooks CSV for invoice import, a Tech Hours CSV for payroll, an In-House Report, a Prepaid Summary CSV, and an updated Prepaid Ledger (.xlsx).

03Getting Started

Open the relevant .html file in Chrome, Edge, or Safari. No server is needed — double-clicking the file in File Explorer is sufficient. An internet connection is only needed for loading the SheetJS library on first open.

Loading the Client List

The client list drives invoice formatting, billing rates, tax rates, and client type detection. It must be loaded before processing timesheets.

  1. Click the “Load Client List…” button in the top bar (or drag a file onto the drop zone).
  2. Select your client list .xlsx or .csv file. The file is read locally — it is never uploaded anywhere.
  3. A green confirmation shows the number of clients loaded. The client list persists across sessions in the browser until you clear it.
ℹ Tip

The Importer remembers your last client list file between sessions using browser storage. On reopening, click “Reload saved client list” to restore it without re-selecting the file.

Loading the Prepaid Ledger

The prepaid ledger tracks hours consumed in previous billing periods for prepaid block clients. Load it before running invoices so balances are accurate.

  1. Click the red Load RelaxPrepaid.xlsx button in the client list bar.
  2. Select your current RelaxPrepaid.xlsx ledger file. The file has four columns: Client, Month, Hours, Notes.
  3. A green confirmation shows the number of ledger rows loaded. If a client has no prior rows the processor treats their prior hours as zero and creates their first row automatically on export.
⚠ Note

If you skip this step, the Remaining balance in prepaid invoices will reflect only the current period’s hours. Always load the ledger to get accurate cumulative balances.

04Timesheet Importer

Use RelaxTimesheetImporter.html when processing timesheet .xlsx files exported individually by each technician from SharePoint.

Loading Timesheet Files

  1. Open RelaxTimesheetImporter.html in your browser.
  2. Load the client list and prepaid ledger (see Getting Started).
  3. Drag one or more technician timesheet .xlsx files onto the drop zone, or click Browse to select them.
  4. Each file is parsed and merged into a combined entry list. Duplicates across files are handled automatically.
  5. Click Process Invoices (or invoices are generated automatically). Results appear across the five tabs below.

Tabs

Invoices — Full invoice breakdown by client, ready for QuickBooks import. Prepaid usage statements appear in green with a “prepaid draw” badge.

Entries — Every time entry across all loaded files, sortable and filterable.

Tech Hours — Per-technician pay summary: billable hours, in-house hours, travel, and total pay.

In-House — All entries flagged as in-house ($ clients or “In-House” service type). No invoice generated.

Prepaid — Balance sheet for all % clients showing prior hours, this period, total used, and remaining hours and dollar value.

05Billing Processor

Use RelaxBillingProcessor.html when all technician entries are consolidated into a single billing spreadsheet with one sheet per calendar month.

Loading the Billing Spreadsheet

  1. Open RelaxBillingProcessor.html in your browser.
  2. Load the client list and prepaid ledger (see Getting Started).
  3. Drag the billing .xlsx file onto the drop zone. Sheet tabs are detected automatically.
  4. Month chips appear below the drop zone. By default the two most recent months are selected. Click chips to toggle which months to include.
  5. Click Generate Invoices. Results appear across the same five tabs as the Importer.

Selecting Months

Each chip represents one sheet in the workbook. Active (selected) chips are highlighted. Click a chip to toggle it. You can process a single month or several months at once — entries from all selected sheets are merged before invoicing.

06Client Types

The first character of a client’s name in the client list determines how they are billed.

PrefixTypeInvoiceTech Pay
(none)Standard hourlyHours rounded to nearest 30 min. On-site minimum 1 hr.Rounded to nearest 15 min.
*RetainerMonthly flat fee + overage @ hourly rate for hours over included amount. Hours rounded to nearest 15 min.Rounded to nearest 15 min.
$In-HouseNo invoice generated. Entry logged to In-House tab.Paid as in-house hours.
%Prepaid block$0 usage statement (Monthly Managed IT Retainer). Hours drawn from prepaid block.Paid normally on tech pay summary.
ℹ Note

The service type "In-House" makes any entry unbillable for any client type, overriding the client prefix for that entry.

07Prepaid Client Billing

Prepaid clients purchase a block of support hours in advance. The processor tracks usage against the block and generates $0 usage statements rather than invoices.

Client List Format

Add a prepaid client on its own line in the client list using this format:

% Client Name *-HRS-TOTAL-RATE Term M-D-YYYY Renews M-D-YYYY

% Firstline Systems, Inc. *-48-6240-140 Term 6-1-2025 Renews 6-1-2026

FieldMeaning
*-48-6240-14048 prepaid hours, $6,240 total contract value, $140/hr rate
Term 6-1-2025Contract start date (M-D-YYYY format)
Renews 6-1-2026Contract renewal date — triggers renewal alert when past due

Invoice Description Format

The first line of each prepaid usage statement has Item = Monthly Managed IT Retainer, Qty = 0, Rate = $0. The Description field contains the full contract summary:

Prepaid: 48 hrs @ $140/hr = $6,720.00 | Renewal: 06/01/2026 | Used this month: 4.25 hrs ($595.00) | Total used to date: 12.25 hrs ($1,715.00) | Remaining: 35.75 hrs / $5,005.00

Each subsequent line shows an individual time entry (date, tech, service type, hours, description) also at $0. The grand total on the Invoices tab excludes all prepaid usage invoices so only real billable revenue is shown.

Prepaid Tab

The Prepaid tab shows a balance table for every % client:

  • Contract Hrs / Rate / Value — from the client list entry.
  • Term Start / Renews — parsed from the client list. Renewal date shown as MM/DD/YYYY.
  • Prior Hrs — sum of all rows in the loaded ledger for this client.
  • This Period — hours from the current timesheet run.
  • Total Used / Remaining — running balance. Bar turns yellow below 20% remaining, red at overage.

Exporting the Updated Ledger

After each billing run click ↓ Export Prepaid Ledger in the toolbar. The file is saved as YYMMDD RelaxPrepaid.xlsx with all prior rows plus the current period appended. Use this file as the ledger for the next billing run.

ℹ New clients

A client not yet in the ledger has their first row created automatically when you export. No manual setup needed.

Term Renewal

When a contract’s renewal date has passed, a red RENEWAL DUE banner appears at the top of the Prepaid tab. An orange warning appears 30 days before the renewal date.

  1. In the Prepaid tab click Generate Renewal Invoice. A full-price invoice is created (e.g., 48 hrs × $140 = $6,720) and appears in the Invoices tab with a renewal badge.
  2. Include the renewal invoice in the QuickBooks import. The client is charged the full contract amount for their new term.
  3. Click ↓ Export Prepaid Ledger. The renewed client’s history is cleared in the exported file, resetting their balance to zero for the new term.
  4. Update the client list Renews date to next year’s renewal date.

08Downloads & Exports

All download buttons are in the toolbar at the top of the results area.

ButtonOutput
↓ Download All FilesTriggers all four CSV downloads in sequence (QuickBooks, Tech Hours, In-House, Prepaid Summary).
↓ QuickBooks CSVQuickBooks_Invoices_Import.csv — import directly into QuickBooks Online via the Invoice import tool.
↓ Tech Hours CSVTechHours_Import.csv — per-technician hours for payroll: billable, in-house, travel, and total paid hours.
↓ In-House ReportInhouseHours_Report.csv — detail of all in-house entries by tech and date.
↓ Export Prepaid LedgerYYMMDD RelaxPrepaid.xlsx — updated ledger with current period appended. Save this as the input for the next billing run.

09Quick Reference

Re-Lax Billing Processors — Quick Reference
Standard client billingHours ↑ 30 min; on-site min 1 hr
Retainer client (* prefix)Monthly fee + overage; hours ↑ 15 min
In-house client ($ prefix)No invoice; logged to In-House tab
Prepaid client (% prefix)$0 usage statement; hours drawn from block
Client list buttonTop bar — load .xlsx or .csv client list
Prepaid ledger buttonRed “Load RelaxPrepaid.xlsx” in client list bar
Importer: load timesheetsDrag .xlsx files onto drop zone or use Browse
Processor: load spreadsheetDrag billing .xlsx onto drop zone; select month chips
Download all outputsToolbar → ↓ Download All Files
QuickBooks importToolbar → ↓ QuickBooks CSV
Export prepaid ledgerToolbar → ↓ Export Prepaid Ledger (red button)
Prepaid balancePrepaid tab — hours and $ remaining per client
Renewal invoicePrepaid tab → Generate Renewal Invoice when RENEWAL DUE alert appears
Reset hours after renewalExport Prepaid Ledger after generating renewal invoice
Contact for helpbilling@pnw.com