VGL Guide — Current Reality Tree (CRT)
Estimated reading time: 3 minutes.
Current Reality Tree (CRT)
Root cause analysis (Theory of Constraints), showing how causes lead to undesirable effects. Sufficient-cause logic, so multiple unjoined causes feeding one effect are implicitly OR; only AND is explicit.
Node types
UndesirableEffect— an unwanted outcome requiring investigation (default: red)IntermediateEffect— a neutral outcome in the causal chain (default: blue)DesirableEffect— a wanted outcome caused by other conditions (default: green)Given— an unchangeable constant, such as a law or physics (default: dark purple)Changeable— a modifiable condition that can be addressed (default: light purple)AndJunctor— multiple conditions required together to produce the downstream effect (icon: AND circle)
Edge types. CRT, FRT and TRT share one family, flowing bottom-to-top (causes and actions at the bottom, effects at the top). Names are mechanical,
<source>_causes_<target>:
Between effects: undesirable_causes_undesirable,
undesirable_causes_intermediate, undesirable_causes_desirable,
intermediate_causes_undesirable, intermediate_causes_intermediate,
intermediate_causes_desirable, desirable_causes_undesirable,
desirable_causes_intermediate, desirable_causes_desirable
From Given and Changeable: given_causes_undesirable,
given_causes_intermediate, given_causes_desirable,
changeable_causes_undesirable, changeable_causes_intermediate,
changeable_causes_desirable
Junctors: *_to_and_junctor connects any type to an AndJunctor;
and_junctor_causes_* connects it onward to an effect.
CRT typically starts from effects and traces down to causes; FRT and TRT typically start from changeable_causes_* and build upward.
vgraph salesDecline: CRT "Sales Decline Analysis" {
// Undesirable Effects (problems at the top)
node ude1: UndesirableEffect "Sales revenue declining";
node ude2: UndesirableEffect "Customer complaints increasing";
node ude3: UndesirableEffect "Market share decreasing";
// Intermediate Effects (neutral outcomes in the causal chain)
node ie1: IntermediateEffect "Customers switching to competitors";
node ie2: IntermediateEffect "Product perceived as outdated";
node ie3: IntermediateEffect "Support response time is slow";
// Desirable Effects (things we want to keep)
node de1: DesirableEffect "Brand reputation still strong";
// Given (unchangeable facts at the bottom)
node g1: Given "Market is highly competitive";
node g2: Given "Customer expectations keep rising";
// Changeable (root causes we can address)
node c1: Changeable "Product development cycle is too long";
node c2: Changeable "Support team is understaffed";
node c3: Changeable "No customer feedback loop";
// Junctor for combining conditions
node and1: AndJunctor "";
// Root causes leading to intermediate effects
edge c1 -> ie2: changeable_causes_intermediate;
edge c3 -> ie2: changeable_causes_intermediate;
edge c2 -> ie3: changeable_causes_intermediate;
// Given facts contributing to situation
edge g1 -> ie1: given_causes_intermediate;
edge g2 -> and1: given_to_and_junctor;
edge ie2 -> and1: intermediate_to_and_junctor;
// And junctor combining conditions
edge and1 -> ie1: and_junctor_causes_intermediate;
// Alternative causes (implicit OR — any single arrow into ude2 is sufficient)
edge ie1 -> ude2: intermediate_causes_undesirable;
edge ie3 -> ude2: intermediate_causes_undesirable;
// Intermediate effects leading to undesirable effects
edge ie1 -> ude1: intermediate_causes_undesirable;
edge ie1 -> ude3: intermediate_causes_undesirable;
// Brand reputation affected but still positive
edge ie2 -> de1: intermediate_causes_desirable;
}
Note: CRT graphs flow bottom-to-top, with root causes (Given and Changeable) at the bottom and Undesirable Effects at the top. CRT uses sufficient-cause logic: multiple unjoined arrows into the same effect are read as OR (any one is sufficient). The AndJunctor is the explicit exception, indicating multiple conditions that must be true together. Labels for junctors are typically empty as the icon conveys the meaning.
Home