Markov validation
The rules a Markov diagram is checked against and their severity, what is deliberately not checked, and the messages with how to fix them.
Rules
| Rule | Severity |
|---|---|
| A transition rate is a number of 0 or more | Error |
| Every transition leads to a state that has a row of its own | Error |
| A diagram of two or more states has transitions | Warning |
| One transition per pair of states in each direction | Warning |
| Nothing leaves an absorbing state | Warning |
| Every state can be reached, when a state is typed Initial State | Warning |
| Every transition has a rate, or none does | Warning |
| Transition IDs are unique | Warning |
| State identifiers are unique | Warning |
| Node and relationship types are recognised | Warning |
| Every state is joined to the diagram | Warning |
| A state nothing leaves is declared absorbing | Information |
Not checked, on purpose: cycles, transitions from a state to itself, whether rates add up to anything, and state probabilities. A Markov diagram has no advisories, and only a missing Node ID mapping stops it drawing.
Messages and fixes
| Message | Fix |
|---|---|
| 4 states are drawn and no transitions between them. A state transition diagram is its transitions, so this is almost always a connection column that is not mapped: check that the column naming the state each row leads to — "Connected state", "To state", "Next state" — is mapped to Connected node in Data Mapping. | Map the column naming the state each transition reaches to Connected node. |
| A transition rate reads "-0.0001". A rate is a number of occurrences per unit time, so it cannot be negative or non-numeric. | Correct the rate on that row. |
| A relationship references a node that is not present. | A transition leads to a state with no row of its own, usually an absorbing state. Add a row for it with Connected State ID left blank. If the IDs differ only by spaces, the message quotes both; trim the column in Power Query. |
| 2 rows give a transition between the same two states in the same direction. There is one rate from one state to another, so the model has more than one answer to a question with a single answer. A transition each way is a different thing and is how a repairable model is written. | Keep one row for the transition. This appears when the two rows have different Transition Types. |
| A relationship is described by rows that disagree about Transition Rate; the first row's values are shown. | Two rows give the same transition, with the same type, different rates. They are drawn as one arrow with the first rate. Keep one row. |
| An absorbing state is one the system cannot leave, but a transition leaves this one. Remove the transition, or make this an ordinary state. | Remove the row leading out of the state, or change its type or its absorbing flag. If every arrow looks backwards, change Reads as. |
| No transition arrives at this state, so the system can never be in it and its probability is always zero. Connect it, or remove it. | Add the transition that reaches it, or remove the state. |
| 6 of 7 transitions carry a rate. The model cannot be solved until they all do — a diagram of the states alone is fine, but a half-quantified one is not. | Add the missing rates, or remove them all. |
| Transition ID "T3" is on 2 transitions. A transition ID names one transition — it is what the report selects and cross-references by — and a Markov model makes sharing one easy, because several transitions may legitimately join the same two states. | Give each transition its own ID. |
| 2 states are drawn with the identifier "1". The model still tells them apart by their own IDs, but a reader cannot: the identifier is what is written inside the symbol. | Give each state its own State Identifier. |
| A node is described by rows that disagree about Transition ID; the first row's values are shown. | The Transition ID column has not bound. Name it Relationship ID, or map it to Transition ID by hand. |
| Nothing leaves this state, so once the system reaches it, it stays. If that is deliberate, make it an absorbing state; otherwise the repair back out of it is missing. | Add the missing repair, or type the state Absorbing State or mark it in an absorbing column. |
| The diagram contains 2 disconnected components. | Some states are not joined to the rest. Check Connected State ID. |
Names and numbers in these messages come from your data.









