Vithanco

VGL Guide — Current Reality Tree (CRT)

Estimated reading time: 2 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
  • IntermediateEffect — a neutral outcome in the causal chain
  • DesirableEffect — a wanted outcome caused by other conditions
  • Given — an unchangeable constant, such as a law or physics
  • Changeable — a modifiable condition that can be addressed
  • AndJunctor — multiple conditions required together to produce the downstream effect (icon: AND circle; usually unlabelled, since the icon says it)

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;
}