How does Power BI actually get data out of Infinite Campus?
Through one of the tools the SIS already ships, and the first job of the engagement is deciding which one your district can actually use. Microsoft publishes no Campus connector, so nothing here is a two-click setup: each route is a different permission conversation, returns a different shape, and supports a different refresh cadence. We establish which one your hosting arrangement and contract allow before designing around it, and we confirm the method in the scope estimate before any hours are spent.
Infinite Campus is unusually direct about this. Its own guidance for districts integrating third-party applications says the SIS has built-in tools to offer API setup, Ad hoc Reporting options to filter specific data sets, and a Data Extract Utility for automated data extraction — and that anything beyond those gets scoped by its Technical Services team (opens in new tab) as a fee-for-service engagement. That is worth reading twice before a project plan assumes a live database connection exists. Where the extract lands as files, we stage them into a store you control and refresh from there, using Power BI dataflows (opens in new tab) or your own storage, so the model never depends on a file someone forgot to drop.
Routes out of Infinite Campus compared — what each one was built for
| Route |
What it is and what it returns |
When we use it |
| Ad hoc Reporting export |
A saved filter defining fields and population, exported as a data set from inside Campus. Your staff already build these for state reporting, so the tool and the permissions are familiar |
For scoping and for the first build, because the filter is the specification. We write it to the fields the reporting needs and nothing else, so the approval conversation is short and auditable |
| Data Extract Utility |
Campus’s automated extract tool: scheduled flat files transferred off Campus servers for loading into third-party software |
Our default for the ongoing feed. It is the only built-in route designed to run unattended, which is what a nightly refresh needs. We land the files in a store you own so multi-year history accumulates instead of being overwritten |
| OneRoster API |
Campus’s implementation of the IMS Global OneRoster specification, letting a credentialed third-party system retrieve roster and section data plus assignments, grades and scores where enabled |
Where the reporting question really is roster, section and gradebook shaped. We say plainly when it is not: enrollment spans, attendance history and intervention plans are outside what it was designed to carry |
| State reporting extracts and published filters |
The files your team already submits to the state, plus the ad hoc filters state agencies publish for districts — Kentucky’s KSIS programme is a public example |
As a reconciliation source on every engagement, and as the pragmatic fallback where nothing else is open. Someone has already validated those files, which makes them the cheapest way to prove the dashboard agrees with the submission |
| Campus Analytics Suite or in-SIS dashboards |
The vendor’s own premium analytics — Early Warning, Campus Insights and Premium Surveys — which Infinite Campus describes on its Campus Analytics Suite page (opens in new tab) as built into the SIS with no imports, exports or synchronization necessary; third-party products such as CCS DataViz (opens in new tab), whose dashboards appear inside Infinite Campus, sit in the same place |
Always our first question. If your need is pre-built views for staff working inside Campus, that is the cheaper answer and we will say so. It stops being the answer when the report has to include data the SIS cannot see |
| A governed copy someone already landed |
Campus data an internal pipeline, a regional service agency or a state warehouse already lands somewhere you can read |
Asked about before anything else. If a trustworthy copy exists we model on it and skip the extraction work entirely, which is usually the fastest route to a report anyone will trust |
One consequence of that list deserves naming early, because it reshapes projects. Many districts do not run their own Campus instance at all — a state agency does. Montana’s Office of Public Instruction operates Infinite Campus as its statewide student information system (opens in new tab), through which districts submit required staff, student and course information, and the Kentucky Department of Education runs KSIS the same way, publishing reference materials and state-published ad hoc filters (opens in new tab) for its districts. In those states the database is not yours to connect to, and the route is whichever extract the hosting arrangement allows. That is a constraint we design inside, not a reason the project cannot happen.
What does the Campus extract carry, and what does the model have to work out?
Four areas of the SIS do most of the work, and each one arrives at a grain that is not the grain the dashboard needs. That gap — between what Campus stores and what a cabinet asks for — is most of the build. The table below is the set of derivations that come up on nearly every district engagement, written as documented DAX measures over a star schema with a school calendar rather than as one-off report filters.
What the SIS extract carries, and what the semantic model has to add
| Reporting need |
What Infinite Campus holds |
What the model adds |
| Attendance and chronic absence |
Attendance records against a school calendar, with its own in-session days, period structure and attendance codes that carry a presence meaning |
One attendance fact with day and period grain reconciled, absences classified consistently, and the rate expressed against days enrolled rather than days in the year — which is what makes a chronic absence flag defensible |
| Enrollment and mobility |
Dated enrollment records per student, school, calendar and year, so transfers and re-entries leave more than one record for one child |
Point-in-time headcount, membership days, and entries and withdrawals as separate measures, so a re-enrolled student is one child with two records rather than two children |
| Assessment and proficiency |
Results recorded against a test structure, with score fields and result types that differ by assessment and by the year it was administered |
A stated proficiency rule per assessment, growth measured only where the same test is comparable across years, and results joined to attendance and intervention on the same student key |
| Intervention and MTSS |
RTI plans with a plan type, content area and intervention tier, plus the progress monitoring recorded against them |
A declared grain — plan, tier period or observation — so “students on a plan”, “plans open” and “progress checks recorded” stop being three different counts of the same thing |
| Behavior |
Behavior events recorded per school under the codes and resolutions your district configured, used differently from building to building |
One behavior fact at a declared grain, so referrals, resolutions and days of instruction lost are separable — and comparable across schools that record them differently |
| Site spending (MUNIS or your ERP) |
Nothing — it lives in the finance system, on its own site, fund and object codes, and on a fiscal year rather than a school year |
A conformed school dimension with an agreed mapping table and a shared calendar, so per-pupil spending sits next to enrollment and results without anyone re-keying a spreadsheet |
| Multi-year trend |
Prior years behind school, calendar and year keys that change as schools open, merge or recode, and behind extracts that are overwritten unless someone keeps them |
A history store you own with slowly changing school and student dimensions, so last year’s numbers still reconcile after this year’s recode |
The finance join is worth dwelling on, because it is the one thing no SIS-resident tool can do and the reason most of these engagements exist. A consultancy case study for the Buffalo School District describes the same pattern from the outside: the engagement analyzed data sources including Infinite Campus and MUNIS and connected those systems to Power BI (opens in new tab) to deliver attendance and school-climate reporting with drill-down to district, school, grade and student. That is the work: not two systems side by side, but one conformed school dimension, one shared calendar, and an agreed mapping between finance site codes and Campus school identifiers. The modeling discipline underneath it — one date table, conformed dimensions, measures rather than calculated columns — follows Microsoft’s star schema guidance (opens in new tab) and is described on our data modeling and DAX page.
What belongs on the page — which enrollment, attendance and assessment metrics a district should actually track, how chronic absenteeism is defined, and how per-school spending is framed for a board — is covered on our Power BI dashboards for school districts page, and we deliberately do not restate it here. This page is about getting those records out of Infinite Campus correctly and keeping them coming. Districts running the other major K-12 SIS will find the equivalent extraction detail on our PowerSchool Power BI dashboard page, and colleges and universities are a different build entirely — different buyer, different systems — covered on Power BI dashboards for higher education.
How are refresh and student-data security set up?
The model is published to your Power BI workspace and refreshed on a cadence the chosen route can sustain: for most districts an overnight extract of attendance, enrollment and assessment with a changed-date filter, not a full reload of a decade. Districts with long attendance histories get incremental refresh (opens in new tab) so each nightly run touches only the days that changed, inside Microsoft’s documented data refresh limits (opens in new tab). Where a file drop or a database sits inside your network, the on-premises data gateway (opens in new tab) runs on a server your IT team controls, with credentials they hold.
Student records carry obligations that pay data does not. Visibility is enforced by row-level security in the Power BI service (opens in new tab), mapped from accounts to schools, grade spans or roles, so a principal opens their own campus, an MTSS lead sees their caseload and the cabinet sees the district — enforced by the model rather than by who was sent which file. Our walkthrough of a Power BI row-level security setup shows the roles and the test steps. Those FERPA obligations stay with the district, and the US Department of Education’s Student Privacy Policy Office (opens in new tab) is the authoritative reference; what we do is build to the access rules your student data privacy officer sets, test the roles against real accounts before go-live, and document who can see what. Where a subgroup is small enough that a single row identifies a child, we aggregate or suppress rather than publishing and hoping nobody drills.
What does the build cost, and how long does it take?
Prepaid Flex hours that never expire: Starter 20 hours at $125/hr ($2,500), Growth 40 hours at $115/hr ($4,600), Power 80 hours at $100/hr ($8,000), with hourly work from $100/hour on the largest block. A first build covering attendance, enrollment, assessment and intervention for a single district on one route usually fits a Starter block. Adding several years of history, reconciling to state submissions, or bringing site spending across from MUNIS typically moves it to Growth — less because of the development and more because agreeing definitions across assessment, student services and the business office takes conversation.
Most tasks ship within 3–5 business days of scope approval, and you get a scope and hours estimate before anything starts, which is what makes this purchasable against a line item rather than a procurement project. Our guide to Power BI dashboard development cost covers what moves the number, how prepaid Flex hours work explains the model in full, and custom Power BI dashboard development describes the wider service this build sits inside.
Who is this for, and what is out of scope?
Districts, charter management organizations and county offices running Infinite Campus with enough history to trend and no dedicated analytics engineer. Superintendents and cabinets, chief business officials, assessment and accountability directors, MTSS and student services teams working chronic absence, and the IT director who ends up owning the extract all tend to be in the room. Most reach out after assembling the same board packet by hand twice in a row, or after two schools presented different attendance rates at the same meeting.
Writing back to Infinite Campus is out of scope: this is a read-only reporting build, and student records belong in the SIS where they are auditable. State reporting stays untouched — your submissions keep originating in Campus and your existing certification process, while the dashboard reads the same underlying data so problems surface while the window is still open. This is a management reporting tool, not a compliance system, and we do not give legal, funding or accountability advice. We are not affiliated with Infinite Campus, we do not resell its premium products, and where Campus Analytics Suite or an in-SIS dashboard product genuinely answers your question we will tell you so rather than sell around it. Contact is form-only — send your request and we’ll reply with a scope estimate.