01Where this fits now
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.
| Tool | Purpose |
|---|---|
| RelaxTimesheetImporter.html | Drag-and-drop individual technician timesheet .xlsx files exported from SharePoint. Merges entries from multiple techs, generates invoices, and exports all reports. |
| RelaxBillingProcessor.html | Load 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.
- Click the “Load Client List…” button in the top bar (or drag a file onto the drop zone).
- Select your client list .xlsx or .csv file. The file is read locally — it is never uploaded anywhere.
- A green confirmation shows the number of clients loaded. The client list persists across sessions in the browser until you clear it.
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.
- Click the red Load RelaxPrepaid.xlsx button in the client list bar.
- Select your current RelaxPrepaid.xlsx ledger file. The file has four columns: Client, Month, Hours, Notes.
- 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.
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
- Open RelaxTimesheetImporter.html in your browser.
- Load the client list and prepaid ledger (see Getting Started).
- Drag one or more technician timesheet .xlsx files onto the drop zone, or click Browse to select them.
- Each file is parsed and merged into a combined entry list. Duplicates across files are handled automatically.
- 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
- Open RelaxBillingProcessor.html in your browser.
- Load the client list and prepaid ledger (see Getting Started).
- Drag the billing .xlsx file onto the drop zone. Sheet tabs are detected automatically.
- Month chips appear below the drop zone. By default the two most recent months are selected. Click chips to toggle which months to include.
- 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.
| Prefix | Type | Invoice | Tech Pay |
|---|---|---|---|
| (none) | Standard hourly | Hours rounded to nearest 30 min. On-site minimum 1 hr. | Rounded to nearest 15 min. |
| * | Retainer | Monthly flat fee + overage @ hourly rate for hours over included amount. Hours rounded to nearest 15 min. | Rounded to nearest 15 min. |
| $ | In-House | No 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. |
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
| Field | Meaning |
|---|---|
| *-48-6240-140 | 48 prepaid hours, $6,240 total contract value, $140/hr rate |
| Term 6-1-2025 | Contract start date (M-D-YYYY format) |
| Renews 6-1-2026 | Contract 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.
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.
- 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.
- Include the renewal invoice in the QuickBooks import. The client is charged the full contract amount for their new term.
- Click ↓ Export Prepaid Ledger. The renewed client’s history is cleared in the exported file, resetting their balance to zero for the new term.
- 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.
| Button | Output |
|---|---|
| ↓ Download All Files | Triggers all four CSV downloads in sequence (QuickBooks, Tech Hours, In-House, Prepaid Summary). |
| ↓ QuickBooks CSV | QuickBooks_Invoices_Import.csv — import directly into QuickBooks Online via the Invoice import tool. |
| ↓ Tech Hours CSV | TechHours_Import.csv — per-technician hours for payroll: billable, in-house, travel, and total paid hours. |
| ↓ In-House Report | InhouseHours_Report.csv — detail of all in-house entries by tech and date. |
| ↓ Export Prepaid Ledger | YYMMDD 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 billing | Hours ↑ 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 button | Top bar — load .xlsx or .csv client list |
| Prepaid ledger button | Red “Load RelaxPrepaid.xlsx” in client list bar |
| Importer: load timesheets | Drag .xlsx files onto drop zone or use Browse |
| Processor: load spreadsheet | Drag billing .xlsx onto drop zone; select month chips |
| Download all outputs | Toolbar → ↓ Download All Files |
| QuickBooks import | Toolbar → ↓ QuickBooks CSV |
| Export prepaid ledger | Toolbar → ↓ Export Prepaid Ledger (red button) |
| Prepaid balance | Prepaid tab — hours and $ remaining per client |
| Renewal invoice | Prepaid tab → Generate Renewal Invoice when RENEWAL DUE alert appears |
| Reset hours after renewal | Export Prepaid Ledger after generating renewal invoice |
| Contact for help | billing@pnw.com |