Case Study Looping Back - Errors in Complex Circular Models
- 05:28
This video explores what to do if you model "explodes" and you can't seem to get it working again.
Downloads
No associated resources to download.
Transcript
So at the last video I said that at this point, some of you may be experiencing some quite tricky errors, and in this video I want to show you the sorts of problems that you might have.
It's quite hard to show, 'cause obviously I can't see all eventualities, but I'll show you some problems and maybe some tactics to help.
Now we built up the circular lines here and notice that I've left a switch on, and so this is still a circular model that we're looking at.
If I go to the debt tab and just grab something that I think will cause some problems and maybe introduce an error.
So I'm gonna say error and I'm gonna pretty highlight that.
You can see if I delete that and then if I get it back, okay, strange things are happening.
Now the problem I've just created has infected pretty much the entire model, okay? There are little dead ends or areas with very little dependence.
For example, you know, CapEx mainly relies on itself and so does inflation, but virtually everything has been infected by the problem I've just created.
Now, if I copy to the right, you would think that that sorts the error out, but it hasn't, and that's because what I've created is a kinda logic trap and really the most problematic area of the entire model now is these two circular lines. Really, if we think what's happening conceptually, what's happening, if we reduce the model to these four points, which I know it's not four points, but this is really just a teaching aid.
Imagine I introduce an error to 0.1.
That error will create the similar area in 0.2, 0.3 and 0.4.
Now these errors are here and Excel is registering them as errors.
So for example, value errors or NAS or refs or whatever, or the problem you've got today.
Now let's say I fix, okay, so I rebuild 0.1.
Now you would expect that to sort out the errors in 0.2, three and four, but effectively the error in 0.4 is just waiting in line and it will be reintroduced in my rebuilt 0.1, the moment I rebuild it.
And that's what we just saw here effectively.
So when I rebuilt this, uh, unfortunately I let the old error back in and I can't see to get rid of it.
Now, one thing you can do, and it's a little bit of a brute force way of doing it, is you can say, tell you what, I'll remove one of the nodes, so I will delete and then control Z.
And if I'm really lucky, that will remove the error here and it will remove the regeneration of the errors because it will be a kind of circuit breaker.
Now, let's see if it works here.
So I'm going delete and then control Z.
It didn't work and that's because the error is still Elsewhere in the model and it is probably being cycled through the model through these lines here.
So what I'm gonna do is I'm going to say conceptually, okay, let's create a circuit breaker.
Let's throw the circuit breaker, okay? And what that will do is it will sever the link temporarily between the areas between these points.
Then I'll rebuild and then I'll see if this thing will work.
Okay, so I'm going to go here, turn it off, take a look.
See everything's behaving itself and that's because the error has almost been chased out of the system.
This rebuilt point is now behaving itself.
If I now flip the switch again, everything is behaving itself and that's because I threw the circuit breaker.
The moment I threw the circuit breaker, everything worked its way out and the error couldn't just keep cycling endlessly throughout my model.
There are two ways to achieve the circuit break.
Like I said, one is just to delete the tab.
The problem is in a highly complex model like this one, there may be more than one route.
So it may not be as simple as you know, these four points here, you may end up with a situation where 0.3 and 4 have two ways of talking to each other, and by simply severing this one, you are left with this one.
And so it may not work. So probably the best way to do it is to make sure that all of the lines that you know are circular, have proper switches attached.
Then when you've got problems, you can flip the switch rebuild, and then flip the switch again.
Another case for one of two things.
Either number one, build circular switches around known circularity, or if your outfit or company prefers it, avoid circularity either by the use of macros or by perhaps simpler assumptions such as opening interest as opposed to average interest.