Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

anaplan-impact-analysis

anaplan-impact-analysis

licence runs in the browser

Click a line item and see everything that breaks if you change it. One HTML file that runs in your browser, so the model export never leaves your machine.

Module list with a selected line item, impacted items highlighted, impact count in the side panel

Try it in three steps

  1. In Anaplan go to Modules > Line Items and export the grid to CSV.
  2. Open the hosted copy at https://klameer.github.io/anaplan-impact-analysis/ or open index.html from a clone of this repo.
  3. Upload the CSV and start clicking.

No model to hand? docs/sample_line_items.csv is a small fictional export. That is what the screenshot shows.

Why I built it

The question that stalls every Anaplan change is "what else uses this?". Anaplan shows the direct references of one line item at a time. It will not show you the chain three modules downstream, and it will not give you a number to put in a change request. So model builders trace formulas by hand, or push the change and watch what goes red.

This builds the whole dependency graph from one export and lets you walk it in either direction.

What it does

  • Parses every formula and links each line item to the line items it references
  • Click any module or line item to highlight what depends on it (the blast radius of a change), what it depends on (the inputs feeding it), or both
  • The side panel shows the impact count and the affected modules
  • "Show only impacted" collapses a large model to the relevant part
  • Search across modules and line items

Everything runs client side (React, PapaParse and Tailwind from CDN). Nothing is uploaded to a server, which is why I am comfortable using it on client models. The hosted copy is a static page on GitHub Pages and behaves the same way.

How the graph is built

The tool strips Anaplan keywords and operators out of each formula and matches the remaining names against the line item list. It is a text match, which keeps it fast and dependency free, and that is where its limits come from.

What it does not do

  • Line items with the same name in different modules are treated as one node, so a common name like Total can join chains that are not really connected.
  • Only line items with a formula are in the graph. Plain input line items are not shown, so a change to an input has no blast radius here.
  • It reads one export at a time. It does not know about lists, actions, imports or other models.
  • It has not been checked against Anaplan's own Referenced By column, so treat the count as a guide, not a figure for an audit.

Good enough to answer "should I worry about this change?" in ten seconds. When you need the exact cell, the Anaplan referenced-by view is still the place.

If you need the exact graph, use anaplan-grammar. It parses each formula properly, resolves names to the right module, and its graph has been scored against Anaplan's Referenced By column on production models. anaplan-estate wraps that in an offline change-impact explorer for a whole estate. This repo stays as the zero-install version.

Related

  • anaplan-grammar: a parser for the Anaplan formula language, with a dependency graph, diff, lint and health report from the same exports.
  • anaplan-estate: an action plan and change-impact explorer for a whole estate of models.
  • anaplan-diff: compare two exports and list what changed.
  • anaplan-api-starter: pull the export by API.

MIT licensed. I'm Karim Lameer, Master Anaplanner and CIMA-qualified accountant. I write about this at codelessops.com.

About

Click an Anaplan line item and see everything that breaks if you change it. One HTML file, runs in the browser.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages