Tabs
Claims
A claim is created from a defect and is one-to-one with it — a defect can raise at most one claim, and every claim comes from a defect. Creation copies the defect’s title, description, vehicle, component and product group across. The product group link is fixed for the life of the claim. Every claim and group carries an immutable reference —WC-YYYY-NNNN for claims,
WCG-YYYY-NNNN for groups — numbered per project and per calendar year. A claim also
carries a type: DELIVERY (the default) for a fault in the product as delivered, or
REPARATION for rework on a previously repaired asset. A REPARATION claim also records the
original defect it reworks, picked from the recurrence matches when the claim is raised
(see Recurring faults). Both the type and the link are fixed at creation;
DELIVERY claims carry no original defect.
Only claims in DRAFT can be edited or deleted. After submission the record is fixed and
changes happen through status transitions, each of which writes an immutable entry in the
claim’s history.
The status workflow
The same seven statuses and the same machine apply to both claims and groups.There is no single
CLOSED status. Closure splits into ACCEPTED_CLOSED and
REJECTED_CLOSED so the outcome survives in the record. The close action picks the right one
automatically from the current status.Rejection is not final: a rejected claim can be reopened to DRAFT, revised, and submitted
again.Claim Groups
A group collects claims that are being negotiated together — typically a systematic fault appearing across many vehicles. Groups have atype of SYSTEMATIC or MISC and run
through the identical status workflow. Every group is classified on one product group,
chosen at creation from one of the project’s vehicle types; the link is fixed afterwards.
Joining a claim to a group
Association is a two-party handshake:1
The Warranty Manager proposes
Adds a claim to a group. The association is created as
PENDING.2
The Warranty Supplier decides
Accepting marks the association
ACCEPTED and records who reviewed it and when.
Rejecting removes the proposal entirely — there is no rejected state to look back on,
and the pair can be proposed again later.- A claim belongs to at most one group. Only one accepted association per claim.
- A claim can have at most one outstanding proposal, so the same claim cannot be offered to two groups at once.
REJECTED or REJECTED_CLOSED cannot be proposed, and neither can claims
already associated.
Status inheritance
When a group’s status changes, its accepted claims follow. This is the point of grouping: one decision on a systematic fault applies to every claim in it. The mechanics are worth understanding, because the effect is larger than it first appears:- A claim jumps straight to the group’s status, even when that means crossing several
transitions at once. A group being closed can take a claim from
DRAFTall the way toACCEPTED_CLOSEDin a single step. The intermediate statuses are never recorded. - Claims already at or beyond the group’s status are left alone, so inheritance never moves a claim backwards.
- A claim also inherits the group’s current status at the moment its association is accepted.
- Only
ACCEPTEDassociations inherit. A claim with a pending proposal is untouched.
Recurring faults
The tab lists defects that already occurred on the same asset. Every pair carries one basis, the strongest reason it matched. Asset identity is the gate; the wording only has to line up where the taxonomy is too coarse to say “same fault” on its own. The matched defect must have occurred within the 90 days before the subject defect; a defect never matches a later one, so a pair is listed once, on the later defect. A defect is never matched against itself. Only recent defects get a row: those from the last 2 full weeks (Monday to Sunday, UTC) plus the current, unfinished week. Their matches still reach back the full 90 days. The drawer opened from a link shows a defect’s matches whatever its date.
The Cross group basis catches a recurrence reported under the wrong product group; its
threshold is a separate server setting from the text-match threshold.
Text similarity is PostgreSQL trigram similarity over the concatenated title and description,
shown as a percentage for every pair. It is a filter only on the Similar text and Cross
group bases, where it must reach the threshold; on the other three it is informational and
may be low.
On every same-vehicle basis the recorded location and component act as filters: two defects
with different non-empty locations, or with different components, are not a pair at all. A
missing location or component on either side is neutral.
Each grid row is one defect, aggregating its matches. Three columns show whether any match
shares the component, the fault code or a deep product group (a green check badge, or a grey cross badge),
and the Text column shows the top trigram score on a red-to-green gradient. A pair can tick
several columns at once. Rows sort by the strongest criterion in the order of the table, then by
descending score; the drawer shows the same four indicators per match. The number of weeks,
the window and both thresholds are server settings.
Recurring faults logic
The decision order behind every match, as a flowchart, and what hides a pair.
Hidden rows
Two states take a defect out of the list. The tab never shows them; the API returns them flagged with the reason when asked (include_hidden):
- Dismissed — a Warranty Manager judged the pair not to be a recurrence. The dismissal is
stored as a normalised, symmetric defect pair per project, so it holds in both directions and
at any threshold. It is permanent: no application action reverses it, only deletion of the
similarity_recurrence_dismissalrow. - Handled — the defect already carries a warranty claim of type
REPARATION.
REPARATION claim from
the defect and so marks that defect handled. The claim records the matched defect as its
original defect: a single visible match is used directly, several prompt for a pick, and with
none visible the shortcut is not offered. Both actions are Warranty Manager only.
Comments, documents and history
Claims and groups both carry a timeline combining status changes, comments and uploaded documents. Status entries are immutable — they cannot be edited or deleted by anyone. Comments and attachments can be edited or removed by their author.Tables
Field reference
warranty_claim, warranty_claim_group and the association table.