Power BI is one of my strengths.
I have spent years with it. I know DAX. I know M. I know the data model, the relationships, the measure logic. I have built reports that ran executive reviews, supported regulatory filings, and drove operational decisions at scale. I am not someone who walked away from Power BI because it was hard.
I walked away because of what happens when you try to share it.
The whole premise of OIM is that anyone who can pull an ERP export should be able to use it. The plant manager. The shift supervisor. The reliability engineer. The executive who wants one number before a board meeting. Different people, different views of the same data, all of it accessible without calling IT.
Power BI can build all of those views. That part I had covered.
The problem is the last step. To share a Power BI report with someone in your organization, they need a license. Not a one-time install. A recurring per-user subscription. If you want them to view it in a browser, you need Power BI Pro. If you want them to embed it in something, you need Premium. The licensing tiers exist, and they are not cheap, and they are forever.
That is the SaaS loop. You build something powerful, you try to share it, and suddenly you are dependent on a vendor’s pricing model to deliver value to your own organization. The tool that was supposed to solve the problem becomes a new dependency.
That is the antithesis of what OIM is supposed to be.
I looked at Streamlit. Fast to build, Python-native, good for internal tools. The problem is the same one in a different wrapper. Self-hosting Streamlit means infrastructure. Streamlit Cloud means another SaaS dependency. Neither option fits a manufacturer who does not want to manage servers or cloud accounts.
Dash landed differently.
Dash is a Python framework for building web applications. It runs locally. No server required beyond the machine it is installed on. No license. No cloud account. You run it, you open a browser, and the report is there. When you are done, you close it. There is nothing to manage, nothing to subscribe to, nothing to renew.
The architecture fit the promise. Local compute, local data, local delivery. A plant manager opens a browser on the shop floor PC and sees their numbers. No IT ticket. No license check. No login to a third-party platform.
Dash has a learning curve. It is not drag-and-drop. You write Python. You define layouts in code. Callbacks wire the interactivity together. For someone whose background is Power BI, that is a real shift.
But the shift is worth it. The report logic is in code, which means it is version-controlled, reviewable, and repeatable. The layout is explicit, which means it does exactly what you tell it to do. And the delivery model is local, which means it works for every customer regardless of what software stack they are running.
Power BI is a great tool for the right problem. The right problem is internal reporting inside an organization that already has Microsoft licensing.
OIM’s problem is different. The goal is to give any manufacturer a complete operations intelligence layer from a single CSV drop, with no new infrastructure, no new subscriptions, and no dependency on a vendor’s pricing decisions.
For that problem, the tool choice was obvious.
Build for the constraint that actually matters. For OIM, that constraint was always delivery, not analysis.