Theorymaker - a language for Theories of change.

Steve Powell

Press your space bar or arrow keys to begin
Press M for the navigation menu

SECTION: About Theorymaker

  • a visual language for project Theories and “Theories of Change” - a standard grab-bag of optional graphical elements
  • for building many different kinds of Theories (from simple to “wicked”)
  • provide a more rigorous basis for our Theories, with words (in capitals) like “Variable”, “Rule” etc to talk about the parts of a Theory of Change, a definition of “Theory of Change”, theory-based suggestions for how to use Theories of Change in evaluations, etc.

If this is too confusing, read an introduction instead.

These slides …

  • explain (in Part 2) how not to talk nonsense with Theories of Change
  • do not deal with the practical or political aspects (who creates them, how and why)
  • can be navigated with the arrow keys. Press “m” for the contents menu.
  • include a small “Clone” link above each diagram: edit a version of the same diagram at
  • are available at
  • have a PDF version

If you want more

Who’s suspicious of Theories of Change?

Theories of Change:

  • Unrealistic, too optimistic?
  • Not flexible enough, don’t reflect how even the big features of plans change
  • Don’t reflect the details of hands-on management and how the little features change
  • Don’t reflect how new problems (and responses) can emerge
  • Too worried about measuring things in numbers
  • Don’t account for complexity of different stakeholders with different visions
  • “They assume everything is linear”

A good Theory of Change can accommodate all these criticisms!

Keep it simple

Theorymaker suggests a variety of symbols to make a variety of distinctions, for instance between different kinds of Variables. But it is not compulsory, for example, to display the symbol for binary Variables on all binary Variables. Only use them if you need to make or highlight that particular distinction.

Theorymaker provides several different symbols for use in Theories of Change. They fit together into a complete “language”, but you can just use the bits you need.

Only use the symbols you need, just enough to avoid ambiguity.


How to get these symbols

Using pencil & paper? Just draw them!

Using PowerPoint etc? Just copy and paste them from this page.

In the Theorymaker drag-and-drop app, just edit the text of the Variable or arrow (by clicking on the gear wheel which appears when you hover your mouse over the arrow) and the icons appear - click on the one you want.

In the Theorymaker text app, to add these symbols to a Variable, just add the code in the right-hand column, e.g. !up, to the name of the Variable. But how to add them to an arrow? You create an arrow to How warm you feel from Strength of wind by indenting the latter by one space, like this:

How warm you feel
 Strength of wind

And you can add a label, e.g. ⇅ to an arrow by typing the code for it (!ud) in brackets just after the space, like this:

How warm you feel
 (!ud)Strength of wind

Variables: things that could be different

Variables stand for things that can be different. We represent them with words written inside simple shapes, usually rectangles. They are the basic building blocks of Theories.

This kind of network diagram can be very useful but it isn’t a Theory because the rectangles are not Variables but things.

Now, these are Variables

  • can take different levels or values
  • can be low or high, or anywhere in between.
  • might vary over time too (NGO’s lobbying)
  • but they don’t have to (Prime Minister’s vote).

Arrows for causal influences

Draw arrows from one or more Variables (the “parent Variables”) to another (the “child Variable”). Meaning: the parent Variables causally influence the child Variable. If you manipulate the parent Variables, this will make a difference to the child Variable. The result is called a simple Theory.

Like this, which shows how two “influencing Variables” influence one “consequence Variable” …

“How satisfied is the student? It depends on their feeling of support, of living up to expectations , …”

Simple Theories: nuggets of practical information

  • more or less accurate
  • rules of thumb, help us to understand how the world works
  • more or less general or specific
  • it’s our job to provide Theories with the best evidence!
  • in any give situation, many different, overlapping Theories can be applied

Joining together simple Theories into composite Theories

If we have more than one simple Theory and they share Variables:

We can make a composite Theory: two or more simple Theories “snapped together”.

►: “Wedge” for Variables we can control

In many Theories, the root Variables (the ones with no parent Variables contributing to them) are assumed to all be under the control of our project.

But of course the world isn’t like that.

Sometimes it can be really useful to show the most important other factors which contribute to the downstream Variables.

Make it clear which Variables are under your control, e.g. by marking Variables we can control with a wedge: ►.

♥: “Heart” for Variables we value

In many Theories, the leaf Variables (the ones with no child Variables) are all assumed to be ones, and the only.ones, we care about.

But of course the world isn’t like that.

Sometimes it can be really useful to show which Variables we value, e.g. by marking them with a heart: ♥ or a smiley 🙂.

In this case, we value the legislators and the public having a more positive attitude to same-sex marriage not only because they are more likely to pass the law, but for other reasons we aren’t mentioning here.

What is a Theory of Change?

In the Theorymaker language, a ToC = someone’s Theory about how to get something they want by influencing something they can control.

A school principal has this Theory …

So this is a Theory of Change:

  1. it’s a Theory
  2. at least one Variable is valuable
  3. at least one Variable is controllable.

Theorymaker symbols:

► = we can control this

♥ or 🙂 = we value this

(Just three Variables in this example. Many other formats possible.)

Listing assumptions on the arrows

Sometimes, rather than listing Variables we cannot control, it is easier to just add them to the relevant arrows, preceded by the word “Assumption:”.

So, this is fine, but we can simplify …

… like this:

An “assumption”, expressed like this, is nearly always a “no,yes” Variable like “Celebrities speak out” rather than, say, a continuous Variable (like “How much celebrities speak out”)

Bare arrowheads for unnamed additional influences

Sometimes we can’t, or don’t want to, specify what the other influences are; but we don’t want to forget them.

The additional green arrowheads, like here on the Variables “Law is passed” and “Public opinion improves”, remind us there are other influences too.

Thicker arrows for bigger influences

We can optionally show the relative strength of influences with thicker and thinner arrows.

Here, we want to show that the influence of the other campaign is much less important than public opinion.

We can do the same thing with the sizes of bare arrowheads for unnamed influences.

Here, we want to show that the other influences on public opinion are much more important than our campaign.

Showing who Variables belong to

… suggests that somehow, trust in strange dogs depends on opportunities for interaction.

But who has this trust? Who has these opportunities?

It is often really important to specify who or what the Variables belong to, by specifying them at the start of the Variable name, with a colon (“:”).

This Theory is about a generic “child”. As there are no details specified, it should work for any specific child. Obviously there will be exceptions (it might not work for some specific children) but the whole point of simple Theories is to give rule-of-thumb, relatively simple causal information which might need to be refined with additional, perhaps more specific, Theories.

Grouping boxes: Variables with similar features

This Theory says that trust in strange dogs depends on opportunities for safe interaction.

Both Variables have a special feature (Child:...) which tells you who or what the Variable belongs to.

Deleting identical information from both Variables (the fact that they belong to the child) and transferring it to a box which groups them together:

The grouping box also tells us that these two Variables belong to the same child. That has very important practical consequences.

We can use the same idea to group together any set of Variables which share some feature.

One Variable for each person in a group

The same teacher teaches three different students - his ability contributes to their achievement, and their achievement in turn influences his pride.

Sets of Variables like this (similar to one another but belong to different people or time points, or countries, or firms …) are very common

  • some people, especially statisticians, call these sets of Variables just “Variables”…
  • … which can make things look simpler but do remember it’s really a set (several data points)
  • in Theorymaker, these are called “for-each Variables”: treated like one Variable when really it is a set

“~” for Variables which stretch or repeat across time

In Theories of Change, unlike in statistics, we should assume Variables exist just once in time, e.g. a voter’s decision to vote a certain way on a particular election day with a specific date.

What about Variable sets which stretch or repeat across time:

In Theorymaker we call this set a “for-each-time” Variable. We draw just one Variable though we know it is several (and/or we can use the “~” symbol too):

“^” for discrete events

“For-each-time” Variables are very common, and have special symbols in Theorymaker.

We already saw the ~ symbol for an event which stretches or repeats through a period.

What about Variables which represent discrete events? These can be useful:

^ = a discrete Variable which happens just once

^^ = a discrete Variable which happens just a few times

^- = a discrete Variable which happens just once, at the beginning

-^ = a discrete Variable which happens just once, at the end

Many traditional Theories of Change are sliced into “phases”; each phase defines when the Variables within it start and end.

With more flexible Theories, we need other ways, like these, to show a Variable’s timing.

General and specific

Theories can be quite general - e.g. they can make claims about how some generic child will behave. We can also apply them in more specific cases too, for example to derive a Theory just about boys in England in 2018, or even just about a specific boy.

It’s the same with time …

Often, we drop “relative time” nuggets of knowledge (“Simple Theories”) which are true generally, not just at one specific time …

… into more concrete fixed-time Theories:

If even one Variable in your Theory has a fixed time, they all do.

Saying what kind your Variables are

You can show what kinds your Variables are: what sort of values or “Levels” they can take.

Some kinds of Variable have special names in the Theorymaker language; here are two of the most common ones:

no,yes Variables

  • can be or not be, happen or not happen.
  • e.g. “The law is passed”

lo-hi Variables

  • can be low or high or any level in between
  • e.g. “level of support for the law”

Other common types include counting-number Variables (like number of people signing a petition) and continuous-number Variables (like weight of food delivered)

◪ “lo-hi” Variable e.g. percentage, amount of agreement. Has a (clear or vague) maximum and minimum; is not numerical.

  • can be low, or high, or any level in between
  • very common in real-life Theories of Change


  • “The President’s support for the new law”
  • “quality of implementation”
  • “level of tolerance”
  • “level of satisfaction”

Key characteristic:

  • Any possible level of a lo-hi Variable can be compared with any other possible level: stronger or weaker, higher or lower …
  • Continuous, not discrete

Tip: When sketching your ToC, don’t worry about measurement or putting your Variables into numerical form!

  • numbers are “too accurate” for most lo-hi Variables
  • we can still do serious reasoning with lo-hi Variables using Soft Arithmetic - working with comparisons rather than measurements

◨ Binary Variable e.g. no/yes, false/true. Has only two Levels.

Binary Variables are Variables too.

Sometimes, when writing a Theory of Change, it is easy to overlook that binary Variables Variables, like “the law is passed (yes or no)”, are Variables too. When a Variable is numeric, say, number of children attending a session, it is quite easy to recognise it as a Variable. But when Variables are expressed as no/yes propositions or statements, it is sometimes harder to grasp that they too are Variables, with just two Levels. We can use the “◨” symbol for them.

Sometimes logframes and Theories of Change are expressed only using binary, yes/no Statements. But they don’t have to be.

Here, for example, we have re-expressed the Variable about the passing of the District Law in terms of its probability, (a lo-hi Variable which ranges from 0 to 100%) which depends in some way on both the level of support amongst legislators and the passing of the Enabling Law.


When we intervene on a Variable which we control, we switch its status to some other Level than the Level it would have had without the intervention.

Because of our intervention, the Variable has one Level, (“the Factual”) rather than another (“the Counterfactual”). (We say “Factual” also for proposed or projected status, not only for status right now.)

Theorymaker language: “*Factual--Counterfactual*” is called a Difference. It’s a bit like a subtraction, but more general.

Our intervention was lobbying *lots--none*: lobbying lots rather than not lobbying. This made a Difference to the PM: *yes--no*: she voted yes (otherwise, would have voted no).

We can specify a summarised Difference even without the “–” symbol, like this:

  • *Much improved teaching quality*

which is roughly equivalent to this:

  • Teaching quality *Excellent--Poor*

or perhaps this:

  • Teaching quality *Good--Very Poor*

(But we should remember when using the word “improved” for a Difference that we are not necessarily or essentially talking about changes over time.)

An easy way to separate Variables from targets

Variables and targets get mixed up in Logframes and Theories of Change. We see all of these in the wild:

  • Teaching quality (name of Variable)
  • Teaching quality 36%, usually only 16% (name of Variable plus factual and counterfactual)
  • Teaching quality 20% better than last year (name of Variable plus summary of Difference made)
  • Improved teaching quality (name of Variable plus a rough summary of Difference made)

The Theorymaker language suggests expressing targets as Differences, using the “Factual--Counterfactual” notation, separating the Differences from the actual names of the Variables.

  • Teaching quality *36%--16%*
  • Teaching quality *improves by 20%* (no “--”, we already summarised the Difference)
  • *Improved*teaching quality (rougher summary of the Difference)

Dotted lines for Variables which are defined in terms of others, not caused by them

The arrows in a Theory of Change should show causal influence. But “Teachers in whole country have skills” is just the sum of the other two, by definition.

If you have to include a defined Variable in your Theory, mark it with dotted arrows:

If you already have “indicators” for the defining Variables, there is no need to seek additional “indicators” for the defined Variable as well. The evidence is shared. As this Variable is not separately measured, it is shown with a dotted border. But this Variable is just as real as the others. Definition and causation are about relationships, not Variables.

Or omit the defined Variable completely and organise your Theory visually using a grouping box:

SECTION: Rules in Theories of Change

This section is ….

What is a Rule within a simple Theory?

A Rule:

  • describes how the consequence Variable is influenced by the influence Variables (in maths, it’s called a “function”)
  • should be specified somehow if not obvious
    • in Theorymaker, can be added as text after the name of the consequence Variable
    • sometimes missing because we are lazy or don’t know any more details
    • usually we don’t need precision

In this diagram, the Rule is “same direction”: any positive increase on the influence Variables makes a positive increase on the consequence Variable

Recording evidence for Rules

In this diagram, the evidence for the collective influence of both Variables has been noted on the consequence Variable as part of the Rule. And an additional piece of research which supports the influence of just one consequence Variable has been noted on its arrow.

Different kinds of Rules

Coming soon!

Targets imply Rules

NGO financial resources *increased by 1000 EUR* - this leads to *2 extra* teacher training weekends, which leads to *an increase of 20%* in teaching quality.

Reminder: “*12--10*” means there should be 12 weekends rather than just the 10 which would have happened anyway.

Often, we show Targets rather than Rules. Work backwards from the Targets to work out the Rules, e.g. that 2 extra weekends on top of 10 is enough to improve teaching quality by 20% (Evidence?)

Problem of attenuation.

⇅: “Same” and “opposite direction” influences

How warm you feel depends partly on the strength of the sun. But the other arrow is misleading because strength of wind makes us feel colder, not hotter.

Theorymaker uses a blue arrow and/or a minus-sign (-) or a ⇅ to mark opposite direction influences: any increase in wind means a decrease in subjective temperature.

(Also, we assume that the influence of this Variable is overall opposite regardless of the other Variable(s) - so a stronger wind means we feel colder whether the sun is strong, weak or anything in between.)

Assume influences are “same direction”, but not necessarily linear

Is the influence of population support linear (for every 1% increase in population support, support among legislators always goes up by, say, 1%)??

Why should it be? There might be, for example, a tipping point, so it is hard to get support up to, say, 50% and easier thereafter. In fact almost any shape is possible. How to cope with all these possibilities? How is the reader to interpret our Theory if we can’t say what the arrow means?

Convention: assume an influence is at least “same direction”: any increase on it leads to an increase on the child Variable (and any decrease leads to a decrease). Otherwise, you need to describe the influence.

This influence is not same direction because of the section in blue.

Assume multiple influences are “overall independent”

Probably, the influence of B on C depends on the level of A (and vice versa; they are not “independent”). There are infinite possibilities, how to cope?

(This isn’t the same as assuming that the influences are independent. Assuming same direction influences is much more useful and much more likely to be true than assuming independence.)

There is another sense in which people talk about linear influences in Theories of Change: the idea that, if a Variable has more than one Variable influencing it, the total influence on it is just the sum of the influences of the individual parent Variables. In other words, to know the influence of “Support among population” on “Support among legislators”, it is not necessary to know anything about “Pressure from party leadership”, and vice versa.

“Linear” in this sense is short for “Linear superposition”. Quantitative scientists like it because it makes things easier to calculate. But it would be “fake science” to think that therefore, that’s how the world is. Suppose for example that, when interpreting support from the population, individual legislators consider what the party leadership thinks. For example, if the leadership is totally against, pressure from the population might have a negative influence on legislators.

There are a lot of ways several Variables can combine. How to keep things simple? We suggest adopting yet another convention from the Theorymaker language: if in doubt, assume that when several Variables influence another, each influence is “same direction”, in the sense that every difference on a parent Variable leads to some difference on the child Variable (and in the same direction - so an increase leads to an increase, and a decrease leads to a decrease), regardless of the state of the other contributing Variables.

(This isn’t the same as assuming that the influences are independent. Assuming same direction influences is much more useful and much more likely to be true than assuming independence.)

Showing interactions by linking arrowheads

We usually assume that even when there are several influences on a Variable, each influence is independent of the others.

But what if this isn’t true? What if the influence of one Variable depends in an important way on the Level of another Variable?

We can highlight interactions by linking the arrow-heads, as in the first two Variables above. (And we should explain more about this “interaction Rule” in the diagram or the narrative, so the reader has a rough idea of what the different combinations of the influencing Variables does to the consequence Variable.)

Making claims about contribution

Author of this ToC claims:

  • control over quality of teacher training, will improve it by 50%
  • this leads to a 20% improvement in teaching quality & then to a 10% improvement in student achievement

.. but knows there are other influences, control is incomplete

Or we can note this partial control with a Rule:

Often just assume there are other influences, no mention of them. Dangers?

Various feedback Rules

We see different kinds of feedback Rules in practice. The Rule which governs a heater thermostat (it can go from zero to a maximum) is different from the Rule for an AC unit (it can go from a maximum negative value, i.e. cooling, via zero to a maximum positive value, i.e. heating.)

🞕: The “optimise” Rule (in feedback loops)

If you can follow the arrows from one Variable back to itself, you have a “feedback loop”.

The Variables involved must stretch across time; the “~” in front of a Variable name shows this. (The ↺ symbol is explained later.) Variables with a fixed time-point, common in very simple step-by-step Theories can’t take part in a feedback loop. Why not? Think about it.

Here, program staff know the volunteers are most effective at a medium level of excitement, so if the volunteers are too lethargic, they offer plenty of inspirational input and if they are too excited, they try to calm them down.

The Rule which controls the Level of a Variable in such a feedback loop is likely to be aimed at maintaining some kind of optimum, pushing up low values but bringing down high ones. We use the Theorymaker symbol 🞕 to show this. It is unlikely to be a simple “same direction” Rule aka “positive feedback”. Why not?

“Memory” Variables ↺

How does sea temperature depend on sunshine?

(The ~ sign says this Variable repeats continuously across time.)

… but this suggests that the sea temperature plummets every time the sun goes behind a cloud.

In fact the sea takes a long time to cool much: to know its temperature at one moment, we need to know about sunshine and the temperature in previous moments: it’s a “memory” or “stock” Variable and needs an arrow from the Variable to itself.

It is also possible to use a ↺ symbol in the body of the Variable rather than drawing an extra arrow.

SECTION: Theories of Change

This section is ….

A Theory of Change can have more than one valued Variable

Lots of Theories of Change, have only one valued Variable,

  • the last one in the chain
  • often called “Top-level Outcome”, “Goal” etc.

But in the real world, you (or maybe other stakeholders) often value more than one Variable.

The laptops might have other valuable consequences for the students, so mark them as valuable, e.g. “♥” or even “♥ ♥”.

Intermediate Variables can be valuable too

In the real world, you (or maybe other stakeholders) might value Variables which are not at the end of a chain. If so, mark them as valued too, e.g. with a " ♥“.

Maybe you would still be quite pleased with the project if it made a big difference to student self-confidence regardless of its effect on exam results:

Some intermediate Variables (like attending workshops) are really only means to an end.

But some are valuable in their own right: don’t undersell your project if it really does produce additional value! Add more " ♥" for Variables you value more!

Sure, someone can always argue “you only value self-confidence because it leads to something else, the things you really value”. But you can say that about any valued Variable, for example employment prospects. And then it is turtles all the way down.

SECTION: Wicked, smart, adaptive Theories

This section is ….

Emergent Variables in Theories of Change

We can agree what counts as evidence for “Support given to innovation at Universities in Croatia” and for “Universities in Croatia are more successful” - evidence might be students graduating, research published etc. But what about the intervening Variable?

Emergent Variables (֍ symbol)

  • given the Variable label (“More innovation at Universities in Croatia”)
    • we find it hard to describe in advance what evidence for it would look like
    • but we can mostly recognise evidence for it once we see it.

We can’t specify “innovation” very clearly in advance because if we could, it wouldn’t be innovation.

It shouldn’t be too hard to define in advance what would count as evidence for “Support given to innovation at Universities in Croatia”. We might not have done it yet, but if we sit down with our peers, we don’t expect rampant disagreement about what counts as evidence. The same should be possible for “Universities in Croatia are more successful” - evidence might be students graduating, research published etc. But what about the intervening Variable? In the Theorymaker language this is called an emergent Variable, and we mark it with a spiral symbol.

The key thing about an emergent Variable is that, given the Variable label (“More innovation at Universities in Croatia”) we find it hard to describe in advance what evidence for it would look like - but we can mostly recognise evidence for it once we see it. The reason we can’t specify “innovation” very clearly in advance is because if we could, it wouldn’t be innovation.

The difference between emergent Variables and others is not hard-and-fast. Often, we have some idea of what evidence for a particular Variable would look like, but are very open to being surprised or persuaded about unexpected evidence too.

Emergent Variables are not a bad thing. They often play key roles in our most treasured Theories. Most parents hope their children might become wonderful people but most would be reluctant to even imagine in any detail how - while perhaps retaining some minimum standards they hope their children will reach and some red lines which they hope they won’t cross.

SECTION: Optional extras

This section is ….

Give a rough overview of developments over time

Theories of Change are not good at showing changes across time, for example an increase or decrease or stagnation in Variables which stretch across the whole duration of a project.


  • good but too detailed for a crowded diagram
  • suggest a degree of accuracy which we maybe don’t have or want

Solution? - Unicode Sparklines - the Flintstones of data display for Theories of Change.

These symbols are Unicode so you can paste them into any document.

(It turns out the idea of Unicode sparklines isn’t new.)

The Theorymaker language includes five blocks of different heights like those you can see in the diagram. To produce them at, when typing the names of your Variables, you just type !1 !2 !3 !4 and !5. !1 produces a small bar and so on up to !5 which produces the tallest bar. To get a sequence of bars you can write for example !1!2!3 but abbreviating to !123 works as well.

Because these five little blocks are plain Unicode, you can copy and paste them directly in in Office documents - find them in your “insert/symbol” dialogue in your word processor or just copy them from this post. In MS Word, there’s a special trick - type 2582 and then immediately type Alt+x - that will get the smallest bar. For the others you have to type 2583, 2585, 2586 and 2587. Primitive, but expressive - like the Flintstones. Funnily enough, the Unicode implementation of these kinds of block is weird - only these five work consistently, which explains why unfortunately the height intervals aren’t quite even.

SECTION: Do’s and donts

This section is a bit of a rant on what makes sense in a Theory of Change and what doesn’t, and on how to make sense and be usefully expressive when writing a Theory.

Breaking up orthodox Theories of Change

In Logical Frameworks Variables are divided up into slices: Inputs, Outputs, Outcomes etc. A very powerful simplification:

  • The first slice is just the Variables we can control
  • The final slice is just the Variable(s) we really value
  • The slices “happen” one after another …
… But it’s usually an oversimplification.

Here are some different symbols to help you be more subtle.

  • Valued Variables: ♥ (Or a smiley for things you want and a frowny face for things you don’t want)
  • Variables you can control: ►
  • Sketch out the timings with ^,~ and _.

No need to divide a Theory into “Outputs & Outcomes

In real life, Variables do not fit neatly into slices. Claiming otherwise is just “fake science”.

… the laptops also directly contribute to improved exam results, perhaps because the students can revise better: add an arrow.

Students receive laptops is both one step and two steps away from the final outcome. So the “slices” structure breaks down.

No need to divide a Theory into “phases”

Here, the activities in each slice are supposed to take a specific amount of time and each completes before the next starts: the slices are phases.

Sometimes useful, sometimes a painful straightjacket.

The Prime Minister calls snap elections in two weeks, my party has to launch a campaign to influence a whole nation’s behaviour in 14 days:

Continuous Variables can stretch over time, and discrete Variables can repeat, and their timings can overlap one another in different ways.

Position tells you nothing about duration

A Theory is forced into slices. We are supposed to understand that the Variables in the later slices such as the final Outcome(s) are necessarily “longer-term” and will last or sustain longer.

Sometimes useful, sometimes a painful straightjacket.

Making a difference can take minutes or centuries, and the Difference can then last for minutes or centuries. Depends on many things but not a Variable’s position in a Theory.

Sustainable social change is hard but not because it is so many links away in some Theory.

Be careful with Variables defined in terms of others

See earlier slide.

Either all or none of your Variables should mention changes or Differences

The problem is that the two intermediate Variables are just shown with Variable names whereas the others are also expressed in terms of indicators.

If you take this at face value, this will give you endless headaches down the line.

One solution:


Don’t say lower when you mean opposite of

Obviously we want to maximise the first two Variables in this chain, and minimise the last - it points in the opposite direction. So we use a word like ‘lower’ to make the switch of direction clear. But the first two rectangles just show the names of the Variables, whereas the third now includes a word ‘lower’ which seems also to talk about the difference made by the programme. Bad practise.

Either all or none of your Variables should mention changes or Differences.

There is no obvious word which means the opposite of ‘mortality’ - that’s why we used it. We can say ‘surviving’ but that isn’t really an opposite. How do you count the number of children surviving? When?

So we can use the ⇅ symbol, and/or simply the words ‘opposite of’.

Alternatively, mention the Differences made by the intervention on every Variable.

Be careful with Variables which partially define others

A project’s activities lead to an increase in children’s musical creativity; the management want to show how that is a benefit for the donor’s broader focus, which is children’s creativity in general (defined as the average of creativity in several different domains, one of which is music):

General creativity is (partially) defined in terms of musical creativity, so a dotted arrow should be shown along with other factor(s) too, in order to complete the definition …

But at the same time, the project claims that more musical creativity also causes an increase in general creativity, which would seem to result in a link which is both causal and definitional at the same time: not a good idea. Instead, we can show a link from musical creativity to the other part(s) of the definition, like this:

Reasons to avoid passive sentences in Theories of Change

Active sentences are usually easier to understand. But also:

… the two Variables above look like they belong to the City mayors.


This is better. We’d first go to the activists to gather data on the Variable.

What if we don’t know who is going to do the monitoring, and that’s why we used the passive. Or: “Somebody is monitoring city mayors”. But that is a “hard-to-search” Variable. Where would we go, what would we do, to gather data on that?

Don’t use a Variable to group project parts

This Theory fragment tries to use “Activities for teachers” and “Activities for students” as a way to organise the diagram. But this is wrong, because all arrows in a Theory of Change should show causal influence, and here the red arrows do not.

Just just eliminate the original Variables and use two grouping boxes instead:

One Variable can influence more than one other Variable

In lots of Theories of Change, especially those based on Logical Frameworks, every Variable only has one child Variable which it influences.

The “one child rule”

  • is convenient for administrators
  • allows us to number the Variables in our project hierarchically
  • a convenient straight-jacket

But in real life … Of course a Variable can influence more than one other Variable!

SECTION: Examples

This section gives a few examples of simplified Theories (or sections of Theories, which comes to pretty much the same thing).


More slides on more Theory of Change themes coming soon!