CSLA ERP · User Manual

CSLA ERP User Manual

Version 2.1 · November 9, 2026

1. About this manual

This manual is for everyone at Cinema Support LA who uses the ERP. It is organized in three parts:

  • Part I, Getting started (chapters 2 and 3) is for everyone: what the ERP is, how to sign in, and how the screen works.
  • Part II, By department (chapters 4 to 10) walks each department through the modules it works, step by step: Prep, Drivers, QC, Service, Rental agents, Accounting, and Management and Admin. Read your own chapter first; the others are there when you need them.
  • Part III, Reference (the appendices) has the module list, a glossary, troubleshooting, and the table of old ways and their replacements.

Conventions: anything you can press or read on the screen is shown as it appears there, like Daily Board or Mark ready. Colored notes mean:

Old way: how this was done before the ERP, and what changed.

Note: something useful to know.

Warning: something that is easy to get wrong.

Owner only: a step only the owner or an Admin performs.

Not yet: a feature that is built but not yet switched on. Since November 9, 2026 every module is released, so this note only marks a feature still in progress.

The version at the top of this page changes whenever the manual changes.

2. What the ERP is

2.1 Where it fits beside RentalWorks

RentalWorks stays the rental system: quotes, orders, contracts, scanning gear out and in, invoices, purchase orders and inventory all live there, exactly as before. The ERP reads a copy of that data every few minutes and lays the team's day-to-day work on top of it: today's board, the driver's runs, what is coming back, what still needs attention, who paid, and the records RentalWorks has no place for.

The ERP never changes RentalWorks, with two owner-approved exceptions that only authorized people can use, both from a job's card: making the job's invoice, and recording the client's PO number. Everything else you tick, type or drag in the ERP is stored in the ERP. If something is wrong in RentalWorks, fix it in RentalWorks; the ERP follows.

2.2 How fresh the data is

  • RentalWorks data arrives every 5 to 15 minutes depending on the kind of record. The header's Updated … pill tells you how old the newest read is.
  • Anything a teammate changes in the ERP (a tick, a note, a reorder) reaches your screen within a few seconds, with no reload.
  • If your connection drops, the pill reads ⚠ offline. When it comes back, a quiet refresh every 3 minutes catches up anything you missed.
  • QuickBooks data is read once an hour.

2.3 Who sees what

Every person has an access preset, and every module has a level for that preset: none (not in the menu), view (open and read, change nothing) or edit. An Admin can change any one person's level on any one module in Admin. The presets as set today:

ModuleViewerWarehouseAgentManagerAdmin
Daily Boardvieweditediteditedit
Daily Drivervieweditediteditedit
Turnaroundsvieweditediteditedit
QC Loose Endsvieweditediteditedit
To Reconcile in RWvieweditediteditedit
My Listediteditediteditedit
Allocationvieweditediteditedit
Optical Logsvieweditediteditedit
Camera Logsvieweditediteditedit
Agent Auditsviewviewediteditedit
Jobsnonenoneediteditedit
CRMnonenoneediteditedit
Consignmentnonenonevieweditedit
Reportsnonenoneviewviewview
Purchases / POsnoneeditediteditedit
Purchases › POs tabnonenonenonenoneedit
Accountingnonenonenonenoneedit
Accounting › Liabilitiesnonenonenonenoneview
Adminnonenonenonenoneedit

In words: a Viewer looks and changes nothing but their own My List. Warehouse is prep techs, drivers, returns and QC: they work the board, the Daily Driver, Turnarounds, QC Loose Ends, To Reconcile in RW, Allocation and the condition logs, and log purchases. An Agent adds Jobs, CRM and Agent Audits, and can look up Consignment and Reports. A Manager can also edit Consignment. An Admin has everything, including Admin itself.

2.4 What is released now

Since November 9, 2026 every module is released to the team. What you see is governed by your access level alone (2.3): a module your preset does not include reads no access in the menu, and an Admin can switch any module on for you. A future module that is built but not ready reads coming soon in the menu and carries a Not yet note here.

3. Getting started

3.1 Signing in

The ERP is a web page. There is nothing to install: open csla-board.pages.dev in Safari or Chrome on a computer, iPad or phone, and sign in.

  1. Enter the email address your Admin put on your roster profile, and the password they gave you.
  2. Press Sign in. The app opens on the Daily Board, or on the screen you last used.
  3. If you see a message saying your login is not linked to anyone on the roster, your login's email does not match your profile. Tell your Admin; nothing is wrong with your password.
  4. If you see that your profile gives you no access yet, your Admin has not set your access level.

Note: there is no "forgot password" link on purpose: the ERP does not send email yet. Ask an Admin for a new password. The login screen says so under the password field.

Tip: on an iPad or phone, add the site to your home screen so it opens like an app. You stay signed in on that device.

3.2 The header

Left to right across the top of every screen:

  • The CSLA logo. One click from anywhere returns you to today's Daily Board.
  • The title of the screen you are on: "The Daily Board", "Turnarounds", "Admin".
  • On the daily screens (Daily Board, Daily Driver, Turnarounds, Allocation) the day you are looking at sits beside the title, with a calendar button. The calendar has Today; on the Daily Board it also has Month view. On a phone the day moves into the toolbar.
  • The sync pill reads Updated just now or Updated 4m ago: how old the newest read from RentalWorks is. It turns to a warning color past 30 minutes. ⚠ live updates paused means the live connection dropped and is reconnecting; ⚠ offline means your device has no network. On a narrow screen it shrinks to a bare ⚠ when something is wrong, and hides when all is well.
  • ↻ refreshes the current screen from the database.
  • ☰ opens the menu.

3.3 The menu

The menu lists every module in three groups: the daily work (Daily Board, Daily Driver, Allocation, My List), the QC worklists (Turnarounds, Optical Logs, Camera Logs, QC Loose Ends, To Reconcile in RW), and the office (Jobs, CRM, Purchases / POs, Consignment, Agent Audits, Accounting, Reports). My List carries your open counts by priority.

Tags beside a module tell you what you can do with it: no access (grayed; ask your Admin if you need it), view only (you can look but change nothing), coming soon (built, not released yet). Below the modules: your email, then Admin (Admins only), ✉ Report a problem, My Profile, TV Mode (on the daily screens) and ⏻ Sign out.

3.4 The toolbar: search, filters and counts

Under the header, every module has the same toolbar:

  • The search box comes first. Its placeholder always reads "Search this module…"; rest the pointer on it to see what it searches. Every search also understands dates typed as you would say them ("june", "6/1/26"). Escape clears it.
  • The module's filters sit beside it on a computer: pickers that read "Label: value ▾", and chips. A lit filter is outlined in blue. Clicking a lit filter, chip or tab again turns it off. × Clear filters appears when anything is on. On a phone the filters drop to a second row.
  • Tabs and view switches, the module's gray tool buttons, Copy … and Export CSV where they exist, and one blue main action (+ New run, + New task, + New person).
  • The screen's count at the right end ("40 open · 3 coming up").

3.5 Live and shared

Everything you do in the ERP is live and shared. A tick, a note, a drag or a pill change paints on your screen at once and appears on every teammate's screen within a few seconds, without a reload. Your half-typed text in a box survives a teammate's change to the same row.

If a save fails (usually a dropped connection), the change reverts and a short message says why. Every 3 minutes the screen quietly refreshes as a backstop. If you were offline, the live connection does not replay what you missed: the next 3-minute refresh, or ↻, catches up. A screen left on today, the wall TV included, moves to the new day at midnight by itself.

3.6 Selecting rows, pop-ups and messages

  • Selecting rows. Ticking rows slides open a bar under the filters: "N selected", the actions for those rows, and Deselect at the far right. Shift-click ticks a range. Escape, or changing a filter, the search or the screen, clears the selection.
  • Pop-ups. Every pop-up has the same frame: a title, a ✕ at the top right, and its buttons pinned at the bottom (a red destructive button at the far left, the blue main action at the far right). Close with ✕, Escape, or a click outside. If you have typed something, closing asks "Discard your changes?". On phones every pop-up fills the screen.
  • Messages. Short messages (toasts) confirm a send or a save, or explain a failure.
  • Who changed this. On a computer, rest the pointer on a checkbox, pill, note or field for half a second to see who changed it last and when ("Hannah Berg, 10/6/26 at 1:21pm"). Touch screens have no hover, so this is desktop-only.

3.7 My List

My List is at the top of the menu: things raised onto your name by other modules (a loose end put on your list, a turnaround notice, a board note that tagged you), your department's shared items, and your own to-dos. It is the first thing to look at each morning.

  • Three sections: your department list, Assigned to you, and My own to-dos. A task can appear in more than one.
  • The checkbox selects a task; it does not complete it. Tick, then Mark completed in the bar. Show done lists finished ones, where ↺ Mark not completed undoes.
  • + Add a to-do adds a private item; + Add for the department adds a shared one, optionally for a named person.
  • Tick a task › Reassign… › a name moves it to that person.
  • The priority select on each row sets High, Medium or Low. Sort by offers List order, Date added, Issue date and Priority; in List order you can drag the ⋮⋮ grips.
  • List: Mine ▾ shows another department's list, or All.
  • Chips on a row ("open the job ›", "from QC Loose Ends ›", "from a Daily Board note ›") jump to where the task came from.

3.8 My Profile

☰ › My Profile: your photo (choose a file, drag to frame it, Use photo) and Pick your pill, the color of your name everywhere in the ERP. Nothing else about your profile is yours to change; an Admin holds the rest.

3.9 Report a problem

When something looks wrong, ☰ › ✉ Report a problem. Type what happened and what you expected instead (for example "I ticked Staged on job 321842 and it unticked itself a second later"), then Send. The report carries your name, the screen you were on, the day you were viewing and any errors the page recorded, so your Admin can see what you saw. You get "Sent to your Admin — thank you".

3.10 TV Mode

For the wall display: open the Daily Board, Daily Driver or Turnarounds, then ☰ › TV Mode. The type gets big, and the setting is remembered on that device, so it comes back after a reboot. The screen rolls to the new day overnight by itself. Click TV Mode again to leave. Not offered on phones.

3.11 Devices

  • Computers and iPads get the full layout. iPads need iPadOS 16.2 or newer; on older ones the colored pills show as plain colored text.
  • Phones show the board's jobs as cards, move the filters to a second row, and open every pop-up full screen. TV Mode is hidden.
  • Shared iPads stay signed in as whoever signed in first, and every change is recorded under that name. Sign out when you hand the device over.
  • If the page looks outdated after an update, reload it; the ERP never keeps an old copy. If Safari still shows the old version, clear the site's website data once in Safari's settings.

4. Prep

Prep works the Going Out side of the Daily Board, places bodies in Allocation, receives Turnarounds notices, and clears its own QC Loose Ends. Drivers have chapter 5; the returns side of the board is in chapter 6.

4.1 The Daily Board

What it is. The day's work on one screen, live for everyone: which jobs are going out, which are coming back, what is overdue and what was cancelled, straight from RentalWorks. Beside each job CSLA keeps its own marks that RentalWorks has no place for: the prep tech, how likely the job is, the job type, bay, time, crew, notes, and the ticks for account approval and signing.

On the screen.

  • Four sections, each collapsible with counts in its header: Going Out, Cancelled (starts collapsed), Returning, Overdue.
  • Going Out columns: Job, Client, Agent, Note, Status, Job Type, Time, Bay, Tech, Staged, Crew, Subs, Account Approved?, Signed.
  • Status is a pill: Confirmed!, Likely, Maybe, Unlikely, Cancelling, Pushing, or type your own. Job Type: PREP, PICKUP, PREPUP, SUBRENTAL, CPU, SHIP, MIGRATION, VISIT, TEST.
  • Tech is the prep tech's pill; Agent the rental agent's (changing it needs Jobs access; a • marks a CSLA reassignment).
  • Staged reads "staged + out / ordered", for example "3 / 9" or "9 out": green when done, amber when partly, gray when nothing yet, and "—" when unknown. Click it for the list of what is staged and what is not, with who staged it and when. The board asks RentalWorks every 2 minutes for the jobs going out today and the next two days.
  • Crew holds CRM pills for the crew on the job; RentalWorks' own crew line shows read-only under them.
  • Subs lists the sub-rental POs. Compact in the header shortens them. A PO opens a pop-up with the vendor, the item list, Copy list and Open PO ›; a green ✓ marks a PO ticked done on the Daily Driver.
  • Account Approved? ticks itself for CSLA's own jobs; unticked, the job and client show red. Signed ticks itself once RentalWorks has an OUT contract.
  • Note opens a chat-style thread on the job: name, time, a reply box, Delete on your own notes. Type @ and a name to tag someone; it lands on their My List.
  • A ⋮⋮ grip on the left of each row drags it; a handle on every column edge resizes it (double-click resets the section). Name pills show first names in each person's own color.

Change the day. Click the calendar beside the day in the title; pick a day, or Today. Month view shows the whole month; click a day in it to open that day.

Set a pill. Click Status, Job Type, Tech or Agent, pick from the menu. It repaints at once and everyone sees it live.

Tick a box. Click Account Approved?, Signed or IN. It flips at once; if the save fails it flips back with a message.

Check staging. Read the Staged pill; click it for the list.

Add a note. Tick the row › Add note + › type. Enter sends, Shift+Enter makes a new line. Or click the job's Note symbol to open the thread.

Reorder the day. Drag the ⋮⋮ grip (long-press on touch). The order is shared with everyone. A job that arrives from RentalWorks later goes to the bottom.

Hide a job that does not belong on the board. Tick it › Remove from board. Show hidden appears in the Going Out header; tick a hidden job › ↺ Put back on the board to restore it. Hiding is a coordinator's call and is not offered on phones.

Search. Type a job, client, job name, PO number or vendor and press Enter. The results are real rows you can edit. Escape leaves.

Add a row by hand. Add a row › a label, an optional client › Add row, for something RentalWorks does not have.

Note: the 3-minute refresh waits while you are typing in a box or have a pop-up open. Show hidden resets when you reload, on purpose. Column widths are yours; row order is everyone's. "—" and "?" mean unknown, not zero.

4.2 Allocation

What it is. The answer to "which job gets the owned unit?" For every kind of gear (I-Code) that upcoming jobs are competing for, the module lays the jobs out as lanes, one lane per physical unit doing jobs in sequence, shows how many units are needed, free, in repair or short, and recommends putting CSLA's own gear on the jobs that pay most (owned gear keeps all of the billing; consigned gear keeps CSLA's share). Prep techs assign a barcode to each lane or mark it a sub-rental; the agents see which of their jobs still need a sub-rental.

Note: the standing warning at the top of the screen: future jobs may not happen. Check with the rental agent on how likely an upcoming job is before allocating a body to it. A job marked Unlikely should not take the owned body ahead of a confirmed one.

On the screen.

  • The day in the title with its calendar (lanes start on the day you view), Collapse all / Expand all, My jobs, Show $0 items · N, and chips for any job, tech or agent you have filtered to. The count line says how many lanes are over the money threshold, when the lanes were compiled, and when RentalWorks was last checked.
  • One card per I-Code: the code and item name, the pills need, available ("2 CSLA + 2 consigned"), subbed, short, a red in repair N, and a dashed total in-house. Below, a timeline: lane bars colored by the job's board Status, with the agent's and tech's names. Click a bar to open the job card. Lanes already out show the barcode, the owner ("CSLA owned" or the consignor) and when it is due back.
  • Each live lane has a picker that reads --choose a barcode-- in amber until set. Its menu lists the units: green CSLA, blue consigned, amber out or staged, red SUB-RENTAL, gray conflicted, each with a second line such as "out now on 320900", "staged" or "IN REPAIR … due back Nov 3".
  • Footer sentences spell out the recommendation: "N needed, M available, so K will need sub-renting." "Give the CSLA units to the top N lanes. The rest go on consigned gear."
  • Add a substitute records that one I-Code can stand in for another.

Place a body. Click the lane's picker and choose a barcode. The lane colors at once and everyone's screen updates; a clash with a teammate shows without a reload.

Mark a lane as a sub-rental. Pick SUB-RENTAL. The vendor can be noted on the job card later.

Record a substitute. Add a substitute, type the I-Code, save. It is remembered for future scheduling and is directional: the bigger lens covers the smaller, not the reverse. A substitute is a hint; the client may not accept it.

See only your jobs. My jobs, or click an agent's tag on a bar.

Re-check RentalWorks. Every load re-checks each unit on the page (not more than once in 5 minutes); ↻ forces it.

Note: "available" means free right now; "total in-house" is the whole fleet; the gap is what is on other jobs. "In repair" is a warning, not a block. $0 lines are hidden from the bars by default but still counted. A brand-new job appears after the next 15-minute refresh.

4.3 Turnarounds, from the prep side

Turnarounds (chapter 6) is QC's list of gear coming back today that an outgoing job needs. Prep meets it in two places:

  • On the board, the Turnaround column of a Returning job shows chips like "ANTON BAUER ×8 → 321955"; clicking one opens Turnarounds with that line ticked. A free-text note beside the chips is still there for anything else.
  • On My List, when QC marks a body ready, the notice "… QC'd and ready for job N" lands on the job's prep tech's list, or on the whole PREP list when the job has no tech yet.

To flag a turnaround yourself, see 6.1: the job's Items chip on the board › the item › Turnaround for….

4.4 QC Loose Ends

What it is. A standing list of sub-rentals where a step in the chain looks skipped: nobody raised a PO, the pickup was never recorded, the gear was never scanned back in, or it was never returned in RentalWorks. Each card says in plain English what is missing and what to do. Clearing one records what really happened on CSLA's side; nothing is written to RentalWorks.

Old way: the misses went uncounted, and the fix would have been batch corrections in RentalWorks. The owner chose to name each miss, record its real outcome in the ERP, and keep a running log of what was never recorded back to RentalWorks.

On the screen. Pickers Category: Everything ▾, Sort by: Newest ▾ (or Oldest, most overdue first), Agent: All ▾, Tech: All ▾; Show cleared; × Clear filters; the count "N open · M coming up · K cleared". The groups, in order: Sub-rented with no purchase order · Purchase order not attached to any job · Pickup never recorded · Returned by the driver, not returned in RentalWorks · Checked in, never driven back · Nothing checked back in · Partly returned · Overdue to the vendor · No vendor on the purchase order · Coming up, no purchase order yet · Subrental job missing a client PO number · CPU jobs carrying a charge. Each card names the job or PO, states every finding as a sentence, and shows a "→ on Cole's list" chip when it is on someone's list. A footnote says when the list was compiled; it refreshes every 15 minutes.

Fix the real problem. Follow the card's instruction in RentalWorks (for a PO the driver returned: open the PO › Return to Vendor › Create Contract). The finding clears itself on the next compile.

Resolve a finding that is not a problem. Tick the card › Resolve… › pick the reason: Crew gear, not a sub-rental · Picked up and returned, never scanned · Returned to the vendor, return never logged · The sub-rental never happened · The PO should be voided in RentalWorks · CPU, the charge is right · CPU, zeroed out in RentalWorks · CPU, a write-up, not a charge · Something else (explain in the note). The card leaves at once, on every screen.

Put it on someone's list. Tick › + Agent list, + Prep tech list or + Someone's list ▾. The same button reads − when every selected card is already there.

Review what was cleared. Show cleared. A cleared card that re-opens (a new finding on the same job) shows an amber strip with "remove the old sign-off".

Note: a step completed in the last 15 minutes may still be listed; your own Resolve shows at once. "The PO should be voided in RentalWorks" is a flag for a person to do it by hand; nothing here voids anything. There is no Ignore: use Resolve with a reason.

4.5 Logging a purchase

Anyone at the Warehouse level or above logs what they buy for CSLA in Purchases: see 9.1.

5. Drivers

5.1 The Daily Driver

What it is. The route for the day: every sub-rental pickup (a PO starting today), return (a PO ending today) and delivery, grouped by vendor into numbered stops. Each stop shows what RentalWorks knows (received? checked back in? returned?) so nobody is sent for gear that is not ready, and misses from earlier days stay on the list until someone deals with them. It is the one module used on the road, on a phone.

On the screen.

  • The day in the title with its calendar; ⧉ Copy route; + New run. Second row: one chip per driver plus No driver, Hide completed, and the count "N stops · N pickups · N returns · N deliveries · N/N done".
  • A stop is a vendor header (⠿ grip, name, counts) with its rows tagged PICKUP (green), RETURN (red) or delivery. Each row: a checkbox, the vendor, a was-due pill if it is late, the driver pill (empty reads assign driver), the identifier line ("PO-808891 · Job 321291 · Tech HANNAH"), a gear preview with "+N more items…", a note, and photos.
  • The pickup pill reads "N of M received" (green, amber or red); the return pill reads "✓ returned to vendor", "✓ N of N checked back in and ready to be returned ›", "N still out on the job ›", "⚠ 0 of N checked back in — job is back ›", or "— N due back" when the sync has nothing yet. Done rows strike the vendor name.
  • Still owed from earlier: an amber box above stop 1 on today's list with the last 14 days' misses: "N still owed · N just completed", Show completed (N), and the bar ✓ Mark as completed · ⊘ Ignore run.
  • Clicking a pill opens the PO items panel: ordered against returned per item, checkboxes with ⊘ Ignore / ↺ Un-ignore, an "Ignored" group naming who and when, Copy list and Open PO ›.
  • Photos: ◉ Take photo and ▤ Photo library; a viewer with previous/next, a per-photo note and "Uploaded by NAME".

Tick a stop done. Click its checkbox after the physical pickup or drop-off. Pickups tick themselves when fully received in RentalWorks; returns tick themselves only when a RETURN contract covers the whole PO. Your tick always wins.

Reorder the route. Drag a row within its vendor, or drag the vendor header to move the whole stop. On a phone, hold for half a second, then drag; the list scrolls at the edges. Everyone's screen reorders.

Assign a driver. Click the driver pill, pick a name. Filter the page to one driver with their chip; the filter is remembered on your device.

Copy the route. ⧉ Copy route copies the stops in order with done markers, jobs, drivers, gear and notes, filtered to the active driver, ready to paste into a text message. With Hide completed on it copies the remaining stops only.

Add a run RentalWorks has no PO for. + New run › Type (Pickup, Delivery, Return), Vendor or destination, What › Add run.

Close out a missed run. In Still owed from earlier, tick it › ✓ Mark as completed if it happened, or ⊘ Ignore run if it never will. Undo from Show completed (N).

Ignore items you are not collecting or sending back. Open the pill › tick the lines › ⊘ Ignore. The pill then reads, for example, "0 of 2 received · 1 ignored ›".

Add photos. Open the row's photos › ◉ Take photo or ▤ Photo library; swipe between photos; type a note under one.

Correct a missing vendor. A row with no vendor in RentalWorks reads "(no vendor)" in red. Click it and type the vendor; the row joins that vendor's stop. RentalWorks is not changed.

Note: "checked in" means scanned in RentalWorks, not "in the building": a checked-in return still needs your tick after the drop-off. "— N due back" means the sync has no row yet; a new PO reads that way for a while. A dim gray row means the job's gear has not started coming back; hover for why. A missed pickup drops off the owed box once the rental window is over and becomes a Loose End.

6. QC

QC and returns work the Returning side of the Daily Board and its Return Status panel, the morning Turnarounds list, the two condition logs, and the To Reconcile in RW follow-ups. The QC Loose Ends group "Returned by the driver, not returned in RentalWorks" (4.4) is the QC manager's list too.

6.1 Returning jobs and the Return Status panel

On the Daily Board, the Returning section lists every job due back on the day: Job, Agent, Note, Return Time, IN, Items, Subrental Returns and Turnaround.

  • Return Time shows the planned time; the ⇢ beside it pushes the return to another day, and you can type a time in the cell. Allocation and Turnarounds follow the pushed day live.
  • Items is a chip reading "N / M in" (green, amber or red; "?" means unknown, not zero). An amber ✱ beside it means a return note exists.
  • Turnaround holds the chips for items flagged for upcoming jobs (6.2), and a free-text note.

Open the Return Status panel. Click the job's Items chip. Tabs: Still Out, Checked In, L&D and Gone (no L&D). Copy list copies whichever tab is showing; + Add a Note records a return note.

Record what happened to a piece RentalWorks still shows as out. On Still Out, tick the pieces, then in the bar: ✓ Checked in (it is back, nobody scanned it), ⚠ Missing (L&D) (gone, and billable), or Missing (no L&D) (gone, written off). The piece moves to the matching tab at once, flagged "manual" with your name, and appears on To Reconcile in RW (6.4) so the matching change gets made in RentalWorks. ↺ Back to still out undoes.

Flag a returning item as a turnaround. On the item's row press Turnaround for…, type the job number or pick it under "Jobs that need this item" or "Other upcoming jobs"; priority is optional. For several items, tick them and use ⟳ Turnaround for… in the bar. The flag appears on every screen live.

Warning: a RentalWorks scan and a person's word are kept apart on purpose: a manual check-in is always flagged as manual, with who and when.

6.2 Turnarounds

What it is. The QC floor's morning list: gear coming back that has to be checked in, QC'd and handed straight to a prep tech for a job going out the same day. The list is built for you from the day's outgoing jobs and what is due back, and names which returning body should go on which job. People can also flag turnarounds by hand (6.1). Each line is routed to the bench that QCs it: Camera Tech, Lens Tech, Service Tech or General QC.

Old way: turnarounds were worked out by hand each morning from what people knew about returns and outgoing jobs. The owner's ask was to compile them almost automatically "so it's super clear what their priorities need to be each morning". The free-text Turnaround note on the board stays as the escape hatch.

On the screen.

  • The day in the title with its calendar; Routing rules… (managers); the bell (reads off or on; a dashed border means sound is not unlocked yet). Second row: the bench tabs All, Camera Tech, Lens Tech, Service Tech, General QC with counts, Show done (N), Show ignored (N), and the count "N jobs going out today · M items · U units · K back".
  • One card per outgoing job, in pickup order. Each line: a ⋮⋮ grip, a box, the bench pill, the item and quantity, a priority tag, the barcodes (plain from RentalWorks or Allocation, MANUAL, or AUTO-ALLOCATED), and the why-line: ARRIVED 9:36 AM in green, "2 of 4 back" or "due back today 9:30 AM" in amber, "— not scanned yet" in red once late; then "needed today for 4 jobs", "9 of the 10 this job needs · 2 from the shelf", "returning from 321785 ×8", and an Allocate button.
  • Tick lines for the bar: ✓ Mark ready / ↺ Not ready · Priority ▾ · Departments ▾ · Assign ▾ · ⊘ Ignore · ✕ Remove flag (hand flags only).

Work the morning list.

  1. Open Turnarounds and click your bench tab.
  2. Read the why-lines: what has arrived, what is still out, what is late.
  3. When a body is checked in and QC'd, tick its line and press ✓ Mark ready. A notice "… QC'd and ready for job N" lands on the job's prep tech's My List (or the whole PREP list).

Set priority. Tick › Priority ▾ › High, Medium or Low.

Send a line to another bench. Click its bench pill. Picking a bench the item already routes to is a one-time claim; picking another bench is remembered for that kind of item. To teach several benches at once, tick › Departments ▾.

Hand a line to a person. Tick › Assign ▾. It lands on their My List too.

Ignore a line. Tick › ⊘ Ignore › This time only (undo under Show ignored) or Every time (the item joins the auto-ignore list in Routing rules; "suggest again" reverses it).

Turn on the chime. Click the bell, then click anywhere on the page once; the dashed border turns solid. It plays once when something arrives and twice for a new turnaround, and the browser tab shows the count. Sound is per device and off until you turn it on, and after every reload you tap the page once more.

Jump to Allocation. Allocate on a line opens that item's Allocation card for the day.

Note: the list is by the day gear goes out: tomorrow's jobs are on tomorrow's list. "Due back" is the plan; the IN scan says whether it is really back. Detected lines appear after the 15-minute refresh; hand flags are instant. A line whose units are all done moves behind Show done. Nothing can wake a sleeping iPad. If the detection could not be read, an amber notice says so with Try again.

6.3 Optical Logs and Camera Logs

Note: Warehouse and above edit; Viewers look.

What they are. The condition log for every lens and filter (Optical Logs) and every camera body (Camera Logs). Scan a barcode, see the unit's history, mark today's inspection on a diagram with the Apple Pencil, add notes and photos, sign it off against the job it came back from, and save a before-and-after PDF for a client. Camera Logs is the same screen for bodies: one rectangle at the sensor's real size, before and after sensor photos, and a firmware box; film, action and body-only cameras get component notes instead of a diagram.

Old way: one Acrobat PDF per lens or filter on an iPad, marked with the Pencil and edited in place for years, kept in Dropbox (about 2,000 of them). Those PDFs can be imported one at a time, and the live log replaces them.

On the screen. A barcode box ("Scan or type a barcode", Open; a Bluetooth scanner types it and presses Enter for you); + New log file; the Recently logged list. Camera Logs adds the Camera bodies worklist (every body, its sensor size, where it is, Open log › or Start a log ›) and Camera models… for managers. The unit screen: the identity line, the status facts, the diagram, + New QC session, Import Acrobat log (Optical Logs), Before / after, the history rail, and a "condition as of" scrubber that walks the sessions.

Write an inspection.

  1. Scan the barcode, or type it and press Open, or search the model.
  2. On the unit screen press + New QC session, and confirm or type the job it came back from.
  3. Mark the diagram with the Pencil: pick a mark type chip (Scratch, Cleaning mark, and so on) and a width, and draw. The Pencil draws and a finger pans and zooms; Finger draws switches that. ↶ Undo and erase reach only this session's marks.
  4. Type the front and back notes and Housing & mechanics (cameras: Body & mechanics); add housing photos. For a camera, add the BEFORE and AFTER sensor photos and note the firmware.
  5. ✍ Save & sign: pick yourself, draw your signature, tick the line "I personally inspected this unit…", confirm the job. The session is saved and locked.

Compare with last time. Before / after › pick the earlier session › Show differences highlights everything added since; Save as PDF prints the pair, trimmed for a client.

Log a sub-rented lens. Scan it › "Log it as a sub-rented unit instead" › description, serial, vendor › Create vendor unit.

Import an old Acrobat PDF. Open the unit › Import Acrobat log › pick the PDF › check the preview › commit. One at a time.

Warning: a signed session can never be edited; a correction is a new session. Two people should not work one unit at the same time. The Pencil fix has been tested in a harness but not yet on a real iPad; tell the owner what it gets wrong.

6.4 To Reconcile in RW

What it is. The follow-up list for the decisions made in the Return Status panel (6.1) about gear RentalWorks still shows as out: some is back and nobody scanned it, some is gone and billable, some is gone and written off. This module gathers those decisions across all jobs so someone can make the matching change in RentalWorks and tick each one off.

Old way: "that knowledge used to live in someone's head."

On the screen. Show already reconciled · N; the count "N items decided in this ERP and not yet matched in RentalWorks". Three groups with their instruction: Missing, charge as L&D (raise the Loss & Damage in RentalWorks), Gone, no charge (clear the item off the order), Back, never scanned (scan it in, or check it back on the contract). Each card: the item, consignor tag, barcode or quantity, the job, the due date, who decided and when, and ✓ Matched in RW.

Work the list.

  1. Read each group's instruction and make the change in RentalWorks.
  2. Press ✓ Matched in RW on the row, or tick several and use the bar. The row leaves the list.
  3. ↺ Not done (under Show already reconciled) brings one back.

Note: "Back, never scanned" rows close themselves once RentalWorks shows the piece is no longer out, and come back if that scan is voided. "Missing, L&D" never closes itself: tick those off by hand. Nothing here is written to RentalWorks.

7. Service

The Service Tech bench appears in two places:

  • Turnarounds (6.2): lines routed to the Service Tech bench by the routing rules, or sent there by another bench's pill. Work the tab like any bench: check, QC, ✓ Mark ready.
  • Allocation (4.2): a unit in repair in RentalWorks shows a red in repair N pill on its card and "IN REPAIR … due back" in the lane picker, so prep does not plan on it. Repairs are still recorded in RentalWorks as before; the ERP only shows them.

Service also uses the board, My List and QC Loose Ends like everyone else (chapters 3 and 4).

8. Rental agents

Agents still quote, book and bill in RentalWorks. The ERP adds what RentalWorks has no place for: who has paid (Jobs), the client's file and paperwork (CRM), the per-job close-out (Agent Audits), and lookups (Reports, Consignment). Agents also work the Daily Board and Allocation with the warehouse; those are in chapter 4.

8.1 Jobs

What it is. One row per job that has shipped or carries a live invoice, with RentalWorks' figures (order, client, dates, total, invoice) beside CSLA's own payment facts (status, payment method, terms, payment date, notes). RentalWorks tracks no payments at all, so this is where "who paid" lives. Each row opens a job card with the gear list, the POs, the consignment lines, the invoices and the audit.

Old way: a hand-kept Google Sheet of about 1,400 rows was the only record of who paid. One background color on a row meant four different things, and the PO-check column carried codes (XE, XC, XL, XA, NEW). The sheet was imported; its colors became the pills and boxes below.

On the screen.

  • The search box finds an order, client, job, invoice number, or a date typed as you would say it ("june", "6/1/26").
  • Buttons: Billing report, Import sheet (Jobs edit only), Export CSV.
  • Filters: an agent picker, Dates ▾ (From and To, This month, Last month, Last 30 days, Year to date), the chips All jobs, Today and Tomorrow, and Filters ▾, plus the row-color legend.
  • Filters ▾ opens a menu of pills in five sections, with how many jobs each one has:
    • Jobs: To invoice, Owed, Out now.
    • Invoices: Has live invoice, Invoiced but voided (every invoice voided, no live one), No invoice (none at all, live or voided).
    • Row colors: the five colors of the legend.
    • Audit boxes: Not fully audited, Fully Audited, and one To do pill per box (To do: Total, To do: Consignor Splits, To do: POs, To do: Crew Gear, To do: Who Gets the Money).
    • Audit flags: No flags, All flags, and the same flag groups as Agent Audits' Filters (PO flags, Return flags and the rest), each with its kinds under it.
  • Click pills to light them, several at once; the menu stays open. Inside one section a job needs any of the lit pills; across sections it needs every section. So No invoice with Invoiced but voided shows the jobs not invoiced yet, and adding PO flags keeps only those with a PO flag. A lit pill clicked again turns it off; Turn the filters off clears them all. The Filters ▾ pill shows how many are on, and pointing at it names them. They add to the chip, the agent, the dates and the search.
  • Columns: Order, Client, Job, Agent, Pickup, Return, Total, RW invoice, Status, Payment method, Terms, Payment date, Audit, Attn, Notes, and further right Total billed, Consignor, POs, Net total and the Client PO. Every column sorts; drag a header edge to resize and a header to reorder. Widths are remembered per device.
  • Row colors: pink means the order needs cleaning or a PO check; yellow means check the notes; blue means PO check done and audited; red means waiting on payment; green means payment received. A color you set by hand (tick rows, then a swatch in the bar; Auto hands it back) always wins.
  • Tags: a dashed row is ESTIMATED (going out today or the next business day, nothing scanned out yet); CANCELLED is marked.
  • RW invoice is RentalWorks' own invoice number, with "+1" for more, "+N void" or "(void)" for voided ones. Click it to open the card's Invoices tab. You cannot type in it.
  • Audit shows an amber Audit with the number of open issues, or a green ✓ Audited.
  • Pills: Status (need to send invoice, invoice sent, payment processing, payment received, or type your own), Payment method, Terms (NET 30 and the like, COD, CPU, Card on return), Payment date. A dashed pill shows the client's usual value; its menu opens with "use the client's usual".

Narrow the list to your jobs.

  1. Agent picker › your name (or My jobs).
  2. Dates ▾ › the range you want.
  3. Filters ▾ › light what you are after: for jobs not invoiced yet, No invoice and Invoiced but voided; for jobs with any PO flag, PO flags. The count beside the chips says how many are left.
  4. Export CSV downloads exactly that list.

Record a payment.

  1. Find the row (search it, or Filters ▾ › Owed).
  2. Click the Payment date pill once and pick Today or a date.
  3. Status becomes "payment received" and the row turns green by itself.

Warning: a payment date is a payment, everywhere in the ERP. Clearing the date does not clear the status.

Set a client's usual terms.

  1. On any of the client's jobs, click the Terms or Payment method pill and pick a value. It saves to that job and, if the job is the client's newest, to the client's profile.
  2. Every other job of theirs with no value of its own now shows it dashed.
  3. Or open the client card and set it under Billing.

Fix a total. Click the Total cell twice and type the figure. Clearing it restores RentalWorks' figure.

Make the job's invoice in RentalWorks. This is one of the ERP's two writes to RentalWorks, and only people allowed in Admin see the button.

  1. Open the job card › Invoices › Make invoice…. The window opens at once with the ERP's billable total and the job's client PO. The PO line is amber when the invoice would go out with no PO number.
  2. Press Make invoice for $X. The window closes, and a card at the bottom right says "Making invoice for job N…". Keep working anywhere in the ERP.
  3. RentalWorks makes the invoice only if its Billing screen lists exactly one line for the job, with no warnings, at the ERP's total to the cent. The card turns green with the number, Open PDF and Download PDF, or red with the reason and "Nothing was changed in RentalWorks". The grid's RW invoice cell catches up within 15 minutes.
  4. Press Make on other jobs while one is being made, and they wait in line, made one at a time. Finished cards stack above, and the bottom card is the one being made, with the jobs waiting behind it. Take the N waiting out of line stops the rest.
  5. For several jobs at once: tick rows › Make invoices… › Make N invoices for $X. Only fully audited jobs with no live invoice go; the rest are listed with the reason. The window closes and the cards take over.

Warning: an amber card that says "no clear answer" or "lost touch" means the invoice may or may not exist. The line pauses there: look at the job in RentalWorks, then press Continue. Closing or reloading the tab while a card says it is making or waiting drops the line, so the browser asks first.

Record the client's PO. Job card › POs › type the PO number and PO amount, drop the client's PDF, Save. The ERP saves first, then sets the same PO number and amount on the RentalWorks order in the same Save (the second of the two writes). The box tells you when RentalWorks still shows PENDING.

Copy to a spreadsheet, or export. Drag or shift-click cells and press ⌘C (or Copy); tick rows and press Copy rows for a header line too. Export CSV downloads the rows on screen.

Import the sheet. Import sheet › drop the .xlsx (not a CSV: the colors would be lost) › confirm what each color meant › read the review (totals that differ, rows the ERP does not have, Download the differences) › Import. Undo it is offered afterward.

Note: Today and Tomorrow include quotes and cancelled-but-shipped jobs, tagged. To invoice leaves out any job that ever had an invoice, voided ones included, because a voided invoice may have reached the client. In a cell, Enter commits, Escape abandons, Shift+Enter is a new line in Notes. A pill opens on the first click; shift- or ⌘-click extends your selection instead. Allow pop-ups so PDFs can open.

8.2 CRM

What it is. One record per company or person, with up to three sides (Customer, Vendor, Consignor), holding contacts, account status, the account paperwork, a card on file and holds, and the links to RentalWorks and QuickBooks. It drives the client paperwork page (csla-paperwork.pages.dev), where a new client fills in, signs and uploads the account packet online, and staff approve or send back each document.

Old way: an agent emailed a new client the "Start Paperwork" instructions and six PDFs; the client sent them back to accounting@, all at once or in pieces, and staff filed them by hand into Dropbox folders. The ERP sends one link, tracks each document, stores the signed PDFs, and the Dropbox folders are being moved in and retired.

On the screen.

  • Customers | Vendors beside the search box.
  • Second row: In RentalWorks (RentalWorks customers with no card yet), Crew, Dropbox folders, Deleted records (Admins), then the view's own controls. On Customers: the type chips Companies, Individuals, Type not set; the Filter pill (View all first, then Needs a match, Not linked to QuickBooks, Prospect, Paperwork, Approved, On hold, Do not rent); the amber Paperwork ready for review (N) pill when something waits; a Dates pill; + New customer; Notifications ▾ (who gets a My List notice when paperwork is submitted); Paperwork links; Export CSV. On Vendors: the chips Sub-rental and Inventory (the kind of PO they are on), the Consignors pill (every consignor record, or the ones with a job picked up between two dates) and a Dates pill.
  • Customer columns: Customer, Contact, Status, Paperwork, Insurance, RentalWorks, QuickBooks, Billed, Last activity.
  • Vendor columns: Vendor, POs for, CRM card, QuickBooks vendor, POs, PO total, Paid, Owed, Latest PO. Paid and Owed are the POs tab's own figures, counted from Jan 1, 2026, when it began tracking payments; click Owed for their POs. A vendor's name opens their card on its Vendor side.
  • Tick rows for the bar: Copy N emails, Export CSV, Link to QuickBooks, Delete… (a deleted record goes to Deleted records, where Admins restore or purge).
  • The card. Header with the Customer · Vendor · Consignor switch (a side the record does not have reads +). A company's tabs: Details, Paperwork, Cards & Holds, Contacts, History, Activity Log. A person's add Gear, Job History and Company Affiliations.
  • The Vendor side: RentalWorks vendor (their POs, first to latest, and Unlink); What they are owed (the POs tab's figures); QuickBooks vendor (Find a match, Create a new vendor, Link to another vendor, Unlink; needs Accounting access); Their POs (click a row to open that PO on the POs tab). A vendor with no card yet shows Start a CRM card, or search for the card they already have.
  • The Consignor side opens their consignor card.
  • Paperwork tab: Account application, Rental agreement, Personal guarantee, Certificate of insurance, W-9, Card on file, Photo ID, each with a tick box, Approve and Send back (with a note the client sees), Add file (or drop a file on the row), and + Request paperwork.

Start an account. In RentalWorks › Start account on the customer. Name, address, phone and email copy over and the status is Prospect. Or + New customer.

Send a client the paperwork link.

  1. Open the card › Paperwork.
  2. Press + Request paperwork: it ticks what the full packet still needs (the Personal guarantee is never ticked for you). Adjust the ticks if needed.
  3. In the bar, Generate paperwork request link: choose who it is for, how long it works (30, 60 or 90 days), then Make the link.
  4. Copy link or Copy email, and send it from your own email so it comes from someone the client knows.

The client sees a checklist (not started, in progress, submitted, approved by CSLA, needs a fix) and can download their signed PDFs.

Review a submission. You get a My List notice and the amber pill lights. Open the card › Paperwork, read the document (type in the insurance certificate's facts), then Approve or Send back with a note. Nothing ticks Account Approved for you; that stays a person's call.

Holds and cards. Cards & Holds › Place hold (the deductible is pre-filled from the approved certificate of insurance) › confirm; later Release. Capturing or charging a card is for managers. Card actions wait for the processor's answer and are not instant.

Link to QuickBooks. Details › pick a suggestion or search › Link; or tick cards › Link to QuickBooks.

Add a side. Click the side that reads + on the switch, then search for the RentalWorks vendor, the consignor or the customer's card it belongs to. If what you pick already has a CRM card of its own, you confirm and the two cards merge into one record. The card with the account stays (a status, a RentalWorks client or a QuickBooks customer). Unlink on the Vendor side takes the vendor off the card again.

Work the Dropbox list. Dropbox folders › Open in Dropbox ↗ › add the files to the card › tick paperwork and cleaned, or Skip.

Note: a client's link expires (60 days by default); nothing is lost, make another. A card with paperwork on file cannot be deleted; merge instead. A hold's lifetime is set by the client's bank, not by CSLA, so watch the 5-day warning. Card capture still runs in the processor's test mode until the owner completes the cutover.

8.3 Agent Audits

Note: Warehouse and Viewer open it read-only; Agents and above tick the boxes.

What it is. The per-job close-out: one row per 2026 job with four boxes a person ticks, beside the issues the ERP found on its own (missing POs, gear not returned, consignment splits to confirm, money nobody has claimed). A job is Audited only when all four boxes are ticked, and that gates making its invoice and paying its consignors.

Old way: the audit moved chronologically by month and "closing out a month" was rarely fully complete; crew gear lived mostly in the agent's head; the PO-check codes on the jobs sheet (XE, XC, XL, XA, NEW) were the record. Now each job stands on its own four boxes, visible to everyone.

On the screen.

  • Chips: All, then the To Do group (Total, Consignor Splits, POs, Crew Gear, Who Gets the Money) and Fully Audited. To Do chips combine: jobs missing at least one of what you picked.
  • Hide $0 / CPU and Hide CSLA-only are on by default (per device); the hidden count always shows with a "show" link.
  • A Dates pill; Filters (groups of flags: Consignment, PO, Return, Billing, Other); Sort by (Pickup date, Return date, Job number, Flagged first, Non-60/40s); an agent picker that starts on My jobs.
  • Each row: the checkbox, the job number (opens the card), the agent pill, "N consignors", an amber 80/20 or CPU chip, a blue ◈ FLAGGED pill, the finding in words ("No Receive Contract (2 POs)"), and the four boxes: Total amount is correct: $X, Crew gear done, Subrental POs made / checked, Consignment splits confirmed (ticked for you, grayed, with "· auto" when nothing consigned went out). Hover a ticked box to see who ticked it and when. + Note adds a note.
  • An open row shows each consignor's line with the split pills 60/40 70/30 80/20 90/10 CPU (solid is confirmed; dashed is what will apply unless someone says otherwise), Done in RentalWorks ✓ where a deal asks for it, the findings with Resolve, and anything "For a person to decide".
  • Tick rows for the bar: Tick a box ▾, ◈ Flag, Unflag, Make invoices….
  • The same boxes and issues are on the job card's Audit tab.

Audit a job.

  1. Find it (the agent picker on My jobs, the To Do chips, or search).
  2. Check RentalWorks' order total against the invoice, then tick Total amount is correct: $X. The line is amber when the invoice differs.
  3. Remove or PO any crew gear, then tick Crew gear done.
  4. Make sure every sub-rented line has a PO (Resolve the findings as you go), then tick Subrental POs made / checked.
  5. Open the row. For each consignor, click the right split pill (one click confirms; clicking the solid pill clears it), set the same split in RentalWorks on the invoice's consignment tab, press Done in RentalWorks ✓ where asked, answer any "Who gets the money?" item, then tick Consignment splits confirmed.
  6. The row reads ✓ done. On the job card's Audit tab, Generate invoice in RW… appears when the job has no live invoice.

Warning: tick the four boxes one at a time, each when you have actually checked it. The owner chose this on purpose, and the Total box is never bulk-ticked. The splits are still applied in RentalWorks on the invoice's consignment tab; the ERP records what was agreed.

Resolve a finding. Resolve opens the QC Loose Ends window for that item; Clear it with a reason. Undo from QC Loose Ends › Show cleared.

Several jobs at once. Tick jobs (shift-click a range) › Tick a box ▾ › one box › confirm. Or ◈ Flag and Unflag.

8.4 Reports

Note: Agents, Managers and Admins can look it up; Viewer and Warehouse have no access.

What it is. Look up one kind of gear (an I-Code) or one unit (a barcode) and read what CSLA holds, what it has billed, how much of that was on owned, consigned or sub-rented units, and what sub-renting it cost. On demand only; there is nothing to maintain.

Old way: questions like "that lens looks alarmingly high, is it?" were answered by the owner in SQL. The queries became this screen.

On the screen. The search box takes an I-Code, a model name in any word order ("sony 16-35") or a barcode, and searches as you type. Hide unpriced is on by default and leaves out gear with no day rate that has never billed; the hidden count always shows, with a one-click "show". The I-Code report: tiles for billed, jobs, billed on own units, billed on consigned units, billed on sub-rented units, not credited to a unit and sub-rental spend; a date range (All time, This year, Last year, From…, To…) over the job's pickup date; tabs Jobs, By month, Units, Sub-rentals and Invoiced, never shipped; Copy list. The barcode report: the unit's per-job rows and a link to its condition log.

Answer "how has this model done?" Type the model or I-Code and pick the result; read the tiles; click a tile such as billed on consigned units to narrow the lines to that kind (click it again to turn it off); pick a range; By month for the trend, Units for each barcode, Copy list to paste into a sheet.

Answer "what has this barcode earned?" Type the barcode. The report follows the unit, so an old label resolves to today's barcode.

Note: only jobs with an OUT contract count; quotes never show. The range is the pickup date, not the return or the invoice. The Units tab is lifetime whatever the range. Sub-rental matching goes by the words and numbers on the PO lines and is honest rather than exact.

8.5 Looking up a consignor

Agents can open Consignment to look up who consigns what, their deal, payment method and paperwork, but cannot change it. Paying consignors is in chapter 9.

9. Accounting

The money side: what CSLA buys, what it owes vendors and consignors, what came in and out of the bank, and what goes to QuickBooks. Only Admins see most of this today; the purchase log is the exception, open to everyone who buys things for CSLA.

9.1 Purchases: the purchase log

Note: anyone at the Warehouse level or above can log a purchase.

What it is. Where anyone who buys something for CSLA records it: what, when, from whom, how much, paid with which card, and the receipt. The categories you pick here are the categories the books get, so Accounting can match the bank line to your entry later.

Old way: the "CSLA Accounting 2026 - Expenses" Google Sheet. Its 579 rows were imported and keep their numbers as No., so an old reference still finds the right entry.

On the screen.

  • Purchases | POs beside the search box (the POs tab is Admins only); Export CSV; + New purchase.
  • Second row: the Category picker, the Dates pill, and the Filter pill with Mine, To fill in, In QuickBooks and Not in QuickBooks, each with its count. A lit choice picked again turns off.
  • Columns: No. (an amber dot means something is still to fill in), Date, Who, Vendor, Description, Category, Paid with, Total, QuickBooks (✓ In QuickBooks, Not in QuickBooks, or a dash when nothing can be searched), Receipt (a chip per file and + Add), Note, Tracking / order #.

Log a purchase and attach the receipt.

  1. Purchases › + New purchase.
  2. Fill in Date, Who bought it, Category, Vendor, Description (or Pick from inventory) and Total. Cost, Sales tax and Shipping or tip are optional. Check Paid with; it defaults to the card you used last. Tick the box about an online or out-of-state seller if no California sales tax was charged.
  3. Drop the receipt photo or PDF on the box, or Choose a file. It uploads when you save.
  4. Save. The number is assigned for you.

Later, drop a receipt straight onto the row, or use + Add in the Receipt column. Use Filter › To fill in to find your entries with an amber dot.

Note: you can change or delete only your own entries (Admins any); anyone can attach a receipt to any purchase. "✓ In QuickBooks" means QuickBooks has a same-account, same-amount entry within 7 days, not a confirmed link.

9.2 Purchase orders (the POs tab)

Owner only: Admins only today. Nothing here writes to RentalWorks.

What it is. Every RentalWorks purchase order, in two lists: Consignor POs and Sub-rental POs. Which are paid, which are owed, which still wait for the vendor's invoice, and sending them to QuickBooks as bills so Nickel pays them.

Old way: one Google Sheet for vendor POs and another for consignor POs; a vendor's bill went straight into Nickel and was paid by ACH; consignor payouts were a sheet, the POs saved in Dropbox, a bank bill-pay check, then the PO emailed. The POs tab replaces both sheets, and bills now go to QuickBooks from here.

On the screen. View by… (All POs, by consignor or by vendor, then Owed, Match detected, Ready to send to QB, PO check, Waiting on invoice, Invoice to check, New vendor, Upcoming, Paid, Not owed, Ready to pay in Nickel, Attn, Moved), Dates, Vendors, Import the sheet, Export CSV. Row colors: green Paid, red Ready to send to QB or sent, yellow Waiting on invoice, blue New vendor. Columns: PO, Attn, Date, Vendor, Job, Total, Invoice, Payment method (Send to QuickBooks when ready; Match detected when a checking payment may already have paid it; "Sent to QuickBooks" after), Payment date, Notes. Tick rows for Record a payment, Statement, Attach an invoice, Send to QuickBooks, Send as separate bills. Clicking a PO number opens its panel: totals, Open the RentalWorks PO and Download, the vendor's invoice and whether it matches, files, payments with Look and confirm beside a detected checking payment, notes, Mark not owed, Re-read from RentalWorks, Attach again when not all of a sent bill's files reached QuickBooks, and on consignor POs the Checked against the audit section.

Pay a sub-rental PO through QuickBooks and Nickel.

  1. Drop the vendor's invoice on the PO row (or Attach an invoice). Type their invoice number and total; the ERP says whether it matches the PO. If it differs, fix the PO in RentalWorks and press ↻ to re-read it.
  2. When the row is red and the cell reads Send to QuickBooks, press it. Tick several POs of one vendor to send one grouped bill, or Send as separate bills.
  3. Check the bill date, bill number, the account and the attached files, then Send.
  4. The cell reads "Sent to QuickBooks". Pay the bill in Nickel; after the next hourly QuickBooks read the PO turns green.

Pay a consignor PO. The same send; the ERP attaches RentalWorks' own PO PDF to the bill. A consignor PO must first pass the Checked against the audit section (or be accepted with a note).

A checking payment may already have paid it: Match detected.

  1. A row whose Payment method cell reads Match detected has a checking payment with the PO's amount, or naming its vendor, within 60 days of the PO. It can't be sent to QuickBooks until this is settled. View by… › Match detected lists them all.
  2. Press Match detected. The window shows the whole bank line (date, account, description, amount) beside the PO, and what the line would pay on it.
  3. If it is the payment, press Confirm the match. The window closes and the row turns green. Undo is offered for ten seconds.
  4. If it is not, press Not this PO? Open it in Accounting and book the line to the right PO or account there. The PO can then be sent.

Record a payment made some other way. Tick the POs (or open one) › Record a payment › tick the open POs, enter date, method, reference and note › Save. A Statement is offered afterward.

Warning: red means two things, ready to send and already sent; the Payment method cell tells them apart. A PO paid elsewhere must never be sent as a bill, or Nickel offers to pay it again; record it in Accounting instead. If a PO with a detected checking payment was already sent to QuickBooks, the window says so: delete that bill in QuickBooks if the check paid it. When the bank lines can't be read, the cell reads "Bank not checked" and nothing is sent until a refresh reads them.

9.3 Accounting: bank and card lines

Owner only: Admins only today.

What it is. Where CSLA's bank and card activity meets the rest of the ERP. Bank exports are imported here; each line is matched to its purchase in the log, to a PO, to a QuickBooks entry, or to the job a deposit pays; lines with a category are sent to QuickBooks as expenses, so QuickBooks' bank feed only has to accept the matches.

Old way: categorizing in QuickBooks by hand, which had fallen behind since 2024; client payments matched by eye and marked paid in the jobs sheet. Now categorizing happens in one place, and QuickBooks' part is reduced to accepting the matches.

On the screen. Tabs Bank and card lines, QBO Transactions, Balances, and Accounts (coming soon) and Liabilities; Lines | By payee; Rules, Vendors, Purchase categories, Export CSV, Import a bank file, Import MX files. Second row: the Account, Status (In QuickBooks, Ready for QuickBooks, Suggested, Needs a category, Money in, Matched to jobs, Card accounts) and Dates pickers, and the chip To match in QuickBooks · N when anything waits. Columns: Date, Account, Description, Type, Amount, Category, QuickBooks, and the bank's own category.

Import a bank file.

  1. Download the account's export from the bank. It stays in the ERP; never paste it anywhere else.
  2. Import a bank file › drop it. Read the preview: totals in green, no running-balance breaks, no unknown account numbers.
  3. Import. Overlapping files are safe; only new lines are added.

Categorize a line. Status › Needs a category. For a card charge, + Log as purchase opens the purchase form filled from the statement. For anything that is not a purchase (a subscription, payroll, rent, fees), Category only › pick the QuickBooks account, and optionally Also make a rule for lines like this. For a detected PO payment, click the detected category and Save; the PO turns paid on the POs tab. Every accept gets a ten-second Undo.

Link a payment to its PO by hand. Use this when a line pays a PO but no PO was detected, or the line was booked with no PO. Click the line's category, or Category only, to open Category for this line. Under PO this pays (optional) the ERP lists the POs the line could be paying: a PO whose number is in the description, one for the same amount, or one from a vendor the description names. Each row says why it is listed and what is still owed. To find another, type a PO number or part of a vendor's name.

  1. Tick the PO. The account switches to the PO's kind: Consignor Expense or Subrental Expense.
  2. Read the line under the list. It says whether the PO's total matches the line, and turns amber when it does not.
  3. Save. The PO turns paid on the POs tab, and you get a ten-second Undo.

One payment can cover several POs of one vendor: tick each. A line pays one vendor and one kind of PO. To let a PO go, open the line again and untick it, or Remove the category and PO.

Send lines to QuickBooks. Status › Ready for QuickBooks › Select all N shown › Send N to QuickBooks… › answer any new payees › Send. Then in QuickBooks, Banking › For Review: accept each Match. To match in QuickBooks lists what still waits.

Warning: in QuickBooks' For Review, always Match, never Add, or the charge is booked twice.

Match a deposit to its job. Status › Money in. A detected job: tick and Match N to their jobs. Otherwise Match to a job › and use a suggestion or search; for a lump sum, pick the client and Find the ones that add up; or Not a job payment with a reason. The job turns green in Jobs when fully paid.

Send an invoice to QuickBooks. From the job card › Invoices › Send to QuickBooks… › confirm the customer, the line items, which PO files go along, and the due date › Send to QuickBooks · $total. When RentalWorks changes or voids the invoice: Update in QuickBooks… or Void in QuickBooks…. One invoice at a time.

A paid invoice isn't sent. Once an invoice is in QuickBooks, Nickel asks the client to pay it. So the ERP looks for a payment first.

  • When Jobs has the job paid, its invoice is tagged "paid in the ERP" and has no Send to QuickBooks…. If the job isn't really paid, change its payment in Jobs first.
  • A paid job with more than one live invoice is tagged "job marked paid". Send another of its invoices only when it is a later charge the payment didn't cover, and tick that in the window.
  • For an unpaid job, the window first looks in the bank lines and MX Merchant's card charges and shows any payment it finds. On the Invoices tab, Match detected… means a deposit was detected, and "possible payment" means one may be.
  • Confirm the match records the deposit as the job's payment, the same match Accounting makes, with a ten-second Undo. Open it in Accounting goes to the line. When it isn't the job's payment, tick that and send.

9.4 Liabilities

Owner only: Admins can view.

Accounting › Liabilities estimates what CSLA owes today: POs owed, sub-rented gear on no PO yet (estimated), and consignor money not yet on a PO, with the tables behind each number. Refresh recomputes it; a vendor row jumps to their POs. It is an estimate: jobs not started and money waiting on an Agent Audits decision are listed apart under Not in the total.

9.5 Consignment and consignor payouts

Note: Agents can view; Managers and Admins edit.

What it is. The consignor side of the business: a directory of every consignor from the RentalWorks item master; each consignor's card with contact details, payment preference, W-9 and agreement, split deals, their consignment POs, what they are owed next and their gear; and the payout workflow that takes a job from audit, to invoice, to a consignment PO, to a QuickBooks bill paid in Nickel.

Old way: RentalWorks' consignment module was run monthly or less, the consignor payment sheet was the record of what was paid, and RentalWorks' own statements cannot tell paid from unpaid. The ERP tracks paid-ness from January 1, 2026 through the POs tab.

What a consignor is owed, in plain words. RentalWorks bills by line, and each unit is credited the money from the line it went out on. The consignor's share is their split applied to their whole billing on the job: the split confirmed in Agent Audits, otherwise RentalWorks' own percent, otherwise 60%. A "~" marks an estimate until Consignment splits confirmed is ticked on the job.

On the screen. Views Directory | Upcoming POs | Payouts | Repeat payments. The Directory shows each consignor's status, item count (Top 10 ▸), Deal pill, Payment method pill and Paperwork state. Upcoming POs shows, for a pickup range, every consignor owed money and the blue Ready for a PO pill when all their jobs in the range are audited and invoiced. Payouts shows where each consignor's jobs stand: To audit, To invoice, Ready for a PO, PO to check, To send, Sent, to pay, Paid. The card's tabs: Overview, Consignment Splits, Consignment POs, Upcoming POs, Consigned equipment, Paperwork.

Pay a consignor.

  1. Upcoming POs › pick the range › find the consignor, or read Payouts for where each job stands.
  2. To audit: open their card › Upcoming POs › click a job, or its Audit button, and the job's audit opens inside the row: the four boxes, the total against RentalWorks' invoice, the issues to resolve, every consignor's split (theirs first, marked "their line"), the money a person has to decide, and their units. Tick there until all four boxes are ticked; Expand all opens every job. Payouts' To audit opens the card with those jobs already open.
  3. To invoice: Make invoices…, or Generate invoice in RW…, which appears in the row once the four boxes are ticked and the job has no live invoice.
  4. When Ready for a PO lights, switch the tab to RentalWorks' fee list (Payouts' Ready for a PO opens it that way): one row per live invoice in the columns of RentalWorks' Process Consignment Fees screen (fee date, invoice, client, split, fee) with the total their PO should come to and, in amber, anything that still needs a look. Filter RentalWorks' screen to the consignor, compare row by row, then make their consignment PO in RentalWorks as before. Copy copies the list as a table.
  5. The ERP reads the PO into the POs tab within about ten minutes and checks it job by job (PO to check): it matches the audit, or lists what to check. A PO that fails is not ready until it passes or someone accepts it with a note.
  6. To send: send it to QuickBooks as a bill. Sent, to pay: pay it in Nickel. The payment comes back as Paid.

Record a deal. Card › Consignment Splits › + Create deal › their percent, what it applies to (every job, a client, a crew name, or their items), the words to match, a note › Save. Agent Audits then pre-sets the pill on matching jobs and asks for Done in RentalWorks ✓.

Send a statement. Consignment POs › tick POs › Copy statements or PDF.

File their W-9 or agreement. Paperwork › Upload. Files are private and open through a signed link.

Note: figures in Upcoming POs are estimates until the splits box is ticked. "Last consignment PO" is not "last paid". A voided and re-raised invoice can pay a consignor twice; the Repeat payments view catches it.

9.6 QuickBooks

The ERP keeps a read-only copy of QuickBooks Online and refreshes it every hour. That copy lights the "✓ In QuickBooks" chips, names QuickBooks' vendors and accounts in every picker, and brings Nickel's bill payments back to mark POs paid. In the other direction the ERP writes only what a person presses: expenses, bills, vendors, invoices and their attachments. It never deletes anything in QuickBooks.

Old way: RentalWorks' own QuickBooks link, left expired on purpose: sending an invoice from RentalWorks to QuickBooks was manual and locked the invoice for good. Only one system posts invoices now, and it is the ERP. Nobody should reconnect RentalWorks' app.

Owner only: connecting or reconnecting QuickBooks is done from the SQL editor with qbo-2-connect-link.sql and its one-time link. The ERP says when a reconnect is needed.

Note: vendor names in QuickBooks end in "*" on purpose, because QuickBooks does not allow a vendor and a customer with the same name. The ERP uses QuickBooks' exact spelling everywhere, star included. A bill paid in Nickel, or an account made in QuickBooks, shows in the ERP up to an hour later.

10. Management and Admin

Admin is the roster and the access console: who works at CSLA, what they do, which department they are in, what they may open and change, and who may sign in. Only the Admin preset sees it (a manager can be handed the roster by an override). Everyone else reaches their own photo and pill color through My Profile.

10.1 The roster

The roster is grouped by Status: Staff — Full Time, Staff — Part Time, Day Players, Contractors, Vendors. Each card shows the photo or initials, the name and the job title. Show inactive reveals deactivated people. Cards drag to reorder within their section; that order is also the order of the board's Tech menu and the Daily Driver's driver list. Toolbar: Job roles…, Departments…, Pill colors…, Problem reports (with the unhandled count), + New person.

10.2 A person's profile

Open a card (or + New person):

  • Photo, Name, Job title.
  • Department: one of PREP, QC, SERVICE, ACCOUNTING or AGENT. It decides which department list on My List the person sees and which notices reach them.
  • Status, Phone, Email (the email must be exactly the one their login uses; see 10.4), Name pill color.
  • Job roles, as many as apply: Prep Tech, Driver, Office Manager, Rental Agent, QC Tech, Camera Tech, Lens Tech, Service Tech, Accounting, Rental Manager, QC Manager, Owner. Roles place people in menus: Prep Tech puts them in the board's Tech menu; Driver on the Daily Driver; Camera Tech, Lens Tech and Service Tech on the Turnarounds assign menu for that bench, QC Tech for General QC.
  • Access: the preset (Viewer, Warehouse, Agent, Manager, Admin) with its one-line description, then the per-module grid where any module can be set to No access, View only or Can edit regardless of the preset. The grid also lists two tab-level rights, "Purchases › POs tab" and "Accounting › Liabilities", and under Jobs two sub-rows: Make invoices in RentalWorks and Update the client PO in RentalWorks, each Allowed or Not allowed (and only meaningful with Jobs at Can edit). An override survives a later change of preset.
  • Notes.
  • The login line: "✓ This person can sign in." or "No login yet …" with the instruction to create one.
  • Deactivate… / Reactivate, and Save.

10.3 Change someone's access

Open their card › Access › pick a preset, or set a single module in the grid › Save. Their menu repaints live and the database refuses what their level does not allow, from that moment. To let someone edit Jobs but not make invoices or update client POs in RentalWorks, set those two sub-rows to Not allowed.

10.4 Give a staff member a login

Owner only. A login (the password) and a profile (the roster card) are two records. They link to each other on their own when their emails match exactly.

  1. In Admin, add or open the person and make sure Email is the address they will sign in with, spelled exactly.
  2. In the Supabase dashboard: Authentication › Users › Add user. Enter the same email, exactly, set a password, and tick Auto Confirm User. Create the user.
  3. Back in Admin, reopen the profile. It now reads "✓ This person can sign in." If it still says "No login yet", the two emails differ: fix the address on the profile and save (saving re-runs the link), or run link-logins.sql in the SQL editor to see who is unlinked.
  4. Give the person the password. They sign in at csla-board.pages.dev.

Note: the ERP does not send email yet, so there are no invitation or reset emails. Until that is set up, the owner creates every password and hands it over directly.

10.5 Reset a password

Supabase › Authentication › Users › the person › set a new password, and tell them. The login screen's own line already tells staff to contact their Admin.

10.6 Remove someone

Open their card › Deactivate…. The confirmation spells it out: they lose access to the whole ERP, are signed out, their login stops working, and they come off the tech and driver lists; past board entries keep their name, and they can be reactivated any time. Never delete a person: history refers to people by name. If the app says the login could not be blocked, delete the login in Supabase › Authentication › Users.

Note: an already-open session can keep reading for up to an hour after deactivation (its token has to expire), but it is signed out as soon as the change reaches its screen and no write is accepted from that moment. Nobody can deactivate their own account, and the last Admin who can sign in cannot be demoted or deactivated.

10.7 Job roles, departments and pill colors

Job roles… and Departments… open one list editor: add, rename, recolor (roles) and retire. Prep Tech and Driver can be renamed but never deleted. Pill colors… overrides the colors of job type, job status, work status, payment method, terms and bench pills; Auto restores the built-in color, and the live pill previews as you pick.

10.8 Problem reports

Problem reports lists what staff sent through Report a problem and the errors the pages recorded: REPORT and ERROR rows, the screen, the day viewed, the person. Mark handled clears a row; Show handled brings them back.

10.9 Releasing a module

Every module is released as of November 9, 2026. A future module that is built but not ready is held on a hidden list in the app and reads "coming soon" in the menu; the owner releases it by taking it off that list and deploying, and the manual's Not yet note comes off at the same time.

10.10 Before the team signs in

The release checklist (release-test-checklists.md in the project folder) asks for four hands-on checks on the preview site before the team gets the ERP:

  1. Two browsers side by side, one signed in as you and one as a test account on the Warehouse preset: every tick, note, drag and pill change made in one appears in the other within seconds; typing in one survives a change in the other; "⚠ offline" appears when Wi-Fi is cut and the missed change arrives within 3 minutes after; a board left overnight shows the new day.
  2. A role walk, one preset at a time on the test account: the menu matches the table in 2.3; "no access" is inert; "view only" shows no checkboxes, ✕, + or grips; an override beats the preset; deactivation signs the test browser out and refuses the password; reactivation works.
  3. A phone walk at 375 wide on a real iPhone: login with the keyboard up, the menu, the board's cards, the return panel, a Daily Driver tick and photo, Mark ready, one action in each worklist, Report a problem, and nothing scrolling the whole page sideways.
  4. A RentalWorks spot-check: three jobs going out today, three returns in progress, two sub-rental POs, two finished jobs, two consigned units, and one fresh RentalWorks edit showing on the board within about 15 minutes.

After the team's first week, the two database-load readings go to the build session to compare with the September baseline.

Appendix A. Which module for what

I want to…ModuleChapter
See today's jobs, who is prepping, what is staged, what is coming backDaily Board4.1, 6.1
Run the day's pickups, returns and deliveriesDaily Driver5.1
Know what to QC first this morningTurnarounds6.2
Find skipped steps on sub-rentalsQC Loose Ends4.4
Match a return decision in RentalWorksTo Reconcile in RW6.4
Keep my own and my department's workMy List3.7
Decide which job gets the owned bodyAllocation4.2
Log a lens, filter or camera inspectionOptical Logs, Camera Logs6.3
Record who paid, set terms, make an invoiceJobs8.1
Start a client account, send paperwork, hold a cardCRM8.2
Close out a job (the four boxes)Agent Audits8.3
Look up what a model or unit has earnedReports8.4
Log something I bought for CSLAPurchases9.1
Track and pay vendor and consignor POsPurchases › POs9.2
Import bank lines, categorize, send to QuickBooksAccounting9.3
See what CSLA owes todayAccounting › Liabilities9.4
Look up or pay a consignorConsignment9.5
Add a person, set access, create a loginAdmin10

Appendix B. Glossary

TermMeaning
RentalWorks (RW)The rental system: quotes, orders, contracts, scanning, invoices, POs and inventory. The ERP reads it and, with two exceptions, never writes to it.
Job, orderA RentalWorks order. The ERP calls it a job; the job number is the order number.
ContractRentalWorks' record of gear moving. OUT: scanned out to the client. IN: scanned back in. RECEIVE: sub-rented gear arriving from a vendor. RETURN: sub-rented gear going back to the vendor. LOST: written off.
ScanA barcode scan in RentalWorks. The ERP reads where a unit is from its latest scan.
I-CodeRentalWorks' code for a kind of gear (a lens model, a camera body). A kit's I-Code ends in K.
BarcodeThe label on one unit. A unit can be relabeled; the ERP follows the unit, not the label.
KitA package of items under one I-Code.
Quantity-tracked itemGear that is counted rather than barcoded (cables, expendables).
PO, purchase orderRentalWorks' order to a vendor: for a sub-rental, or to pay a consignor.
Sub-rentalGear CSLA rents from another company to fill a job.
Consignor, consignmentGear owned by someone else and rented through CSLA for a share of the billing. A consignment PO pays them.
SplitThe consignor's share and CSLA's share of a job's billing, such as 60/40 (the consignor's 60%).
CPUConsignor pick-up: a consignor collecting their own gear, at no charge. A CPU with a charge is flagged.
L&DLoss and damage.
StagedThe board's tick that a job's gear is pulled and ready to go.
TurnaroundGear coming back from one job that an upcoming job needs, so it has to be checked and ready in time.
Loose endSomething the ERP found left undone on a job, such as a sub-rented line with no PO or returned gear never scanned in.
Preset, access levelA preset (Viewer, Warehouse, Agent, Manager, Admin) sets a person's level on every module: none, view or edit. See chapter 2.
Live, realtimeA change one person makes appears on everyone's screen within seconds, with no reload.
QuickBooks (QBO)QuickBooks Online, the books. The ERP reads it hourly and writes only what a person presses.
NickelThe bill-payment service that pays vendors and consignors by ACH and records the payment in QuickBooks.
MX MerchantThe card processor behind the CRM's card on file and holds.

Appendix C. Troubleshooting

I cannot sign in. Check the email address; it must be the one in your Admin profile. If the password is wrong, ask an Admin for a new one: the login screen has no reset link on purpose, because the ERP does not send email yet.

A module I expect is missing from the menu. Either your preset does not include it, an Admin set it to none for you, or your login is not linked to your profile. The third is the common one on day one: the ERP shows a notice naming the email it expected instead of an empty screen. An Admin fixes it by matching the profile's email to the login.

I can see a screen but cannot change anything. Your level on that module is view. Ask an Admin.

The header says ⚠ offline. Your device lost its connection. When it is back the pill returns to normal and the next 3-minute refresh catches up anything you missed.

The Updated … pill shows an old time. RentalWorks data has not arrived for a while. Press ↻ to refresh now. If it stays old for more than half an hour, report it.

I changed something and it snapped back. The save failed (usually a dropped connection) and the ERP put the old value back and showed a message. Try again once you are online.

A sound or chime does not play. Browsers block sound until you have tapped the page once. Tap anywhere, and the next one plays.

A PDF does not open. Allow pop-ups for the ERP's address in your browser.

The page looks stale or strange after an update. Reload the page. The ERP never keeps an old copy, so a reload always fetches the current build.

Something looks wrong. Use Report a problem in the menu. It records the screen you were on and any errors the page saw, so the owner can see what you saw.

Appendix D. Old way, new way

The replacements in one table. Where a row says "see chapter", the detail is in that chapter's Old way note.

Before the ERPNowChapter
Turnarounds worked out by hand each morning from what people knew about returns and outgoing jobsTurnarounds compiles the list from the day's outgoing jobs and what is due back, routed to each QC bench; the board's free-text note stays as the escape hatch6.2
Return decisions (back but unscanned, gone and billable, gone and written off) kept in someone's headTicked in the Return Status panel, gathered on To Reconcile in RW until matched in RentalWorks6.1, 6.4
Skipped sub-rental steps (no PO, no pickup recorded, never scanned in, never returned) went uncountedQC Loose Ends names each miss; clearing one records what really happened4.4
Crew names typed on the boardCrew pills from the CRM4.1
One Acrobat PDF per lens or filter on an iPad, kept in DropboxOptical Logs and Camera Logs: scan, mark, sign, before and after6.3
Questions about a model's or a unit's earnings answered in SQLReports8.4
A hand-kept Google Sheet of ~1,400 rows was the only record of who paid; one row color meant four thingsJobs: a row per shipped job with Status, Payment method, Terms, Payment date and row colors with one meaning each8.1
PO-check codes on the jobs sheet (XE, XC, XL, XA, NEW)The four Audit boxes on every job, ticked one by one, with who and when8.3
Making a job's invoice on RentalWorks' Billing screenMake invoice… on the job card, after a to-the-cent check (authorized people only)8.1
Typing the client's PO number on the RentalWorks orderThe job card's POs tab, which saves to the ERP and RentalWorks in one Save8.1
Emailing a new client six PDFs; the client mailing them back; filing by hand into DropboxOne paperwork link from CRM; the client signs online; each document is approved or sent back; the Dropbox folders are being retired8.2
The "CSLA Accounting 2026 - Expenses" Google SheetThe Purchases log with receipts attached and categories that match QuickBooks9.1
One sheet for vendor POs and another for consignor POs; vendor bills uploaded to Nickel by handThe POs tab: paid, owed, waiting on invoice; bills sent to QuickBooks for Nickel to pay9.2
Categorizing bank lines in QuickBooks by hand (behind since 2024); client payments matched by eyeAccounting: import the bank file, categorize once, send to QuickBooks, match deposits to jobs9.3
RentalWorks' consignment module run monthly or less; a payment sheet; RentalWorks statements that cannot tell paid from unpaidConsignment: Upcoming POs, Payouts and the PO check; paid-ness tracked from January 1, 20269.5
RentalWorks' own QuickBooks link (manual, and it locked the invoice)The ERP posts invoices, bills and expenses to QuickBooks when a person presses Send9.6