Cylinders
Open Inventory → Cylinders in Thermal →
What it's for
Cylinders tracks refrigerant cylinders individually, by serial, with a custody trail showing who had each one and when. Refrigerant is regulated and expensive, and both facts are easier to live with when every cylinder has a history.
Reach it from Materials & Purchasing → Inventory → Cylinders, at
/inventory/cylinders.
Tabs
The screen has no tabs of its own — it is the Cylinders view of Inventory. Selecting a cylinder shows its record beside the list.
Panels and controls
Registering
Register cylinder records a Serial ("e.g. RC-2044"), a Refrigerant, a Capacity in ounces, and a Stock location. Serials are unique among live cylinders — "A live cylinder with this serial already exists." — so two cylinders can never be confused for one.
The cylinder panel
Serial, Refrigerant, Capacity, Current fill, Status, Location, Held by, and Public card. The public card is a scannable destination for the cylinder, the same idea as an equipment asset label.
Custody
The custody log shows Date, Event, From, To, By, and Notes. Transfer moves a cylinder between locations, and Log event records a custody event with its own date and locations. This log is the answer to "where was that cylinder in March", which is the question a compliance audit actually asks.
Retiring
Retire takes a cylinder out of service. A retired cylinder cannot be transferred — "Retired cylinders can't be transferred." — and cannot be retired twice.
No cylinders yet, No custody events, and No cylinder selected are the empty states.
What it accepts
| Field | Format | Required | Rule |
|---|---|---|---|
| Serial | Free text — "e.g. RC-2044" | Yes | "Serial is required."; "Serial is too long."; must be unique among live cylinders |
| Refrigerant | Pick a refrigerant | Yes | "Refrigerant is required." |
| Capacity | Whole ounces, greater than 0 | Yes | "Capacity must be a whole number greater than 0." |
| Stock location | Pick a location | Yes | "Stock location not found." |
| Move to | Pick a location | Yes, to transfer | "Destination location not found."; "Cylinder is already at that location." |
| Event | Pick an event type | Yes, to log | "Invalid event type." |
| From / To location | Pick locations | Yes, to log | "Location not found." |
| Date | A date | Yes, to log | |
| Notes | Free text — optional | No |
How to configure it
- Compliance settings decide which refrigerants are tracked and what the reporting obligations are.
- Inventory settings supply the stock locations a cylinder can sit at.
- Refrigerant charged on a job links back to the cylinder it came from, so the ledger on a unit and the custody trail here are two views of the same event.
Who can see it
This screen sits behind the Inventory area.
Owners and office managers can open it. Dispatchers and technicians cannot — a technician records refrigerant use against the job in the field app, which is what feeds the custody trail here. The gate is checked on the server, not just hidden in the sidebar, so a direct link does not get around it.
The full role matrix is on Roles & permissions.