Skip to main content
← Back to home

New module

Tools tracked like assets.

Plate compactors, jumping jacks, generators, welders, light towers, demo saws, hand tools, kits, consumables — all inside the app crews already use. The dashboard shows who has each tool right now. Scan a QR or NFC tag to check out, check in, or report damage in seconds. Engine-powered tools get the same hour-based PM treatment as excavators. Failures auto-open a work order so nothing slips through the cracks.

How it works

Scan → act. Same one-tap rhythm as the rest of DirtFleet.

Mechanics shouldn't have to learn a second app. The tool tracking module ships inside DirtFleet with the same big-button, glove-friendly UI.

  1. Step 1

    Add or import tools

    Bulk-add plate compactors, jumping jacks, generators, welders, light towers, hand tools, and kits. Each tool gets a unique scan token printed on a polyester or metal QR label.

  2. Step 2

    Assign + check out to crew

    One-tap assignment to an employee, a vehicle, both, a yard, or the central pool. Check-out / check-in records who has it right now, when it went out, and what asset (job site, truck) it's tied to.

  3. Step 3

    Scan to act

    Equipment QR opens log-hours; tool QR opens check-out, check-in, or damage report. NFC tags work the same — tap, action, done.

  4. Step 4

    Failure → work order

    A failure report auto-spawns a high-priority WorkOrder so the shop sees broken tools the same way they see broken assets.

Two scan behaviors

The tag knows what you're holding.

A QR or NFC tag on the dash of an excavator does something different than one on a torque wrench — both flow through the same /scan endpoint.

Equipment / vehicle scan

Open Log Hours / Mileage

Pre-fills the asset, the operator, the meter unit. Type the reading, hit submit. Pre-trip checklist offered above.

Tool scan

Open Report / Request Replacement

Quick-select the failure mode (worn / broken / lost / damaged on job), photo, optional note. Submits a work order to the shop queue automatically.

Operations rollup

Three signals that surface on the dashboard, not buried in a list.

A scan-and-go workflow is only useful if a manager can answer 'which tools are running low?' or 'which haven't been serviced this year?' without paging through 400 rows. The module computes the answers on every dashboard load.

Low-stock alerts

Consumables under threshold

Drill bits, grinding wheels, zip ties — set a per-tool reorder point, or let the default of 5 catch them. The dashboard ToolAlerts card and the /tools?scope=low-stock filter show what to buy this week.

PM overdue

Service intervals that elapsed

Set pmIntervalDayson the tool, log a service event when you do it. Tools whose interval has elapsed (or whose creation date is past the interval and they've never been serviced) surface on the dashboard and on the /tools?scope=pm-overdue chip.

Utilization

Checkout time, by user

On the tool detail page, see the % of the last 30 days the tool was checked out, the count of check-out events, and the top users. Answers "do we need a second one?" without paging through the audit log.

Asset rental + per-project billing

Loans, project allocation, and the bill that comes from it.

The same check-out / check-in pattern works on assets, not just tools. Bob takes the welder home for the weekend? Mark it on the asset detail with an expected-return date. A core drill goes to the Boulder Streets job for two weeks? Tag it to the project — and the per-project equipment-usage rollup (GET /api/v1/projects/{id}/equipment-usage) turns hours-by-asset into a billable line item your accountant can push to QuickBooks at month-end. When the project has hourlyRate set, the rollup includes estimatedRevenueUsd per asset and a project total — no spreadsheet math.

  • Loan to a crew member with an expected return date — overdue loans surface on the dashboard
  • Allocate to a project — even if no hours have been logged yet, the asset shows up on the project's equipment ledger
  • Asset can be in both modes at once ("John has the welder, on Boulder Streets through Friday")
  • Two webhook events fire — asset.checked_out and asset.checked_in — so QBO/ERP mirrors stay current without polling
  • Per-project rollup combines hours-by-asset + currently-allocated equipment + repair cost + estimated revenue
  • Tools follow the same pattern: a core drill can be tied to the same project as the assets working it

Public API

Every action is also an HTTP call.

Drive check-out / check-in / report-issue from anywhere — your existing inventory system, a Zapier zap, a one-liner curl in your overnight cron. Same audit trail as the in-app flow.

# Check a tool out to a user (idempotent per actor, force overrides existing)
curl -sS -X POST https://dirtfleet.app/api/v1/tools/clx7t…/checkout \
  -H "Authorization: Bearer dfk_…" \
  -H "Content-Type: application/json" \
  -d '{ "toUserId": "clx7u…", "linkedAssetId": "clx7a…", "note": "for project X" }'

# Check out a whole socket set in one call (kit + every child)
curl -sS -X POST https://dirtfleet.app/api/v1/tools/clx7kit…/checkout \
  -H "Authorization: Bearer dfk_…" \
  -H "Content-Type: application/json" \
  -d '{ "includeChildren": true, "toUserId": "clx7u…", "linkedAssetId": "clx7a…" }'

# Get 30-day utilization with top users
curl -sS https://dirtfleet.app/api/v1/tools/clx7t…/utilization?days=30 \
  -H "Authorization: Bearer dfk_…"

# Find consumables running low across the fleet
curl -sS "https://dirtfleet.app/api/v1/tools?lowStock=true" \
  -H "Authorization: Bearer dfk_…"

# Dump the same view to CSV for finance / spreadsheets
curl -sS -OJ "https://dirtfleet.app/api/v1/tools?lowStock=true&format=csv" \
  -H "Authorization: Bearer dfk_…"

# Pull a tool's straight-line book value for accounting
curl -sS "https://dirtfleet.app/api/v1/tools/clx7t…?includeBookValue=true" \
  -H "Authorization: Bearer dfk_…"

# Tools whose warranty expires in the next 60 days (renew or budget)
curl -sS "https://dirtfleet.app/api/v1/tools?warrantyExpiringDays=60" \
  -H "Authorization: Bearer dfk_…"

# Mark a tool as serviced (clears its PM-overdue state)
curl -sS -X POST "https://dirtfleet.app/api/v1/tools/clx7t…/mark-serviced" \
  -H "Authorization: Bearer dfk_…" \
  -H "Content-Type: application/json" \
  -d '{ "note": "Oil + filter + plugs" }'

# Stream a tool's full audit trail for accounting / CMMS mirror
curl -sS "https://dirtfleet.app/api/v1/tools/clx7t…/events?limit=200" \
  -H "Authorization: Bearer dfk_…"

# Check an asset out to a crew member with an expected return date
curl -sS -X POST "https://dirtfleet.app/api/v1/assets/clx7a…/checkout" \
  -H "Authorization: Bearer dfk_…" \
  -H "Content-Type: application/json" \
  -d '{ "toUserId": "clx7u_bob…", "expectedReturnAt": "2026-05-20T08:00:00Z", "note": "Bob taking welder home" }'

# Allocate an asset to a project (for the per-project billing rollup)
curl -sS -X POST "https://dirtfleet.app/api/v1/assets/clx7a…/checkout" \
  -H "Authorization: Bearer dfk_…" \
  -H "Content-Type: application/json" \
  -d '{ "toProjectId": "clx7p_boulder…" }'

# Pull the per-project equipment usage rollup (hours + cost + revenue)
curl -sS "https://dirtfleet.app/api/v1/projects/clx7p_boulder…/equipment-usage" \
  -H "Authorization: Bearer dfk_…"

Full reference at /docs/api — eleven tools endpoints plus the bulk-import, two new asset checkout endpoints, a per-project equipment-usage rollup, and nine event types covering tools + asset checkouts (webhook catalog).

vs. alternatives

Why we built it inside DirtFleet.

  • Standalone tool platforms (ToolHound, ShareMyToolbox)

    Same scan-and-go workflow, but inside the same app where mechanics already log hours, repairs, and pre-trips. No second login, no second invoice.

  • Spreadsheets / paper sign-out sheets

    Photo-first tool records, hour-log offline queue where it ships, with cost rollups into your fleet $/hour. Lost-tool excuses go away.

  • Heavy CMMS suites with tool modules

    We don't price per seat — your crew can use it for free. Tool tracking is part of the plan, not a separate module: your first 50 tools are included, and past that they meter in blocks of 50 rather than per tool. Kit contents and consumables never count.

FAQ

Common questions before you turn the module on.

  • Does every tool need a QR code?

    No. You can run the module with just inventory and assignment. QR / NFC scanning is the fast lane for daily check-in/out and damage reports — most fleets label only their high-value or high-loss items.

  • What labels and printers do you recommend?

    Polyester thermal-transfer labels (Zebra Z-Ultimate or StrongAssetTags Strongest Level) printed on a Zebra ZT-series with a resin ribbon. Metal Metalphoto tags for extreme wear. NFC: IP67/IP68 on-metal tags from Tagstand, Xerafy, or Confidex. Full guide in the in-app help.

  • Do scanning and check-in/out work offline?

    Tool scan/check-in currently needs connectivity. Hour logs use a device outbox and sync when you're back online; broader offline queues for tools are on the roadmap.

  • Can I track usage hours on power tools?

    Manual usage notes only in v1 — we don't try to estimate run-hours from indirect signals. Bluetooth integration with platforms like Milwaukee ONE-KEY is on the roadmap.

  • What happens to lost / stolen tools?

    One tap on the report screen marks the tool MISSING and opens a WorkOrder so the shop sees it in the queue. The tool also drops out of the active checkout state.

Ready to try it?

Add tools to your trial fleet today.

The tool tracking module is included with the standard 30-day trial. Bring a roll of polyester labels and a thermal printer — we'll handle the rest.

Already in the app? Open /tools to start.