Know which spare is where, how much remains and what moved last.

Faromo Vessel Inventory and Spare Parts Management brings the company item catalogue, vessel and shore stores, location balances, stock movements, transfers, stock-take variances and selected GRN receipts into one control surface. The PMS spare-parts register is currently a separate model and is not automatically reconciled.

Written by: Faromo · Product and maritime domain teamReviewed by: Faromo · Technical and regulatory reviewLast reviewed:

Manage why stock changed, not only the quantity.

The same part may sit in an engine store, deck store, shore warehouse or another vessel. When code, unit, physical location and movement reason drift apart, procurement decisions use the wrong balance and shore teams discover a maintenance shortage too late.

Faromo’s general inventory module uses an item–warehouse–stock-location structure, with movements changing balances atomically. The equipment-scoped spare-parts register inside PMS is a separate flow that can open a draft requisition after a low-stock crossing. This page shows where the two structures connect today and where manual reconciliation is still required.

Which records produce the balance on screen?

IMPA provides common product identity, while maritime inventory products position item-to-component linkage, location, stock history, min/max, transfers and procurement linkage as the category backbone. The matrix below maps Faromo’s current implementation to that market language without expanding product scope to match competitor features.[1][2][3][4]

ITEM MASTER

Govern code, description and unit together

The IMPA code is optional; ISSA or a company code may also be used. Faromo does not itself provide licensed MSG data, and no code alone proves maker or part compatibility.

LOCATION

Make system stock correspond to a physical place

Each balance is the intersection of an item and a vessel or shore store; bin or rack, store type, responsible role and access restriction are defined alongside the physical-count plan.

MOVEMENT

Explain the balance with movements

Transaction type determines the delta, the system prevents a negative balance and stores the post-movement balance. A reason is mandatory for ADJUST and WRITE_OFF.

PMS / PROC

Connect maintenance need and goods receipt through distinct gates

The PMS spare register can open a draft requisition when crossing below minimum; a procurement GRN writes RECEIVE to general inventory when a stock location is selected. These two stock registers are not automatically reconciled today.

Balance and boundary matrix

Separate automated behavior from operational responsibility.

Each control point shows which input changes a balance or alert and which verification remains with the user.

Control pointInputFaromo behaviorResulting recordScope boundary
ITEMDescription; optional IMPA, ISSA or local code; maker, part number, specification, UOM and category.Creates a company-scoped searchable item master and derives the section code from an IMPA code.Active or inactive item, technical definition, classification and reference-price fields.The code is not mandatory; catalogue licensing, data deduplication and equipment-fit decisions are not provided by the product.
STOCK LEVELOn hand, reserved, minimum, maximum and optional reorder quantity.Calculates available = on hand − reserved; available ≤ 0 is critical, below minimum is low and on hand above maximum is over-stock.Location RAG state and a suggested order quantity, either explicitly set or derived from thresholds.Min/max is a company rule, not a consumption forecast. Lead time is stored but not used in the current calculation; there is no user action for reserved quantity yet.
MOVEMENTStock location, transaction type, quantity, optional price/currency, reason and reference.Produces a signed delta by transaction type, updates the location under row lock and rejects a negative balance.Movement type, delta, balance after, user and optional PO or work-order linkage.The movement ledger is append-only, but the stock-location create/update API can set quantity directly; opening and imported balances require separate reconciliation.
TRANSFERSource stock location, destination store, positive quantity and optional reason.Locks source and destination in one database transaction and writes paired TRANSFER_OUT and TRANSFER_IN entries under one group ID.Two linked movements and updated balances at both locations.Physical shipment, receipt confirmation and transit damage are not part of this atomic stock transfer.
STOCK-TAKEStock location, system quantity, physically counted quantity and note.Calculates variance = counted − system; creates an ADJUST movement when non-zero and records the latest count date and variance.Count result, variance percentage and adjustment movement when applicable.Count approval, second-person verification, blind counting, count cycles and close-out workflow are outside the current scope.
GRN → RECEIVEGRN line ready for posting, accepted quantity and optional stockLocationId.When a location is selected, writes accepted quantity as a PO-referenced RECEIVE; otherwise posts the GRN without creating an inventory movement.Posted GRN, PO delivery state and conditional RECEIVE movement.There is no automatic item-master code matching for the GRN line or automatic update to the PMS spare register.
PMS SPAREVessel, optional equipment, part number, on-board quantity, min/max, critical flag and lead time.On manual stock adjustment, opens a draft requisition on the first crossing from above to below minimum; suppresses a duplicate when the same open auto-requisition exists within seven days.PMS spare balance and procurement draft-requisition ID when created.It is separate from the general inventory item/location record; although an EquipmentItem/BOM bridge exists in the data model, it is not an end-to-end controller, service and web user workflow.
SHELF-LIFEVessel, description, category, lot, quantity, expiry date, location and critical flag.Classifies active items as warning, critical or expired using internal 90/30-day defaults and closes them as consumed or disposed.Separate shelf-life register, fleet/vessel summary and disposal method.The 90/30 days are not regulatory limits; the register is not linked to the stock ledger and does not implement batch genealogy or FEFO.

Representations of the same physical part across item master, stock location, PMS spare and shelf-life registers must be mapped individually during pilot migration. A “single stock number” is reliable only after record ownership is defined.

Pilot and migration control

What should be verified before trusting the live balance?

The checklist combines catalogue cleanup, physical count and cross-module record ownership in one acceptance test.[1][2][3][4]

  1. 01 · Ownership Choose the authoritative stock register: Document with vessel, shore and integration teams which of general inventory or PMS spares is the source of truth for each item group.
  2. 02 · Identity Clean duplicate items: Compare IMPA/ISSA/local code, maker, model, part number, specification and description together; verify catalogue licensing separately.
  3. 03 · Unit Fix unit-of-measure conversion: Apply one conversion rule for each, set, box, litre, kilogram and pack across opening balance, requisition, PO and GRN.
  4. 04 · Location Verify physical address: Match store type, vessel/shore scope, bin/rack, access restriction and responsible role with the actual physical location.
  5. 05 · Opening Establish opening balance by count: Reconcile imported quantity with a physical count; control any direct API quantity load with an opening document and timestamp.
  6. 06 · Threshold Record the rationale for min/max: Set thresholds under company policy using criticality, consumption, lead time, inter-vessel transfer options and supply risk; acknowledge that the current algorithm does not forecast demand.
  7. 07 · Movement Require a source for every delta: Link ISSUE, RETURN, WRITE_OFF and ADJUST movements to a work order, delivery document, count sheet or an explainable reason.
  8. 08 · Count Test transfer and count end to end: Verify negative-stock rejection, linked OUT/IN pair, destination balance, zero and non-zero count variances and adjustment trail with pilot data.
  9. 09 · Receipt Make GRN location a required control: Include in acceptance testing that a GRN without a location creates no stock movement; reconcile accepted quantity and PO reference in the RECEIVE record.
  10. 10 · Separate registers Manage PMS-spare and shelf-life differences: Define the owner and frequency for manually reconciling PMS low-stock requisitions with general inventory and shelf-life quantities with the movement ledger.

This list does not replace the vessel SMS procedure, critical-spares policy, customs/bonded, IMDG, medical, maker, class or accounting controls.

Scope and core capabilities

Company item catalogue

Manage description, IMPA/ISSA or local code, maker, part number, specification, unit, hazmat and safety-critical flag at company scope.

Vessel and shore stores

Track an item by location and responsible role across general, deck, engine, safety, provision, chemical, medical, bonded, slop-chest or shore stores.

Min/max and reorder view

Compare on-hand minus reserved balance with company-defined minimum and maximum thresholds; see low, critical or over-stock status and a suggested quantity.

Traceable stock movement

Retain delta, balance after, user, reason and optional PO or work-order reference across RECEIVE, ISSUE, RETURN, TRANSFER, ADJUST, WRITE_OFF and SLOP_SALE movements.

Transfer and physical count

Write inter-store outbound and inbound movements atomically under one transfer group; create a separate ADJUST movement and count variance when physical stock differs.

GRN and shelf-life control

Link a posted GRN with a selected stock location to a RECEIVE movement; track shelf-life items in a separate register with category, lot, location and status.

Workflow

  1. Define item and location: Code, technical definition, unit, store and physical address become one record.
  2. Change balance through movement: Receipt, issue, return, transfer, adjustment or write-off produces the post-movement balance.
  3. Control with thresholds and counts: Min/max alert and physical-count variance are reviewed on the same location.
  4. Reconcile with PMS and procurement: Low-stock requisition, PO/GRN receipt and the separate PMS spare register are reconciled by a named owner.

Operational outcomes

  • See the same item by location across vessel and shore stores.
  • Explain balance changes with user, time, reason and post-movement value.
  • Separate low, critical and over-stock states using company thresholds.
  • Keep reconciliation gaps among receipt, stock-take and the separate PMS spare register visible.

Product evidence

Implemented item → location → movement → stock-take → GRN flow

Faromo tracks IMPA/ISSA- or locally coded items across vessel and shore stores, creates movement records with negative-balance protection and atomic transfers, writes stock-take variance as ADJUST, and converts a posted GRN with a selected stock location into a RECEIVE movement.

Frequently asked questions

Is the IMPA Marine Stores Guide catalogue included?

No. The item card can store an optional six-digit IMPA code, and a company may use its licensed data through a separate integration or import scope. Faromo does not itself provide the licensed MSG dataset.

Does low stock automatically create a purchase requisition?

A general inventory location produces a low or critical alert and suggested quantity but does not open a requisition automatically. A PMS spare can open a draft requisition when a manual adjustment crosses from above to below minimum, with a seven-day duplicate guard for the same open auto-requisition.

Is a spare used on a work order deducted automatically?

The general inventory movement API can carry workOrderId, but the current web movement form does not expose it and work-order closure does not automatically reconcile the two stock models. This linkage must be verified as an integration or additional user-flow scope during the pilot.

Does posting a GRN always increase stock?

No. Accepted quantity becomes a PO-referenced RECEIVE movement only when the GRN line has a valid stock location. Without a location, the GRN is posted but the inventory balance does not change.

Are the 90/30-day shelf-life thresholds regulatory requirements?

No. They are configurable internal planning defaults in Faromo. Actual replacement and disposal timing must be verified against product, maker, flag, company procedure and applicable rules; the shelf-life register is separate from the current stock-movement ledger.

Can inventory be used offline?

The web client’s general IndexedDB outbox can queue some writes without connectivity, but prior availability of stock records, replay/deduplication, concurrent balance and count scenarios require action-level pilot acceptance. No blanket offline coverage is claimed for inventory.

Primary sources