Learn IBCS by Playing: A Jump & Run Rayfin App in Fabric

Let’s be honest: IBCS rules are not exactly a page-turner. “Use solid fill for actuals, outlined for plan, hatched for forecast, light grey for previous year.” It’s the right way to build reports — but reading a 200-page standard is how you lose an audience in the first five minutes.

So I tried something different. The idea came from Tim Ebner: what if you could gamify learning the IBCS rules instead of memorising them? Credit where it’s due — that one suggestion is what turned a dry standard into the little game below.

Meet the IBCS Trainer

The IBCS Trainer is a little browser platformer — think Super Mario, but every enemy is a badly-designed chart and every coin is a chart done the IBCS way. You run, you jump, and you learn the SUCCESS rules one level at a time without ever opening a PDF.

Go on — have a go right here. Click the game, then use the arrow keys to move and jump:

If the embed does not load, open the game directly: https://kornalexander.github.io/ibcs-trainer/

The core loop is dead simple:

  • Stomp the bad charts. Pie charts, rainbow-coloured bars, axis breaks, giant “big number” tiles — they walk toward you as enemies. Jump on them and they explode.
  • Collect the good charts. The correct IBCS notation walks across the level as a collectible. Grab it for points.

By the time you’ve cleared a level, your hands already “know” the rule — because you spent two minutes acting it out instead of reading about it.

One rule per level

Each level teaches exactly one idea, in roughly the order you’d actually learn IBCS:

  • Pie vs. column. Pies explode; columns and lines are what you collect. Time series belong in columns and lines, not slices.
  • Solid = actual, outlined = plan, hatched = forecast, light grey = previous year. The notation that lets anyone read a chart in any language.
  • Show the deviation, not just the big number. A huge headline figure is the enemy; the variance bar is the prize.
  • MECE. Overlapping, double-counted categories get stomped; clean, mutually-exclusive structures get collected.
  • Simplify. Chart junk, gridlines and decoration are the bad guys. Clean beats clever.
  • No axis breaks. Truncated axes lie — so they’re enemies too.

There’s a small twist for the IBCS purists reading this: the hero isn’t a plumber, it’s a data analyst, and the levels are themed around real charting decisions you make every single day.

Why bother gamifying it?

This was Tim Ebner’s idea, and it holds up for two reasons. First, retention. People remember what they did, not what they read. Stomping a pie chart is a far stickier memory than the sentence “avoid pie charts for time series.”

Second, reach. A game is something you can hand to a colleague who has never heard the word IBCS, and they’ll absorb half the standard before they even realise they’re being trained. That’s a much easier sell than a workshop invite.

The quietly big part: Rayfin Apps in Fabric

Here’s the bit that genuinely got me excited as a data platform person. The whole game runs as a Rayfin app hosted inside Microsoft Fabric.

If you haven’t come across Rayfin yet: it’s a backend-as-a-service that lets you ship a real, interactive web app — authentication, a typed data layer, static hosting — directly as a Fabric item. One command (rayfin up) builds it, automatically provisions a full backend — including a database in Fabric — wires up Entra/Fabric auth, and gives you a live URL. No separate App Service, no standalone database to babysit, no infrastructure ticket. You write the app; Rayfin stands up everything behind it.

Why is that a big deal?

  • Apps live where your data lives. Fabric stops being “just reports and pipelines” and becomes a place you can host actual applications next to your lakehouse and semantic models.
  • Governance comes for free. The app inherits Fabric workspace permissions and Entra identity. Your IT and security teams already know how to govern it.
  • It’s genuinely fast to ship. The IBCS Trainer went from “single HTML file” to “authenticated app live in a Fabric workspace, persisting every play-through to a typed entity” in a single deploy command.

That last bit deserves a moment. Because Rayfin provisions the backend for you, every game stat is saved automatically into a database in Fabric — your score, the level you reached, deaths, charts collected, how long you played, the lot. When you hit game-over, the app writes the whole run to a typed GameStats entity in the background. No copy-paste, no manual save step.

And because it lands in a real Fabric database, the data is trivially queryable afterwards. Since each run is tied to the signed-in Entra identity, I can answer questions like which users played, how often, and for how long with a single SQL query — no extra plumbing. What started as a teaching game is suddenly a fully tracked usage dataset sitting right next to the rest of my Fabric estate, ready for a Power BI report.

If you’ve read my earlier Jump & Run post, that’s the part that finally clicked. There, saving a score meant copying JSON out of the game and pasting it into a notebook cell by hand — because Fabric’s sandboxed displayHTML() iframe blocks everything. With Rayfin, the app is the backend: the JavaScript just calls the typed data layer directly, and the playthrough lands in storage. The thing I was hacking around for months became a non-issue.

For me that last point is the headline. Fabric is increasingly not just where you analyse data — it’s where you can build and host the things people actually click on. A teaching game is a fun first example, but the same pattern works for internal tools, data-entry front-ends, and lightweight apps that used to need a whole separate stack.

One thing on my wish list: I’d love Rayfin to support metadata write-back to semantic models and Power BI reports. Imagine a little Rayfin app that lets a steward edit measure descriptions, fix display folders, or tweak report metadata, and writes those changes straight back into the model or report definition. Today that isn’t supported — Rayfin gives you a database and an app, but not a write path into semantic-model or report metadata. If that ever lands, the line between “lightweight app” and “governed authoring tool” gets very blurry, in the best way.

Try it

The IBCS Trainer is a small, slightly silly project with a serious goal: make best-practice reporting muscle memory instead of homework. If you’ve ever struggled to get a team to care about chart standards, handing them a game beats handing them a style guide.

And if you’re building on Fabric, take Rayfin for a spin. The gap between “I have an idea for an app” and “it’s live and governed in my tenant” just got a lot smaller.

Leave a Reply