FreeMaint
FeaturesPricing
DocsGuides & API referenceBlogPlaybooks & product updatesComparisonFreeMaint vs the alternativesChangelogWhat's new
AffiliatesEarn recurring commissionServicesSetup, migration & training
Contact
ENSign inSign up

Product

FeaturesPricing

Resources

DocsBlogComparisonChangelog

Partnership

AffiliatesServices

Account

ContactSign in
FreeMaint

Free your maintenance

Product

FeaturesPricingComparisonChangelogSign up

Resources

BlogDocumentationResearch

Company

AboutServicesAffiliatesContact

Legal

PrivacyTermsRefund PolicyExport Compliance
Freemaint LLC ยฉ 2026 ยท All rights reserved.GDPR & LGPD CompliantMobile app
Back to Documentation

FreeMaint CMMS

Assets

Assets

Register, monitor, and maintain your equipment and machinery

Registering an Asset

Add equipment with all details

Each asset gets a unique reference (ASS-1, ASS-2, etc.) and stores specs, financial data, and maintenance history.

Finding assets later

The asset list filters on status, criticality, category, location and area โ€” and the search box matches the name, model, serial number, manufacturer, QR code and area at once. The five counters above the list follow whatever you filter on, so they always describe the list you are looking at. The one exception is the status filter itself: clicking a counter is how you apply it, so the counters keep showing every status.

From the mobile app

You can also register equipment where it stands, without going back to a desk. In the app, open More > Assets and tap the "+" at the top right: the "New asset" sheet asks only for a Name, with Location optional. Everything else โ€” model, serial number, manufacturer, photo โ€” is added afterwards on the asset's own screen, so a machine can be on the register in seconds and completed later. If the "+" is not there, the account is missing the "Create assets" permission (an admin grants it at People > Roles), or the phone has not yet taken the app update that added it.

Optional Fields

  • Category โ€” Production, HVAC, Electrical, etc.
  • Location โ€” Physical installation location
  • Model & Serial Number
  • Manufacturer
  • Description
  • Barcode
  • Photos & Documents
  • Acquisition Cost, Purchase Date, Warranty
  • Area / Zone โ€” the section, branch or plant area the asset sits in

Required Fields

  • Name โ€” Clear, identifiable name

Complete records make maintenance planning significantly more effective.


Assets vs Parts: what goes where

When to register something as an asset and when to track it as an inventory part

An asset and an inventory part are two different things in a CMMS. An asset is one physical unit you maintain over time โ€” it has its own work orders, preventive maintenance, meter readings and certificates. A part is stock you count and consume. Choosing the right one keeps your maintenance history accurate.

Use an Asset whenโ€ฆ

  • It is one machine, vehicle or piece of equipment you service over time (a pump, a compressor, a forklift)
  • You need its own maintenance history, work orders or PM schedule
  • You track its meters, downtime, criticality or compliance certificates
  • Each unit must be identified individually (serial number, QR code)

Example

10 Philips 18W downlight lamps in Room ABC are not 10 assets. Create one part in Inventory > Parts with quantity 10 and location Room ABC. You then get stock tracking, low-stock alerts and automatic deduction when lamps are used on a work order.

Use Inventory > Parts whenโ€ฆ

  • It is a consumable or spare you buy in quantity (light bulbs, filters, fasteners, oil, gloves)
  • You only need to count stock, not maintain each unit
  • You want low-stock alerts, a reorder point, a storage location, a vendor and a unit cost
  • Items are interchangeable and get used up on work orders

There is intentionally no quantity field on the asset form โ€” one asset means one maintainable unit with its own history. If you really want a count on a group you maintain together (for example a lighting circuit you relamp on a schedule), an admin can add a custom Quantity number field to assets in Company Settings > Custom Fields. For consumables, always use Inventory > Parts.


Asset Details

Understanding the asset detail page

The asset detail page is your central hub for everything related to equipment.

Area / Zone, and changing it in bulk

Area / Zone is a free-text field that groups assets inside a location โ€” useful when many assets share one location and you still need a second axis to filter on. As you type, the areas already used in your company are suggested, so the same area does not end up spelled three different ways. To change it for many assets at once, select them in the asset list and use Bulk edit. Leaving the field empty there means "no change": bulk edit can set an area, but never clear one.

Linking an asset to a customer

If you maintain equipment that belongs to external clients (a service shop), you can link an asset to a Customer. Open the asset, pick the customer in the form, and save. Assets then show their customer, you can filter the asset list by customer, and each customer page lists the assets you maintain for them. This requires the Customers feature (Starter plan and above).

Exporting an asset

Two exports sit at the top of the asset page. Export Excel gives you a working spreadsheet of the asset's identity, specifications, location, purchase details, components, maintenance history, preventive schedules and meter readings. Export PDF gives you the same as a printable record, plus the inspection runs, the defect findings with their current state (open or corrected) and the asset photos โ€” the version to attach to a handover, an audit file or an equipment log book.

Hiding tabs you don't use

An admin can hide asset page tabs the company does not use โ€” Meters, Calibration, Bill of Materials and others โ€” under Company Settings โ†’ Asset form. Hidden tabs keep their data; they are only removed from the page. This applies to everyone in the company, admins included, and the Overview tab can never be hidden. Editing this list requires the Business plan; the hiding itself keeps working on any plan.

Documents on mobile

Manuals, certificates and warranties attached to an asset are readable from the phone: open the asset in the FreeMaint mobile app and scroll to Documents. Tap a file and it opens in whatever your phone uses for it โ€” a PDF reader, the browser, a document app. The section appears only when the asset actually has documents, and reading them needs nothing more than permission to view the asset.

Photos

  • Main photo โ€” shown on the asset page, next to its technical details
  • Click the photo to open it full screen, then zoom with the mouse wheel or a double-click
  • Photo gallery โ€” up to 10 more pictures under the Files tab
Overview
Name, status, category, location
Technical
Model, serial, manufacturer, specs
Financial
Acquisition cost, depreciation, value
History
All work orders on this asset
Meters
Readings and triggers
Parts
Commonly used parts
Documents
Manuals, photos, files
Downtime
Downtime records

Page Sections

Overview
Name, status, category, location
Technical
Model, serial, manufacturer, specs
Financial
Acquisition cost, depreciation, value
History
All work orders on this asset
Meters
Readings and triggers
Parts
Commonly used parts
Documents
Manuals, photos, files
Downtime
Downtime records

Use the reference number (ASS-1) to quickly find any asset.


Asset Hierarchy

Parent-child relationships

Model real-world equipment structure โ€” a production line contains machines, each with sub-components.

Associated equipment

For equipment shared across several machines โ€” like a removable test fixture used on more than one tester โ€” link them as associated equipment instead of forcing a single parent. It is a lateral link that keeps each machine's hierarchy and cost roll-ups intact.

  1. Open the shared asset and click Edit
  2. In the Structure card, use the Associated equipment selector to add every equipment it can be used on
  3. Save โ€” the link is two-way: each associated machine now lists this asset under Associated equipment on its detail page
  4. To remove a link, edit either asset and clear it from the selector

Creating Hierarchy

  1. Register parent asset first
  2. When adding children, select the parent
  3. The parent list shows only assets in the selected location โ€” tick 'Search assets in all locations' to broaden it
  4. Children inherit parent location by default
  5. View hierarchy tree on parent detail page

Detaching a parent

  1. Open the child asset and click Edit
  2. Clear the Parent Asset field (use the X in the selector)
  3. Save โ€” the asset becomes a top-level asset with no parent
  4. In an Excel import, type NONE in the Parent Asset column to detach; a blank cell leaves the existing parent unchanged

Keep hierarchies 2-3 levels deep for practicality.

Group by location is on by default. Turn it off to see the flat asset tree without the location layer.

Viewing the hierarchy

  1. Open Assets and switch to the Tree view
  2. Turn on Group by location to see the full Location โ†’ Asset โ†’ Component chain
  3. Expand a location to drill down to its assets and their sub-components

Asset Statuses

The six operational states

Asset status reflects current operational condition.

OPERATIONAL
Working normally
DEGRADED
Functional but reduced performance
DOWN
Not operational, needs repair
MAINTENANCE
Undergoing scheduled maintenance
STANDBY
Operational but not in use
RETIRED
Permanently out of service

Statuses

OPERATIONAL
Working normally
DEGRADED
Functional but reduced performance
DOWN
Not operational, needs repair
MAINTENANCE
Undergoing scheduled maintenance
STANDBY
Operational but not in use
RETIRED
Permanently out of service

Give an operator or a requester "Report downtime" so they can flag a breakdown themselves, without being able to touch the asset registry.

Keep statuses current for accurate reporting and resource decisions.

Who can change the status

  1. Open the asset and click its coloured status badge โ€” it becomes a dropdown. There is no separate downtime screen.
  2. Setting the status to Down opens a downtime period; moving it off Down closes that period. This is what feeds availability and MTBF.
  3. Two permissions unlock the badge: "Update assets" is the full right (it also renames, relocates, re-categorises and retires equipment), while "Report downtime" is the narrow one.
  4. "Report downtime" reaches Operational, Degraded and Down only. An Admin grants it at People > Roles.

Meters & Readings

Track equipment measurements

Meters measure operational parameters for condition-based maintenance.

Edit
Correct the value, notes or anomaly flag. You can edit your own readings within the company edit window; admins can edit any reading.
Void
Admins can void a reading with a short reason. The reading stays in the audit trail but is excluded from PM triggers, statistics and lists. Voiding cannot be undone.
Automatic recalculation
When a reading is edited or voided, affected meter-based preventive maintenance schedules are rewound automatically to the highest remaining valid reading.
Deleting a work order
Deleting a work order does not delete the reading it recorded. The delete dialog offers a checkbox to void those readings at the same time.

Correcting or Voiding a Wrong Reading

A mistyped reading (e.g. 4999 instead of 499) can throw meter-based preventive maintenance off schedule. You can fix it from the meter detail page: open Meters, select the meter, then use the (โ€ฆ) menu next to the reading in the readings history.

Edit
Correct the value, notes or anomaly flag. You can edit your own readings within the company edit window; admins can edit any reading.
Void
Admins can void a reading with a short reason. The reading stays in the audit trail but is excluded from PM triggers, statistics and lists. Voiding cannot be undone.
Automatic recalculation
When a reading is edited or voided, affected meter-based preventive maintenance schedules are rewound automatically to the highest remaining valid reading.
Deleting a work order
Deleting a work order does not delete the reading it recorded. The delete dialog offers a checkbox to void those readings at the same time.

Creating a Meter

  1. Open asset detail page
  2. Go to Meters section
  3. Click 'Add Meter'
  4. Enter name, unit, type
  5. Set min/max valid range
  6. Set expected reading frequency

Total or Daily Increment Entry

When adding a reading you can enter the absolute total (the default) or, if there is already a previous reading, switch to "Daily increment" and enter only the amount run since the last reading โ€” for example 10 hours today. The system adds it to the latest reading to compute the new total, which is what gets stored. You can set a default mode per meter when you create it; operators can still switch per entry. The stored value is always the absolute total, so triggers and statistics are unaffected.

Reading Format (Decimal or Hours:Minutes)

Most meters record a plain decimal value. For running-hour meters โ€” common on engines and generators โ€” you can set the meter's reading format to Hours:Minutes when you create it. Operators then enter and read values as HH:MM (for example, 1130:30 means 1130 hours and 30 minutes) instead of converting to a decimal. The stored value is identical either way, so preventive maintenance triggers and statistics are unaffected. Leave the format on Decimal for gauges, odometers and counters.

Use the mobile app for field readings โ€” scan QR, record value with photo.

If you delete a work order that recorded a wrong meter reading, keep the "also void the meter reading(s)" checkbox ticked โ€” the reading is voided and your meter-based preventive maintenance is recalculated in one step.

RUNTIME
Cumulative operating hours
PRODUCTION
Units produced / cycles
ODOMETER
Distance traveled
GAUGE
Current values (temp, pressure)
COUNTER
General counting

Meter Types

RUNTIME
Cumulative operating hours
PRODUCTION
Units produced / cycles
ODOMETER
Distance traveled
GAUGE
Current values (temp, pressure)
COUNTER
General counting

Meters created automatically on vehicles

Filing an asset under the Vehicles category gives it an Odometer and an Engine hours meter straight away, so fleet work has somewhere to record readings without any setup. If you later move that asset to another category, those two meters are removed again โ€” but only while they hold no readings. A meter someone has already read is real history: it stays, whatever the category. This also decides whether the asset can be deleted: meters that carry readings block deletion until you remove them from the asset's Meters tab, while empty ones simply go with the asset.


Meter Triggers

Automate actions on readings

Triggers automate responses when readings reach defined thresholds.

CREATE_WORK_ORDER
Auto-create a WO
SEND_NOTIFICATION
Alert users
UPDATE_STATUS
Change asset status
TRIGGER_MAINTENANCE
Activate linked PM plan

Actions

CREATE_WORK_ORDER
Auto-create a WO
SEND_NOTIFICATION
Alert users
UPDATE_STATUS
Change asset status
TRIGGER_MAINTENANCE
Activate linked PM plan
ABOVE
Reading exceeds threshold
BELOW
Reading drops below
EQUALS
Exact value match
DELTA
Change since last reading exceeds value

Conditions

ABOVE
Reading exceeds threshold
BELOW
Reading drops below
EQUALS
Exact value match
DELTA
Change since last reading exceeds value

Use DELTA for runtime meters โ€” trigger maintenance every 500-hour increment.


Maintenance History

Complete maintenance record

Every asset shows all work orders, PM executions, downtime events, and costs.

Logging past work requires the 'work_orders.backdate' permission (default: Admin and Manager).

Logging a past intervention

Use 'Log past work' from the asset's Preventive Maintenance tab to record an intervention that has already happened โ€” including before you started using FreeMaint. The work order is created directly in Closed state with the date you provide. When you link it to a PM plan and tick 'Update this PM plan', the next due date is recalculated from your historical date. A monotonic guard prevents older entries from rewinding a more recent completion.

Maintenance tab on the asset

On every asset, the Preventive Maintenance tab shows three sections: the active PM plans linked to that asset, the history of preventive interventions (terminal status โ€” completed, validated, or closed), and the history of corrective interventions. A date range filter at the top scopes both history sections. Entries stay visible after the work order has been validated or closed.

If maintenance cost exceeds 50% of replacement cost, plan for replacement.

Included Data

  • All corrective and preventive work orders
  • PM plan execution history
  • Downtime records with duration and cost
  • Parts consumed and labor spent
  • Total maintenance cost over time

Asset Depreciation

Track financial value over time

FreeMaint calculates depreciation from acquisition cost and age using straight-line method.

How It Works

Enter acquisition cost and purchase date when registering. FreeMaint calculates current value automatically.

Important:

Financial data requires ASSETS_VIEW_VALUE and ASSETS_VIEW_DEPRECIATION permissions.


Asset QR Codes

Generate, print, and scan QR labels for fast asset identification on the shop floor

Every asset in FreeMaint carries a unique QR code. Scanning the code from the mobile app or a public landing page jumps directly to the asset record โ€” its history, open work orders, attached documents, and the option to file a new intervention request.

Authenticated user
Lands on a quick-action list for that asset โ€” open it, raise a work order, start today's inspection, view its inspections or its maintenance plan โ€” with only the actions their role allows
Anonymous visitor
Lands on the public asset landing page โ€” read-only summary, with the option to submit a maintenance request
From the bottom-bar scanner
Same flow as a camera-app scan, no need to leave FreeMaint

What happens when someone scans

Authenticated user
Lands on a quick-action list for that asset โ€” open it, raise a work order, start today's inspection, view its inspections or its maintenance plan โ€” with only the actions their role allows
Anonymous visitor
Lands on the public asset landing page โ€” read-only summary, with the option to submit a maintenance request
From the bottom-bar scanner
Same flow as a camera-app scan, no need to leave FreeMaint
PDF
Ready-to-print A4 sheets with cut marks; ideal for office printers and one-off batches
ZIP
Individual PNG files, one per asset โ€” feed to label software like Zebra ZebraDesigner or Brother P-touch
CSV
Asset ID + slug + public URL, UTF-8 with BOM and CRLF line endings โ€” opens cleanly in Excel

Output formats

PDF
Ready-to-print A4 sheets with cut marks; ideal for office printers and one-off batches
ZIP
Individual PNG files, one per asset โ€” feed to label software like Zebra ZebraDesigner or Brother P-touch
CSV
Asset ID + slug + public URL, UTF-8 with BOM and CRLF line endings โ€” opens cleanly in Excel

Bulk QR generation

Bulk generation respects your asset scope (data scope filters apply). If you have ASSIGNED scope, only your assets are eligible โ€” no cross-tenant leaks, even via QR slug enumeration.

  1. {"title":"Filter the asset list","description":"Go to Assets, apply any combination of filters (location, category, status, team)"}
  2. {"title":"Open bulk QR","description":"Use the bulk actions menu and select Generate QR Codes"}
  3. {"title":"Pick a format","description":"PDF (A4 grid of labels), ZIP (one PNG per asset), or CSV (asset IDs + QR slug for external printer software)"}
  4. {"title":"Wait for the export","description":"Up to 500 assets per batch; larger sets must be split"}

General request QR (whole site)

Besides per-asset and per-location QR codes, you can create one general QR code for your whole site โ€” not tied to any asset or location. Post it at entrances or common areas; anyone can scan it to submit a maintenance request and pick the location afterward. No login is needed.

  1. Open Company settings, then Intervention Request form.
  2. In the โ€œGeneral request QRโ€ card, click Generate QR code.
  3. Download or print it, then post it where people can scan it.
  4. Optionally turn on โ€œLet requesters pick a locationโ€ so requests are linked to a location automatically.

Generating a QR code

  1. {"title":"Open the asset","description":"Assets โ†’ click the asset to open its detail page"}
  2. {"title":"Go to the QR tab","description":"The QR Code section appears under the asset overview"}
  3. {"title":"Choose label size","description":"Pick from 25 ร— 50 mm, 50 ร— 50 mm or 50 ร— 100 mm sticker presets"}
  4. {"title":"Download or print","description":"Get a PNG, an A4 sheet of repeated labels, or send directly to a thermal printer"}

What is printed on each label

Beside the QR image, a printed label carries the record's name, its reference (for example ASS-12 or LOC-655), and where it sits in your location hierarchy โ€” the full path, not just the immediate parent, such as Plant A / Building 2 / Production Center / Floor 2. The full path matters on large sites, where the same floor or room name exists under several buildings. Location labels print the path down to the parent; asset and part labels print the path down to the location they sit in. The CSV export carries the same path in its own Location Path column, next to the existing Parent column.

Scanning on mobile

The FreeMaint mobile app has a built-in QR scanner accessible from the bottom navigation bar. It uses the camera natively (no third-party app needed), works in low light, and decodes through gloves and behind protective laminate.

  1. {"title":"Open the app","description":"Log into the mobile app on your phone or tablet"}
  2. {"title":"Tap the scanner","description":"Central icon in the bottom bar; first use will request camera permission โ€” accept"}
  3. {"title":"Frame the code","description":"Hold 10โ€“30 cm from the label; the app auto-captures when focused"}
  4. {"title":"Act","description":"From the asset card, create a WO, log a meter reading, file a request, or just review history"}
Office laser printer
Avery 5160-style A4 sheets โ€” best for small batches and pilot rollouts
Zebra ZD420 / ZD230
Desktop thermal-transfer printers, polyester labels โ€” best durability for production lines
Brother QL-820NWB
Continuous roll thermal โ€” fast for tagging hundreds of assets in a day

Recommended printers and label stock

Office laser printer
Avery 5160-style A4 sheets โ€” best for small batches and pilot rollouts
Zebra ZD420 / ZD230
Desktop thermal-transfer printers, polyester labels โ€” best durability for production lines
Brother QL-820NWB
Continuous roll thermal โ€” fast for tagging hundreds of assets in a day
Full
The default, and what every workspace has until it is changed: name, status, description, photo, model, serial number, manufacturer, category, site and meters.
Name only
Name and status. No photo, model, serial number, manufacturer, description, site or meters.
Hidden
Nothing about the asset. The page invites the visitor to sign in; the report form still routes to the right asset without naming it.

Hiding asset details from the public

Anyone holding a printed label can open the public page, and the code is matched against the asset's QR code, its barcode and its serial number โ€” a number often stamped on the nameplate. If your equipment data should not be readable by visitors, contractors or passers-by, change the level at Company Settings โ†’ Intervention Request form โ†’ Public QR landing page โ†’ โ€œAsset details on a public scanโ€. It applies only to people with no account: your own team, once signed in, always sees everything, including in the mobile app, so a stricter level never blinds your technicians. โ€œReport a problemโ€ keeps working at every level.

Full
The default, and what every workspace has until it is changed: name, status, description, photo, model, serial number, manufacturer, category, site and meters.
Name only
Name and status. No photo, model, serial number, manufacturer, description, site or meters.
Hidden
Nothing about the asset. The page invites the visitor to sign in; the report form still routes to the right asset without naming it.

The public landing page

Unauthenticated scans land on /qr/{slug}. By default the page renders a read-only summary โ€” name, status, description, photo, model, serial number, manufacturer, category and site โ€” plus the option to file a new request. It never exposes assignee names, costs or labour data, and it respects your tenant's branding (Enterprise white-label). How much of that summary a visitor sees is a setting: see โ€œHiding asset details from the publicโ€ below.

For machines in harsh environments (washdown, abrasive, outdoor), use a polyester thermal label and laminate it; standard paper stickers fade within months.

The public landing page and the request form follow the visitorโ€™s own device language automatically. A language selector in the page header also lets anyone switch to any of the 15 supported languages before filling out the form.

Always print the asset's human-readable reference (e.g. PUMP-12) alongside the QR. If the label gets damaged, technicians can still find the asset in the search bar.

Bulk QR generation works the same way for inventory parts (Inventory โ†’ Parts) and locations (Locations list): select the items with the checkboxes, then choose Generate QR codes in the bulk actions bar โ€” same three output formats.

Two toggles on the same card are often mistaken for this one, and one of them now follows it. โ€œShow meters on asset QRโ€ hides meter readings only. โ€œShow assets on location QRโ€ lists the assets at a site โ€” and because that list IS asset information, setting the level to Hidden also withholds it (the switch is disabled to say so), while Name only drops the photos and categories from it.

From the public landing page, technicians without an account can submit a maintenance request and attach a photo of the issue. The request lands in the standard intake queue.


Downtime Tracking

Record and analyze outages

Track when assets go down, for how long, and why.

Recording Downtime

  1. Open asset detail page
  2. Go to Downtime section
  3. Click 'Add Downtime'
  4. Enter start time and reason
  5. When restored, enter end time
  6. Optionally add cost impact

Track MTTR (Mean Time To Repair) to measure response efficiency.


Asset Data Structure & Certifications

How FreeMaint organises asset data to industry standards (ISO 14224 / ISO 55000), and how to track statutory test certificates with automatic expiry alerts.

FreeMaint structures every asset around the data maintenance and reliability teams actually need โ€” built to align with ISO 14224 (equipment taxonomy) and ISO 55000 (asset lifecycle). This article maps that structure and shows how to track compliance certificates and statutory tests with automatic expiry alerts.

Adding a certification

  1. Open the asset detail page
  2. Go to the Certifications tab
  3. Click 'Add certification'
  4. Choose the test type and result
  5. Enter the issue and expiry dates, issuing authority, and certificate number
  6. Optionally attach the certificate scan or PDF, then Save

Track statutory and compliance tests on your equipment: load tests on lifting gear (LOLER), pressure tests on vessels (PED), periodic electrical testing, lifting examinations, calibration, thermography, and more. Each certificate records its number, issuing authority, issue and expiry dates, and pass / fail result.

Certifications & Testing

Compliance status & expiry alerts

  • Each certificate shows a live compliance status โ€” Valid, Expiring soon, or Expired โ€” based on its expiry date and result
  • FreeMaint automatically alerts your admins and managers 30, 15, and 7 days before a certificate expires
  • Expired and expiring certificates are highlighted on the asset's Certifications tab

Need a field we don't ship by default (e.g. capacity, replacement value)? Add it yourself with Custom Fields โ€” no developer required.

How asset data is organised

  • Identification โ€” name, reference, asset tag / barcode, QR code, type (category)
  • Location โ€” country, site, plant, building, floor, zone via the location hierarchy
  • Technical โ€” manufacturer / brand, model, serial number, power / rating
  • Structure โ€” parent asset & components (sub-assets), criticality A / B / C
  • Maintenance status โ€” operational status, operating hours, work order & PM history
  • Cost โ€” acquisition cost, warranty, purchase date
  • Responsibility โ€” assigned technicians, teams, and vendors / suppliers
  • Documentation โ€” manuals, drawings, photos, and certificates

Viewing certifications is available on every plan. Adding and editing them is included from the Starter plan upward.


Fleet Management

Vehicles, forklifts, construction equipment โ€” registration, mileage-based PM, drivers, fuel

Fleet Management is a Business-tier module that extends Assets with a dedicated layer for rolling equipment: cars, vans, light & heavy trucks, forklifts, construction equipment, trailers, buses and motorcycles. Each vehicle is still an Asset under the hood โ€” but with a richer profile (VIN, license plate, fuel type, capacities) and automatic odometer + engine-hour meters wired in for mileage-based PM.

Odometer (km)
Tracks distance travelled. Can be reset (engine swap, new dashboard). Use this for mileage-based PM triggers.
Engine hours (h)
Tracks runtime. Cannot be reset by default. Use this for hour-based PM on forklifts, generators, construction equipment.

Submit readings from the vehicle detail page (Open in Assets โ†’ Meters tab) or via QR code scan in the field. Mileage-based PM trigger every 10 000 km or 250 engine hours, whichever comes first โ€” define it in Preventive.

Automatic meters

Every vehicle you create gets two ready-to-use meters attached to it:

Odometer (km)
Tracks distance travelled. Can be reset (engine swap, new dashboard). Use this for mileage-based PM triggers.
Engine hours (h)
Tracks runtime. Cannot be reset by default. Use this for hour-based PM on forklifts, generators, construction equipment.

Fleet-wide average consumption is **weighted by distance** (total litres burned รท total kilometres ร— 100), never the simple mean of per-vehicle averages โ€” short-distance vehicles do not skew the headline number. A vehicle counts only if it has a vehicle profile attached (an asset categorised as Vehicles without a profile is excluded so ghost-vehicles after a profile-only delete do not pollute the KPIs).

Fleet dashboard (M4)

A single read-only page at /fleet/dashboard surfaces fleet-wide operational state in one bundled payload โ€” no client-side fan-out. Five KPI cards (vehicle count, documents expiring 30d with past-due sub-line, licences expiring 30d with past-due sub-line, fuel spend 30d, average consumption 30d) sit above two clickable lists: upcoming expiries (next 30 days, combining vehicle docs and driver licences sorted by date) and top 5 spenders (last 30 days by fuel cost).

  1. Open Fleet from the sidebar then click the Dashboard button in the header
  2. Review the 5 KPI cards at the top โ€” past-due counts appear as orange sub-lines under expiring counts (separate from cron alerts which stay strict 30/15/7 days)
  3. Click any row in Upcoming expiries to drill into the vehicle (documents) or user (licences)
  4. Click any row in Top spenders to drill into the vehicle detail page (fuel section + meters + history)
Insurance
Annual policy from your insurance company โ€” track renewal date
Registration certificate
The vehicle's carte grise / V5C โ€” permanent, no expiry to track
Technical inspection (CT)
Periodic safety check โ€” every 2 years in EU, varies by country
Tax sticker / Low-emission sticker
Annual vehicle tax, Crit'Air (FR), LEZ (UK), Umweltzone (DE)
Operating permit / Other
Special permits (ADR for hazmat, taxi, ride-share) and any other paper you need to track

Documents are sorted by expiry date ascending โ€” the most urgent renewal is always on top. A red "Expired" badge shows up automatically when the expiry passes. Editing the expiry date resets the alert state, so the daily cron will warn you again at the new 30/15/7-day windows.

Vehicle documents (M3b)

Centralize every paper a vehicle needs: insurance, registration, technical inspection (CT), tax sticker, low-emission sticker, operating permit. Each document carries an issue date, expiry date, provider, policy/serial number, file URL (MinIO upload) and free-text notes.

Insurance
Annual policy from your insurance company โ€” track renewal date
Registration certificate
The vehicle's carte grise / V5C โ€” permanent, no expiry to track
Technical inspection (CT)
Periodic safety check โ€” every 2 years in EU, varies by country
Tax sticker / Low-emission sticker
Annual vehicle tax, Crit'Air (FR), LEZ (UK), Umweltzone (DE)
Operating permit / Other
Special permits (ADR for hazmat, taxi, ride-share) and any other paper you need to track

The driver profile is 1:1 with the user โ€” one row per person, edited via PUT (upsert). Delete the profile to stop tracking; the user account itself stays intact.

Driver profiles (M3a)

Attach a driver profile to any user to track their driving licence: class (B/BE/C/CE/D/DE/โ€ฆ), licence number, issue date, expiry date, and issuing authority. Drivers without a system login are supported via passive users โ€” create them once, never invite them.

  1. Open the user detail page from /people/users/:id
  2. Scroll to the "Driver profile" card (visible to Business+ tier only)
  3. Click "Add driver info" โ€” fill licence class, number, expiry date
  4. Save โ€” the user is now a driver and shows up in /fleet/drivers
  5. Editing the expiry date later re-arms the expiry-alert cron (sends fresh 30/15/7-day warnings)
In-app bell
Always-on notification with a deep link to the vehicle or driver profile
Mobile push
Sent to every registered device (Android + iOS) โ€” disable per-user in personal settings
Email
Styled HTML email with localized doc-type label, expiry date, and a CTA button

Default recipients are ADMIN + MANAGER roles, plus the driver themselves on licence alerts. Configure recipients and channels per event at /settings/notifications under the "Fleet Management" category. Past-due rows are surfaced via UI badges but not re-spammed by the cron.

Expiry alerts (M3c)

A daily cron at 04:00 UTC scans every driver licence and vehicle document and fires alerts 30, 15, and 7 days before the expiry date. Alerts land in the bell (in-app), mobile push, and email โ€” admins choose which channels via /settings/notifications.

In-app bell
Always-on notification with a deep link to the vehicle or driver profile
Mobile push
Sent to every registered device (Android + iOS) โ€” disable per-user in personal settings
Email
Styled HTML email with localized doc-type label, expiry date, and a CTA button

Consumption math (l/100km, cost/km) is recomputed on every read โ€” never stored โ€” so editing or deleting an entry instantly fixes the summary. If the odometer reading is regressive (lower than the latest stored), the meter sync logs a warning and skips, but the fuel log itself is still saved.

Fuel log & consumption (M2)

Track every pump visit and let FreeMaint compute fuel economy automatically. Each fuel entry feeds two metrics: rolling 30-day l/100km and cost per km. If you fill in the odometer, the reading is auto-pushed to the vehicle's ODOMETER meter (with the same monotone guard as standard meter readings).

  1. Open the vehicle detail page from /fleet/:id
  2. Scroll to the "Fuel" card and click "Add fuel entry"
  3. Fill volume (litres) โ€” required; price per litre is optional but unlocks cost-per-km math
  4. Fill the odometer reading at the pump โ€” strongly recommended, auto-syncs the ODOMETER meter
  5. Optional: station name, payment method, receipt photo URL, notes
  6. Save โ€” the rolling summary refreshes; from the second entry onwards, l/100km is computed tank-to-tank
ADMIN, MANAGER
Full Fleet CRUD (read, create, update, delete)
MAINTENANCE_PLANNER
Read, create, update โ€” register vehicles + edit fuel/odometer; cannot delete
SUPERVISOR
Read + update โ€” edit vehicle info in their team scope
TECHNICIAN, REQUESTER, VIEWER
Read-only โ€” consult vehicle profile, no editing

Custom roles (e.g. SHIFT_LEADER, QC_INSPECTOR) start without Fleet access. An admin can grant fleet:read / fleet:create / fleet:update / fleet:delete via /people/roles.

Permissions & roles

Fleet uses the standard CMMS RBAC system. Four permissions are seeded by default on the system roles:

ADMIN, MANAGER
Full Fleet CRUD (read, create, update, delete)
MAINTENANCE_PLANNER
Read, create, update โ€” register vehicles + edit fuel/odometer; cannot delete
SUPERVISOR
Read + update โ€” edit vehicle info in their team scope
TECHNICIAN, REQUESTER, VIEWER
Read-only โ€” consult vehicle profile, no editing

Register a vehicle

  1. Open the Fleet section from the sidebar (under ASSETS & LOCATIONS)
  2. Click the '+ Add vehicle' button (top right)
  3. Fill the Basics card: name (required) + vehicle type + fuel type
  4. Add identification details if you have them: VIN, license plate, brand, model, year, color, first registration date
  5. Capture capacities for trucks/heavy equipment: PTAC, PMA, seating, payload, tank capacity
  6. Save โ€” the asset is created with category 'Vehicles' and two meters are automatically attached

GPS / IoT telematics integration (Samsara, GeoTab) is intentionally not on the roadmap โ€” we focus on the operational tracking side, not the hardware.

What's coming next

  • M5 (deferred until concrete client signal) โ€” DVIR mobile checklists, fuel-card integrations, telematics import (Samsara / GeoTab / generic GPS); requires specific provider choice per sub-feature

Data visibility

Vehicles follow exactly the same visibility rules as standard Assets โ€” they respect the company's data scope (ALL, TEAM, ASSIGNED), location subtree restrictions and multi-team assignment. A technician with TEAM scope only sees vehicles assigned to their team.

Business tier

Fleet Management is included in the Business tier ($99/mo, Founding $49). Starter and Core tenants see the upgrade card when they navigate to /fleet. Vehicle profiles you create on Business are preserved if you later downgrade โ€” only writes are blocked, reads keep working.

When to use Fleet

Use Fleet whenever the equipment moves on its own power and you need to track mileage, fuel, or driver assignments. Stationary equipment (production lines, HVAC, electrical, plumbing, buildings) stays in the standard Assets module.


FreeMaint CMMS

ยฉ 2026 Freemaint LLC. All rights reserved.