# MicroStrategy Integration

## Table of Contents

* [Overview](#overview)
* [Display Templates](#display-templates)
  * [Three-Tier Template](#three-tier-template)
  * [Single-Tier Template](#single-tier-template)
  * [Report-Only Template](#report-only-template)
  * [Data Download Template](#data-download-template)
  * [Native Embed Template](#native-embed-template)
* [Filter Management](#filter-management)
  * [Page-Level Filters](#page-level-filters)
  * [Dossier Filters](#dossier-filters)
  * [Cascading Filters](#cascading-filters)
  * [Static Value Filters](#static-value-filters)
  * [Discrete Value Filters](#discrete-value-filters)
* [Public vs Authenticated Access](#public-vs-authenticated-access)
* [Expanded View and Print](#expanded-view-and-print)
* [About Pages](#about-pages)
* [Common Scenarios](#common-scenarios)
* [Troubleshooting](#troubleshooting)

## Overview

The MicroStrategy integration brings interactive reports and dashboards from MicroStrategy directly into the OtisEd portal. Rather than sending users to a separate reporting system, reports appear within the portal's familiar navigation — styled consistently with the rest of the site and filtered automatically based on who is logged in and which district or school they belong to.

The integration supports several ways to present reports depending on how much navigation structure is needed. A large report collection with multiple topic areas can use the full three-tier navigation (top-level topics, sub-sections, and individual reports). A single focused report can be presented alone on a page. Data files that users need to download can be organized in an expandable list. All of these options share the same filter infrastructure that ensures users see data relevant to their organization.

## Display Templates

### Three-Tier Template

The three-tier template is designed for comprehensive report collections that cover many subject areas. It presents a collapsible left-hand sidebar with two levels of navigation: top-level topic groups and the sub-sections within each topic. Selecting a sub-section loads the reports associated with it in the main content area.

The sidebar automatically adapts to the screen size. On desktop screens it appears alongside the report content. On mobile and tablet screens the sidebar is hidden; instead, a toggle button appears next to the current section title and opens a dedicated section menu overlay. See [Mobile Report Page Experience](/guides/mobile-report-experience.md) for a full walkthrough of the mobile navigation.

When you select a different section, the current report is cleanly unloaded before the new one appears. This prevents multiple reports from running at the same time and keeps the page responsive.

The three-tier template also supports a "consolidated" display mode, where all reports within a group are shown together on a single scrollable page rather than switching between them with tabs. This is useful when several related visualizations should be reviewed together.

The page title shown at the top of the content area reflects the currently applied filter context. If a specific school or district is selected in the page filters, that name appears as a prefix in the section navigation, giving users a constant reminder of whose data they are viewing.

### Single-Tier Template

The single-tier template is a simpler layout suited for pages where all the reports belong to a single subject area with no need for deep section navigation. Instead of a sidebar, the available report groups appear as tabs just above the report content.

If there is only one group configured for the page, the tab row is hidden entirely and the report is presented full-width without any navigation chrome.

The single-tier template supports the same expand and print buttons as the three-tier template, and it respects the same filter configuration.

### Report-Only Template

The report-only template presents a single, standalone report on the page with no section navigation. It is intended for situations where a report is linked to directly — for example, from a dashboard card or an external link — and no additional navigation context is needed.

The report-only template still loads page-level filters when the page has them configured. If no filters are configured for the page, the report loads directly without waiting for filter data, which speeds up the initial display.

Like other templates, the report-only view supports the expand button (to open the report in a larger window) and the print button (to open a print-optimized version). Both buttons are hidden automatically when the report has no data to display.

### Data Download Template

The data download template replaces the interactive report display with a navigable tree of downloadable data files. Users can expand and collapse category groups to find the dataset they need, then download individual files.

The availability of datasets in the download template is tied to the active academic term. If the current term is not enabled for datasets, the page displays a message directing users to a historical datasets archive instead of showing the file tree.

The breadcrumb trail at the top of the page reflects the current academic year, so users always know which year's data they are browsing.

### Native Embed Template

The native embedding template renders individual MicroStrategy visualizations directly inside the portal page, rather than embedding a full MicroStrategy dossier in an iframe. Each visualization is rendered in its own container on the page, and multiple visualizations from the same dossier can appear side by side or stacked.

This template allows the portal's own filter controls to apply to the embedded visualizations. Filters defined at the page level are matched to the corresponding filter panels inside the dossier by name, giving users a consistent filtering experience that uses the portal's standard filter UI rather than MicroStrategy's.

Visualizations can be individually configured as hidden so that they exist in the dossier definition but do not appear on the page. This is useful when some visualizations serve as intermediates that drive data for other visible panels.

## Filter Management

Filters in the MicroStrategy integration work at two levels: filters that appear at the top of the page and control which organization's data is shown, and filters that appear within the report itself and let users slice the data by topic-specific dimensions.

### Page-Level Filters

Page-level filters typically include a district selector and a school selector. These are loaded before the report is displayed, which ensures the report receives the correct organization context from the moment it appears. Changing a page-level filter reloads the report with the new context.

The filter values available to each user are restricted based on their organization membership. A district-level user sees all schools within their district. A state-level user sees all districts and schools. Users do not see options outside their access scope.

### Dossier Filters

Dossier filters are the interactive filter panels that appear inside the embedded MicroStrategy report. These allow users to narrow the data along dimensions specific to the report — for example, filtering by grade level, subject, or demographic group — without triggering a full page reload.

When a dossier filter is changed, only the affected visualizations within the report are re-queried. The page-level context (district, school, academic year) remains in place.

### Cascading Filters

Cascading filters are pairs of related filters where the values available in the second filter depend on what is selected in the first. For example, selecting a particular program type in the first filter might restrict the available program sub-categories in the second.

The portal pre-computes cascading filter values for each organization during a background configuration generation process. This pre-computation runs against MicroStrategy reports that describe the valid parent-child combinations for each district and school. The results are stored per organization and per academic term, so filter values load quickly at report view time without making live calls to MicroStrategy.

Cascading filter data is organized as a hierarchy with five levels: academic year, district, school, parent filter value, and child filter value. This structure ensures that when a user selects a parent value, only the children that are valid for their organization and the current term appear in the child filter.

### Static Value Filters

Static value filters present a fixed list of choices that is the same for all users and organizations. The list is generated once from a MicroStrategy dataset and stored in the portal's filter configuration. Because the values do not vary by organization, static filters load very quickly.

### Discrete Value Filters

Discrete value filters present a list of choices that varies by organization. Each organization has its own set of valid values, which are pre-computed from a MicroStrategy dataset that includes district and school identifiers. At report view time, the portal looks up the pre-computed values for the current user's organization and uses those to populate the filter.

The pre-computation process runs for all enabled academic terms whenever a report's filter configuration is regenerated. If a particular organization has no data for a given filter, the portal logs a warning rather than failing, and the filter for that organization will be empty.

## Public vs Authenticated Access

Most MicroStrategy reports in the portal require the user to be logged in. These authenticated reports apply organization-based filtering based on the logged-in user's profile.

Some pages are designated as public and do not require a login. Public report pages use the same three-tier layout with a left navigation sidebar and group tabs, but they are accessible to anyone who has the URL. Public pages still validate the MicroStrategy session token, but they do not restrict filter values to a specific organization.

Public pages support the same expanded view and print functionality as authenticated pages. When a public report is expanded in a new window, a close button appears to dismiss the expanded view.

## Expanded View and Print

Every report in the portal (except where explicitly disabled) offers two convenience actions in the top-right corner of the report area:

**Expand** opens the report in a new browser window at a larger size. The expanded window shows only the report content — the portal navigation, page header, and filter bar are hidden — giving the full screen to the visualization. Closing the expanded window returns the user to the original page without affecting the filter state.

**Print** opens a separate print-optimized version of the report in a new browser window. The print view waits until all report visualizations have fully loaded before triggering the browser's print dialog automatically, so the printed output captures the complete report rather than a partially loaded state. The print layout suppresses the portal navigation and filter controls so only the report content appears on the printed page.

Both buttons are automatically hidden when a report has no data to display, preventing users from printing or expanding an empty report.

You can configure individual reports or entire groups to disable either or both buttons when they are not appropriate.

## About Pages

Report pages can include one or more "about" sections alongside the regular reports. An about section displays descriptive content — explanatory text, methodology notes, data definitions, or contextual information — rather than an embedded visualization.

About sections appear in the same navigation structure as regular report groups. Selecting an about section from the sidebar or tabs shows the descriptive content in the main content area. This keeps supporting information close to the reports it describes without requiring users to visit a separate help page.

## Common Scenarios

**Viewing a school's report card:** A user selects their district from the district filter and their school from the school filter. The report refreshes to show data specific to that school. They can then navigate through sections in the left sidebar to explore different topic areas — academics, attendance, demographics — without losing their filter selections.

**Downloading data files:** A user navigates to a data download page, expands the category for the topic they need, and clicks the file for the current academic year. The file downloads directly. If the current year's data is not yet published, the page displays a link to the historical archive.

**Reviewing a report in detail:** A user clicks the expand button on a report they want to study more closely. The report opens in a new window at a larger size. When they are done, they close the window and return to the main page.

**Printing a report for a meeting:** A user applies the relevant filters, then clicks the print button. The print-optimized page opens, waits for the report to fully load, and then displays the browser print dialog. The user selects their printer and prints a clean copy of the report with no portal navigation visible.

**Using cascading filters:** A user opens a report with a two-level program filter. They select a program category from the first filter. The second filter automatically updates to show only the program sub-categories valid for that category and their school. They select a sub-category, and the report updates to show data for that specific program.

## Troubleshooting

**The report shows a "no data" message:** This typically means that the current academic term has not been enabled for this report, or that the organization has no records in the pre-computed filter data. Check with your administrator to confirm that the term is active and that data has been generated for the report.

**The filter shows no options:** If a district or school filter appears but lists no values, the filter configuration for that organization may not have been generated yet, or the organization may not have any valid values for the current term. Administrators can trigger a filter regeneration from the report administration area.

**The expand or print buttons are missing:** These buttons are hidden when a report configuration explicitly disables them, or when the report itself has flagged that it has no data to display. If you expect the buttons to be visible, confirm with your administrator that the report has data for the current filters and that the buttons have not been disabled in the report configuration.

**The sidebar shows sections but the report area is blank:** This can occur if the section navigation loads before the page filters finish initializing. The report waits for page filters to complete before displaying content. If the blank state persists after a few seconds, refreshing the page should resolve it.

**A cascading filter's child options did not update:** Cascading filter values are pre-computed for each academic term. If the parent filter was recently changed in the configuration, the child values may not reflect the new structure until an administrator regenerates the filter configuration for the affected reports.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://nimble.docs.otised.com/guides/microstrategy-integration.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
