CAF (Comparison-Action Framework): A Meta-Framework for Problem Solving

CAF (Comparison-Action Framework): A Meta-Framework for Problem Solving

⚠️ Disclaimer: This article was reviewed and edited by aka, with assistance from generative AI for idea refinement and writing.


Hey, it's aka.

Today I want to introduce CAF, a method I always use for problem solving. It's a simple framework that organizes problems using three elements: "target, base, and action". It's a versatile approach that can be applied from building exercise habits to cognitive behavioral therapy (CBT).

By the way, "CAF" is my own naming, so there may already be an existing method out there with the same idea. If so, please let me know.

What Is CAF?

CAF (Comparison-Action Framework) is a simple meta-framework for problem solving.

When you encounter a problem, place these three elements in your mind:

flowchart LR
  B[Base] -->|Action| T[Target]

When solving a problem, you define these three in order from the top.

When problem solving isn't going well, CAF asks "which of the three is broken?"

* "Broken" here includes: ambiguous, undefined, misidentified, underestimated, weakly connected, etc.

CAF Usage Examples

Since CAF is a meta-framework, it might be hard to understand without examples.

Let's use "I want to exercise but can't keep it up" as our example.

Setting the Target

If you set the target as "exercise", it's often too vague. What state do you actually want as a result of exercising?

When you think "I want to exercise", there was actually a moment when you thought "I want to become [some state]". Setting that state as your target keeps the action from drifting.

An extreme example of action drift: if your target is "being able to pick up grandchildren or great-grandchildren" but your action is "go running" — that won't move you closer to the target. "Strengthening arm, leg, and lower back muscles" would be a better action.

Setting the Base

"Can't stick with exercise" is also often too vague. Why can't you stick with it?

Even the above may still be vague — especially when emotions are involved, things often remain unclear until you actually try. My approach is usually to "keep digging until you arrive at an action where you think 'this should be fine'".

Setting the Action

With the Base and Target reasonably organized, you can now determine the action.

If the Base and Target are set properly, the action is easy to determine. Most of the time, it's about deciding the intensity and frequency of the action.

Putting it all together, you should now have a problem-solving definition like this:

How does that feel? Compared to the initial "I want to exercise but can't", the problem is clearer and feels more solvable, doesn't it?

Other Application Examples

Here are some additional application examples.

Example: Goals, Current State, and the Path Between

When you "have a goal but can't achieve it", CAF breaks it down like this:

The key point of CAF is to avoid lumping "goal not met" together and instead identify which element has broken down.

Example: Cognitive Behavioral Therapy (CBT)

CAF naturally aligns with mental health methods like Cognitive Behavioral Therapy (CBT).

In CBT, you typically write out:

In CAF terms:

This is a great example of how the clearer the Base and Target become, the easier it is to design the Action.

Why CAF Works for Problem Solving

As shown in the examples, CAF classifies the causes of failed problem solving into three types:

  1. Target is inaccurate or vague
  2. Base is inaccurate or vague
  3. Action is inappropriate
    • The direction and intensity of the action are misaligned between Base and Target

In my experience, when problem solving isn't working, it's always one of these three that's broken. Conversely, if you inspect these three one by one, you can see what needs fixing.

The reason I like CAF is that it eliminates the "I don't know what to think about" state. When you hit a problem, you can at least take the action of "let me think about the target, base, and action". Through that action, you start to see what's vague. Once you see it, you know what to do next. This cycle is CAF's strength.

Things to Keep in Mind When Using CAF

CAF is simple, but there are a few things I pay attention to when using it.

Write the Target as a "State"

When setting the target, I try to write it as a state like "being in a healthy body" rather than a behavior like "exercise".

Writing it as behavior makes it easy to confuse means and ends. If "exercising" becomes the goal, then exercise itself becomes the purpose, and you lose sight of the state you actually wanted.

Write the Base as Accurately as Possible

When writing the base, accuracy is key. Instead of wanting to write "I don't have time", be honest and write "I end up watching YouTube". Without this honesty, the action will be misaligned.

Start Actions Small

When deciding on an action, I try not to aim for big changes right away. "Do one push-up every day" is more sustainable than "exercise for one hour every day".

You can adjust the intensity later. First, confirm that the vector from Base to Target is correct — that's the priority.

Review Periodically

The three elements set in CAF can change over time.

When you feel "something's not working", it's time to review the three elements.

Summary

CAF (Comparison-Action Framework) is a meta-framework that captures problem solving through three elements: Target, Base, and Action.

flowchart LR
  B[Base] -->|Action| T[Target]

When problem solving isn't working, one of these three is broken. Inspect them one by one, and you'll always find an improvement point.

CAF is a framework I use daily, and it's been helpful in all sorts of situations — from mental health to relationship issues. Give it a try if you'd like.

See you next time.

Appendix: Advanced CAF Applications

CAF can be used beyond its basic form. Here are some advanced patterns I frequently use.

Advanced 1: Placing an "Assumption" in the Base

Normally, the Base contains your "current state", but you can also place an assumed self there.

For example, when dealing with "I'm bad at presentations", the normal setup would be:

When the action doesn't come easily, try replacing the Base with an assumption:

This makes you think "how would someone great at presentations behave?"

These become hints for the action. At minimum, "have perfect grasp of the content" might emerge as an action.

This advanced pattern is effective when you "don't know what to do". By placing an ideal persona in the Base, the direction of the action becomes visible.

Advanced 2: When You Want to Move Away from the Target

CAF's basic form assumes "moving toward the Target", but sometimes you want to move away from the Target.

For example, "I want to stop being short-tempered":

flowchart LR
  B[Base] -->|Action| T[Target]
  style T fill:#ffcccc

In this case, the action has a "move away" vector rather than "move toward":

The key point is to clearly define the Target as the "state to avoid". "Short-tempered" alone is too vague — concretize it as "a state where I get irritated by trivial things and take it out on people around me".

This advanced pattern is effective when "I don't want to become this" is clear. It's surprisingly common for the state you want to avoid to be easier to picture than the state you're aiming for.

Top