This view contains identified evidence gaps.
Lifecycle states
In this document
Which states can a business object enter, and what triggers or guards each change?
This bounded lifecycle view covers the financial guarantee whose domain state machine is described in the supplied evidence. It distinguishes application completion, approval, refusal, release and supersession; these are reported transitions, not a progression inferred from enum order. E0143
Read each relationship as a permitted change of the same guarantee’s status. Trigger identifies the operation that initiates the change; Guard records the evidenced prerequisite. Approval of a replacement guarantee can also change the previously approved guarantee: matching references cause supersession, while different references cause release. E0143
Status and decision are not interchangeable. A released guarantee can retain its Approved decision and original decision date while its status becomes Released and its release date is populated. The model therefore uses status names, not decision-field values. E0143 E0299
The supplied material reports source analysis and test expectations, not live verification. The domain guarantee and import-guarantee models also have different status vocabularies, so this view does not combine them into one lifecycle. E0143 E0299 E0093 E0376
Diagram
Preparing diagram…
View Mermaid diagram source
stateDiagram-v2
state "ApplicationReceived" as n7febc709807e55f027a7
state "ApplicationComplete" as ndb906d5269e015b4e223
state "Approved" as n212f72a68522e04ab31c
state "Refused" as n6eb4eb1c3a96a9a89400
state "Released" as nd960e418fb90d22022cb
state "Superseded" as nd9992744ca956cc65f5c
n7febc709807e55f027a7 --> ndb906d5269e015b4e223: Completed, invoked by the completion operation. #91;E0143#93; / Completion date must not precede the received date. #91;E0143#93;
ndb906d5269e015b4e223 --> n212f72a68522e04ab31c: Approved, invoked by the approval operation. #91;E0143#93; / A completion date must exist, and the approval decision date must not precede it. #91;E0143#93;
ndb906d5269e015b4e223 --> n6eb4eb1c3a96a9a89400: Refused, invoked by the refusal operation. #91;E0143#93; / A completion date must exist#59; refusal must not be dated before completion#59; the reason must not be null, empty or whitespace-only. #91;E0143#93;
n212f72a68522e04ab31c --> nd960e418fb90d22022cb: Released, invoked by release or by replacement approval with a different reference. #91;E0143#93; / The release date must not precede the completion date. #91;E0143#93;
n212f72a68522e04ab31c --> nd9992744ca956cc65f5c: Superseded#59; the reported replacement flow invokes it when the prior and replacement references are identical. #91;E0143#93;
Elements
ApplicationReceived
Kind: state
Basis: reported
Description: Financial-guarantee application state from which the completion trigger permits entry to ApplicationComplete. Tests also expect newly added guarantees to have this status and a None decision. E0143 E0299
Evidence: E0143 E0299
ApplicationComplete
Kind: state Basis: reported Description: Completed application state with separate approval and refusal paths. Both state-machine paths require a recorded completion date. E0143 Evidence: E0143
Approved
Kind: state Basis: reported Description: Approval status entered through the approval trigger. Approval records the decision date, permitted active loads, reference, blanket-bond flag, cover amount and continued-calculation amount. This state permits release or supersession. E0143 Evidence: E0143
Refused
Kind: state
Basis: reported
Description: Refusal status entered from ApplicationComplete; the refusal operation records its date and reason. E0143
Evidence: E0143
Released
Kind: state Basis: reported Description: Status reached by releasing an approved guarantee. Release populates the release date but preserves an existing approval decision and its decision date in the reported implementation. E0143 E0299 Evidence: E0143 E0299
Superseded
Kind: state
Basis: reported
Description: Status reached from Approved through supersession. The reported replacement logic uses this outcome for the previous approved guarantee when the replacement has an identical reference. No supersession-specific date or decision-field update is shown. E0143
Evidence: E0143
Relationships
Complete guarantee application
From: ApplicationReceived To: ApplicationComplete Relation: transition Basis: reported Description: The state machine permits the completion trigger to change the received application to a completed application; the completion method rejects a date earlier than the received date. E0143 Evidence: E0143 Trigger: Completed, invoked by the completion operation. E0143 Guard: Completion date must not precede the received date. E0143
Approve completed application
From: ApplicationComplete
To: Approved
Relation: transition
Basis: reported
Description: The approval trigger changes the completed application to Approved and copies the supplied approval data onto the guarantee. Tests expect approval to be unavailable before completion. E0143 E0299
Evidence: E0143 E0299
Trigger: Approved, invoked by the approval operation. E0143
Guard: A completion date must exist, and the approval decision date must not precede it. E0143
Refuse completed application
From: ApplicationComplete
To: Refused
Relation: transition
Basis: reported
Description: The refusal trigger changes the completed application to Refused, retaining the refusal date and reason. Tests distinguish null-reason failures from empty or whitespace-reason failures. E0143 E0299
Evidence: E0143 E0299
Trigger: Refused, invoked by the refusal operation. E0143
Guard: A completion date must exist; refusal must not be dated before completion; the reason must not be null, empty or whitespace-only. E0143
Release approved guarantee
From: Approved
To: Released
Relation: transition
Basis: reported
Description: The release trigger changes an approved guarantee’s status to Released. It can be invoked directly or by replacement approval when the previous approved guarantee has a different reference; that replacement path uses the current system UTC time for release. E0143
Evidence: E0143 E0299
Trigger: Released, invoked by release or by replacement approval with a different reference. E0143
Guard: The release date must not precede the completion date. E0143
Supersede approved guarantee
From: Approved To: Superseded Relation: transition Basis: reported Description: The state machine permits supersession of an approved guarantee. In the reported replacement flow, approval of the target causes the prior approved guarantee to be superseded when their references match. E0143 Evidence: E0143 Trigger: Superseded; the reported replacement flow invokes it when the prior and replacement references are identical. E0143
Gaps
-
Entry and further transitions:
AwaitingApplicationis declared in the guarantee vocabulary, but the supplied domain analysis does not establish a transition connecting it to the modeled states. No initial or terminal designation is asserted here. Additional outgoing transitions fromRefused,ReleasedorSupersededare not established by that analysis. Obtain the complete state configuration and callers to resolve these boundaries. E0376 E0143 -
Import versus domain guarantees: The import-guarantee enum contains six statuses and omits
Superseded, whereas the domain guarantee enum contains seven. Import handlers demonstrate creation and decision calls, but do not establish equivalent transition rules. Their implementation and mapping evidence are needed before extending this model to import guarantees. E0093 E0376 E0010 -
Guard enforcement across layers: View models additionally check required and non-future dates, positive permitted loads, blanket-bond selection, reference and monetary fields. These are not established as universal domain-transition guards. Monetary upper-bound checks are commented out, and malformed optional-date handling remains unresolved. Inspect callers and validation pipelines before treating those checks as guarantees for every transition. E0516
-
Replacement integrity: The approval service does not visibly ensure that the target and current approved guarantee are different objects. Current-approved lookup uses
SingleOrDefault, but uniqueness enforcement and concurrent replacement behavior are not established. Repository constraints and replacement integration tests are required. E0143 -
Persistence and events: The domain transitions raise status-change events, but the supplied domain analysis does not establish their conversion into persisted history or the persistence boundary of the approval service. Audit handlers are reported elsewhere in the supplied evidence, without proof of atomicity with each modeled change. E0143 E0010
-
Other business objects: Movement transitions are supported by separate domain evidence, while chapters report notification-assessment test sequences whose underlying test artifact is not supplied here. The chapters also distinguish a concrete import submission destination of
AwaitingPaymentfrom broader descriptions usingSubmitted; these accounts must not be merged into this guarantee lifecycle. Recovering those separate lifecycles requires preserving their object and evidence boundaries. E0013 C11 C06 C08
Sources
- C06 — SHA256
8bceb3aecb3cf6c886c0465d9182417aaff5f99715f640e319cf4d0126f75a10 - C08 — SHA256
48d1a99f108e6181d2ad40d5538216b59cdb5fa3fc5131464794b98856c3b850 - C11 — SHA256
4fccd5c1021d877e0509a00eb01e3933c0dd4cc3d78fe9f614a98531fe57ed20 - E0010 — SHA256
4755fe76ad67a65078ba0dea356e490d662d2435fe315c92864ce7376eb09a2b - E0013 — SHA256
f8500d44c789ea48c71c08a508fef06e6b7764dfc8f5dcc893f0cfd540154c9f - E0093 — SHA256
a1b3454dcfe9db217e9ace6f26874ef8c5433f804c03ead0aa906150f5bb20b8 - E0143 — SHA256
15fda431b592c48ec70c4e9aa8796022fe57cbca28828abafb3e9821e9b9b9ed - E0299 — SHA256
32b9aaef32a18ea0ce816c8ee4ae637a3a5eeabeb5957d4e3597c731c47dd1a2 - E0376 — SHA256
cdeb69a32018e99d53b2e51f7333850a329c94d9a6eef0974af18be202e55261 - E0516 — SHA256
fc72c78c98fc5933ebb6859adf25b3bd088beb03e538258b7b3dae733d2affd3
Contains public sector information licensed under the Open Government Licence v3.0. Original public repository. This independent Harten analysis was not commissioned, approved or endorsed by DEFRA or the Environment Agency.
Analysed source-archive hash is recorded; its exact upstream Git commit has not been established. The generated material does not establish complete requirements, operational security or functional equivalence.