← All writing

Why Snowflake + Streamlit beats Power BI and Tableau for investment analytics

When the question is “how should an investment team make decisions with data,” the traditional BI tools are answering a different question.

7 min read

The default analytics stack at most large firms is still Tableau or Power BI on top of a data warehouse. Both tools are good. Both have huge user bases. Both have produced enormous business value across industries. And both, for investment analytics specifically, are answering a different question than the one investment teams are actually asking.

The question Tableau and Power BI optimize for is: “how do I let a business user explore a dataset and produce a chart they can show to a stakeholder?” That’s a real question. It’s the right question for a marketing team trying to understand campaign performance, an operations team monitoring SLAs, or a finance team building variance reports.

It is not the question a portfolio manager is asking. The question a portfolio manager is asking is closer to: “given the position I’m holding, the macro environment I’m in, and the model my firm has trained on twenty years of similar conditions, what should I do in the next ten minutes?”

Those are different questions. They want different tools.

The dashboard mindset vs the data product mindset

Tableau and Power BI are built around dashboards. A dashboard is a fixed view of a dataset, refreshed on a schedule, designed to be looked at. The user is the audience, not the builder. The friction between “I see the dashboard” and “I want to see something different” is high — at best, a filter dropdown the dashboard author thought to expose; at worst, a Slack message to the analytics team and a wait of three days.

The investment workflow needs the opposite. It needs the friction between “I see something” and “I want to see something different” to be near zero. The portfolio manager needs to slice the same data fifteen different ways in ten minutes, then export the slice that mattered, then ask a question that nobody anticipated when the dashboard was built. The dashboard mindset breaks down here. The data product mindset works.

Where Streamlit fits

Streamlit is built around the opposite assumption. It’s not a dashboard tool; it’s a way to wrap a Python script in a web UI, fast. That sounds small. It isn’t. It means anything you can express in Python — any model, any pull from Snowflake, any custom plot, any optimization, any backtest — can become an interactive tool that the desk uses without three weeks of dashboard authoring.

For investment analytics, this is the right fit because the business logic itself is the product. The relative-value model isn’t a chart; it’s a calculation, with assumptions, that produces a recommendation. The exposure attribution isn’t a pivot table; it’s a function over the portfolio that handles the sixty edge cases nobody documents. Streamlit lets you ship the calculation as an interactive tool. Tableau and Power BI make you ship a flat representation of the calculation’s output.

The dbt layer makes it possible

The other half of the stack is dbt. dbt turns SQL transformations into a versioned, tested, documented model layer that sits between the warehouse and the consumers. With dbt, the Streamlit app isn’t writing raw SQL against Snowflake — it’s calling a model that’s been reviewed, tested, and documented, with a clear lineage back to the source tables.

This matters because the failure mode of “everyone writes ad-hoc SQL” is exactly the failure mode investment teams can’t tolerate. A relative-value calculation that disagrees between two analysts is worse than no calculation. With dbt as the source of truth, the analysts and the apps and the dashboards (yes, you still ship some dashboards) all read from the same model. The arguments are about the model, not about whose query is right.

When Tableau is still the answer

I’m not making the case that Tableau and Power BI should be deleted. They’re the right tool for the audience-facing reports — the Investment Committee deck, the quarterly board summary, the static views that get printed and emailed to people who will never click a filter. Use them for that. They’re great at it.

The case I’m making is narrower: when the user is an investment professional who needs to interact with data the way a quant interacts with a notebook, the BI tools are the wrong abstraction. Streamlit on a dbt-modeled Snowflake warehouse is closer to what the work actually needs.

The bonus is that this stack is also where the AI work fits naturally. The same model layer that powers the Streamlit app powers the ML models, the evaluation pipelines, and the AI-assisted features. A dashboard tool can’t host any of that. A Python framework can.

That’s the main argument. The rest is implementation.