Degrees of Freedom: A Treatment Integrity Check for Assent-Based Plans
Use the N minus one formula to audit your BIP before it goes live. The real example a BCBA caught the day before pushing a protocol, from a BCBA-led CEU.
Key takeaway
The fastest treatment integrity audit you can run on an assent plan is a pre-push protocol check: count the real choices, subtract one, and make sure the answer is above zero. That is the whole formula.

Analyzing Assent and Taking Data
On this page · 8 sections▾
The fastest treatment integrity audit you can run on an assent plan is a pre-push protocol check: count the real choices, subtract one, and make sure the answer is above zero. That is the whole formula. Three seconds at your desk before the BIP goes to the technician can save a kid a week of fake choices and save you a redo. This page walks Board Certified Behavior Analysts (BCBAs) through what the formula means, where it breaks, and how to bake it into a weekly review without adding more paperwork to your night.
What N minus one actually means in a behavior plan#
Degrees of freedom is a borrowed idea. In behavior analysis it has one job: tell you if a client has real choice or fake choice. N is the count of options on the table. Minus one accounts for the option the client picks. What is left is the freedom they have to switch, push back, or say no without losing the reinforcer they care about.
Degrees of freedom or DOF is simply N minus one. N are the choices available with similar reinforcers, similar costs. And the minus one, and you want to have above zero degrees of freedom. If you have more than zero degrees of freedom, that means that there are multiple different options for you to use. From the talk — Matt Harrington
The part most plans miss is the "similar reinforcers, similar costs" piece. If option A gets the kid bubbles and option B gets the kid a sticker they barely look at, you wrote down two options but the math says one. N is not how many things you put on the choice board. N is how many of those things actually function as reinforcers right now, in this session, for this client. Count the working ones. Subtract one. That is your floor.
Two notes before you start counting. First, the cost has to match. If choice A is a single button press and choice B is a long compliance chain, the response effort is not equal and you are sliding back toward zero. Second, the reinforcer has to be available. A choice that leads to a reinforcer the technician cannot deliver in the moment is not a choice. It is a promise. Promises are zero DOF.
The bubbles example: why two buttons can still equal zero choice#
This is the trap. You set up a concurrent chains arrangement. Two mands, two buttons, looks clean on paper. The client mands for bubbles. You honor it. Then you ask the assent question and offer a withdrawal button. Sounds fair. The problem is what happens after the withdrawal button gets pressed.
In the talk, Matt walked through the consequence matrix on this exact setup. If the function of the assent behavior is to get bubbles, and pressing the withdrawal button results in extinction from bubbles, the withdrawal response is not being reinforced. The behavior analyst sees two choices. The contingency analysis says zero degrees of freedom. The withdrawal button is on the board. The button works. The client could press it. But pressing it kills the only reinforcer in the room. That is not a choice. That is a trick door with a sticker on it. From the client's side it is one option dressed up as two.
The fix is not to remove the assent button. The fix is to make sure withdrawal lands the client somewhere they actually want to be. Maybe that is a short break with a different preferred item. Maybe it is access to a quieter activity that they have already chosen in a preference assessment. The point is that both branches of the chain end in something the client values. When that is true, the count goes from one to two, and N minus one goes from zero to one. Now you have real freedom.
How to count degrees of freedom in a protocol you already wrote#
Pull up a BIP you wrote in the last month. Find the section where the client gets to make a choice. It could be the mand training piece, the break protocol, the task selection menu, anything where you wrote the word "choice." Now run the count.
Step one. List every option the protocol says the client has. Write them on a sticky note. Do not count anything that is not written into the protocol.
Step two. For each option, write down the reinforcer it produces. Be honest. If the reinforcer is "removal of demand," write that. If it is "preferred edible," write that. If it is "nothing changes," write that too.
Step three. Cross off any option where the reinforcer is weak, unavailable, or unequal in effort. Cross off any option where the technician cannot reliably deliver the reinforcer in under five seconds. Cross off anything that depends on a teammate showing up.
Step four. Count what is left. That is your real N. Subtract one. If the answer is zero or negative, the protocol does not give the client choice. It gives the client the appearance of choice. Rewrite it.
This whole pass takes about three minutes per protocol. Faster after you do it a few times. The audit is not about catching big ethical breaches. It is about catching the small ones that pile up across a caseload of fifteen kids over six months.
The pre-push checklist: catch zero-DOF setups before the technician sees them#
The best place to run this audit is before the protocol leaves your laptop. Once a registered behavior technician (RBT) starts running it, you are paying for the redo in trust and in data. A pre-push check is cheap. A mid-protocol pivot is not.
Doing a self-review of your protocols and your programs weekly, bi-weekly, whatever schedule fits for you. Looking back and ensuring there's always one to two degrees of freedom in every new protocol, and then before changes are made, before you push that live out to the technician, check for degrees of freedom. From the talk — Matt Harrington
Build the checklist into wherever you already keep your protocol templates. A single line at the top: "DOF count = ___ (must be at least 1)." Make yourself write the number before you save the file. It is a five-second habit that doubles as documentation. If anyone ever asks how you check for ethical assent, point at the number.
For weekly review, batch it. Pick a slow hour. Pull the protocols you touched that week. Run the count on each one. Anything that came in at zero gets flagged for rewrite before the next session. That is it. No new form, no new software, just a number on a line.
What to do when a protocol has unavoidable zero DOF#
Some situations have no second option. A safety protocol for elopement might have one allowed response because the alternative is the kid running into a parking lot. A medical compliance protocol for a kid with a swallow risk might only have one safe path. These exist. Pretending they do not is worse than naming them.
When DOF is honestly zero, document it. Write down why. Write down what reinforcers you tried to layer in to make the one available option more tolerable. Write down what the client gets after compliance that they would not get otherwise. Then write down the plan to move toward one degree of freedom as soon as it is safe to do so.
Zero DOF is not always a failure. Zero DOF without a plan to get to one is. The audit is not "are you ever at zero." It is "do you know when you are at zero, and do you have a path off of it."
Aim for one. Push for two. Why the floor matters.#
One degree of freedom is the floor. Two is the goal. Three or more is rare and usually a sign you are confusing options with reinforcers again. The reason one is the floor is simple: anything below it is no choice at all, and the BACB Ethics Code expects choice wherever it is reasonable to provide it. The reason two is the goal is harder: with two real options, the client gets the experience of switching. They learn that their preference matters in the room, not just in the assessment. That is how assent stops being a checkbox and starts being a habit.
Here is the story Matt shared on the call. He was about to push a protocol change he thought was solid. Before he hit send, he ran his own audit on the new contingency. The check showed that the way he had set it up actually removed one of the choices the client had under the prior version. He had flipped the degrees of freedom from one to zero inside one specific circumstance. He caught it the night before the technician was supposed to run it. If I had pushed that protocol live, the kid would have spent a week inside a contingency that looked like choice and was not. The technician would have collected clean data on a broken plan. The data would have looked fine because the kid would have picked the only working option every time. The whole thing would have looked like a success until someone with fresh eyes ran the count.
The pre-push check caught it because the formula is small enough to do at the end of a long day. That is the only reason it works.
Frequently asked questions#
Is degrees of freedom from non-linear contingency analysis required by the BACB code?
No, the formula itself is not named in the code. But the code does require choice and assent where reasonable, and the formula is one of the cleanest ways to check whether the choice you wrote down is real. Use it as your method, not as the rule itself.
Can a single-option emergency procedure ever be ethical under this framework?
Yes. Zero DOF is acceptable when safety leaves no second option. The framework asks you to name the zero, document the reason, and write a plan to move to one degree of freedom as soon as the situation allows. The problem is unflagged zero DOF, not all zero DOF.
How do degrees of freedom relate to the matching law?
The matching law says responding distributes across options in proportion to the reinforcement each option produces. Degrees of freedom asks the upstream question: are the options producing reinforcement in the first place. If N minus one is zero, matching has nothing to balance. Run the DOF audit first, then look at allocation.
Watch the full talk and bring the audit to your next protocol review#
If you want the long version of the formula with the audit walked through on a real case, the full CEU sits inside the Analyzing Assent and Taking Data course. It is two ethics CEUs and it pairs well with the assent data collection page and the operational definition page linked below. Run the audit on one protocol this week. Write the DOF number at the top of the file. See what you catch.