Every operator we talk to wants the same thing. One screen that shows the state of the business across systems, with the ability to ask a question and get an answer that does not require a meeting. The label on the screen varies. Single pane of glass. Operations dashboard. Executive cockpit. Command center. The architecture underneath does not.

What does vary is the cost. We have priced single pane of glass deployments at $25,000 and at $400,000, and the difference is rarely the front end. It is the layers behind it. Knowing which layers exist, what they do, and which tools fit at which price point is the difference between a dashboard that shows real numbers and a dashboard that shows yesterday's numbers in a slightly nicer chart.

Layer 1: Identity and Auth

The bottom of the stack is who is allowed to see what. This is not glamorous and it is not optional. If your operations dashboard surfaces compensation data, customer revenue, and project margin, the access control layer determines whether that data can leave the building.

Three options dominate. Cloudflare Zero Trust is our default for mid-market deployments. It sits in front of the dashboard, validates identity against your Microsoft Entra ID or Google Workspace tenant, and enforces device posture and IP rules. Microsoft Entra ID alone, when paired with Conditional Access policies, covers most M365 shops without an additional layer. Okta is the right answer when the organization already has Okta and the security team has standardized on it.

Cost economics on this layer are flat. Cloudflare Zero Trust is free for small teams and runs $7 per user per month at scale. Entra ID is bundled into M365 licensing most teams already pay. Okta is the most expensive option at $4 to $15 per user per month, but it earns its keep when you have 50 plus apps to integrate.

Layer 2: Connectors

The second layer reaches into your business systems and brings data out. This is where most dashboards either work or fail, because the connector layer is where reality meets API documentation.

We use three patterns depending on the source system. REST and GraphQL pulls handle most modern SaaS. Salesforce, HubSpot, NetSuite, QuickBooks, Lawcus, RingCentral, and Slack all expose well-documented endpoints with OAuth, rate limits in the thousands per minute, and webhook support for change events. Native SDKs handle the cases where the API is fragile or undocumented (think older on-prem systems and a handful of legacy ERPs). MCP servers, the emerging standard from Anthropic, handle cases where the AI reasoning layer above wants to call into systems directly.

The connector layer should be stateless and observable. Every pull is logged, every webhook is retried, every transformation has a schema. If you cannot answer "where did this number come from" in under a minute, the connector layer is undermining everything above it.

Cost economics: Cloudflare Workers at $5 per month plus per-invocation costs handles 95% of mid-market connector workloads. Heavier deployments use a small managed Postgres or D1 database for state and audit ($25 to $200 per month). The expensive case is when a system requires a dedicated integration platform license, which we generally avoid (see our middleware versus custom analysis).

Layer 3: Semantic Data Layer

This is the layer most operators have not heard about and the layer that determines whether the dashboard tells the truth. Raw data from Salesforce, NetSuite, and QuickBooks does not agree. Salesforce calls a deal an Opportunity. NetSuite calls it a Sales Order. QuickBooks calls it an Invoice. They reference the same customer with three different identifiers. They define "won" differently.

The semantic data layer reconciles these definitions into a single, queryable model. When the CFO asks "what is our pipeline by region," the layer knows that pipeline pulls from Salesforce Opportunity, that region maps from a custom field on Account, and that the dollar amount excludes opportunities flagged as renewals to avoid double counting.

Three tools cover most of the market. Microsoft Power BI semantic models are the right answer when the organization is M365-heavy and the data volumes are reasonable. dbt running against a warehouse like Snowflake, BigQuery, or Postgres is the right answer when transformations are complex and the team has SQL fluency. Custom semantic layers built on top of a small data warehouse are the right answer when the model needs to support AI reasoning queries that fall outside the BI tool's expressive range.

Cost economics scale with data volume. A Power BI Pro deployment with a semantic model runs $10 per user per month plus storage. dbt Cloud starts at $100 per developer per month. A custom semantic layer on Cloudflare D1 or a small Postgres instance runs $50 to $300 per month. The hidden cost on this layer is the human time to maintain definitions; budget for one quarterly review per business unit.

Layer 4: AI Reasoning

Layer 4 is what makes the dashboard answer questions instead of display them. Without this layer, you have a faster BI tool. With this layer, you have a tool that responds to "show me deals at risk this quarter and explain why" with a list and a paragraph and a source citation per item.

The reasoning layer is a model plus a prompt plus a set of tool calls into the layers below. Anthropic Claude Sonnet handles most enterprise reasoning workloads where reliability and citation behavior matter. GPT-4o is the right answer when the workload demands the absolute fastest response time or specialized image reasoning. Microsoft Copilot Studio is the right answer when the team is M365-native and wants the agent to live in Teams, Word, and Excel without additional integration work.

$50 to $1,200
Per month range for the AI reasoning layer of a typical mid-market operations dashboard, depending on query volume, model selection, and whether you cache the heavy lifts.

Cost economics on this layer are usage-based and surprisingly forgiving. A 50-person organization asking 200 questions per day across the dashboard, with prompt caching enabled, lands well under $500 per month for Claude Sonnet. The expensive case is unbounded query depth, which is why we constrain the agent to specific tools and specific data scopes.

Layer 5: Role-Based UI

The top of the stack is what the user sees. Most operators jump here first, which is why most dashboards fail. The UI layer is the easiest to redo and the layer that benefits most from having the four layers below it solid.

The patterns we deploy are React applications hosted on Cloudflare Pages with the dashboard frame, role-aware modules, and embedded chat. We use Tailwind for styling because it lets us iterate UI changes in days instead of weeks. The role layer routes a CFO to financial views, a project manager to project views, and a CEO to a cross-cutting executive view, all with the same backend.

Cost economics here depend on customization scope. A standard role-based UI on top of an existing data model runs $15,000 to $40,000 to build, with hosting at near zero on Cloudflare Pages. Heavily custom dashboards with complex visualizations, drag-and-drop layouts, or embedded BI tooling run higher.

Putting the Stack Together

The mistake we see most often is starting from the top. A team buys a dashboard product, struggles with the connector layer, gets stuck on semantic definitions, and ends up with a faster way to view yesterday's numbers. The stack works the other direction. Identity first, then connectors, then semantic, then reasoning, then UI. Each layer constrains the one above. Skipping a layer means rebuilding the layer above when you eventually fix the foundation.

For a deeper look at how this architecture comes together in production, see our unified operations dashboard page. For a real deployment of the same stack at an LA-area distributor, see our executive intelligence case study.

The output is the same on every deployment. One screen. Real numbers. Questions answered with citations. The stack underneath is what determines whether the screen earns its keep.