Raiser’s Edge NXT to Power BI, done for you

A Raisers Edge NXT Power BI Dashboard Built on the Blackbaud SKY API

Gift retention, appeal performance and fund balances pulled from the SKY API under an application you own, landed in a store you keep, and modelled by a senior US-based engineer — instead of a monthly export that someone reshapes in Excel before the board meeting.

  • Microsoft-certified
  • Read-only SKY API app you own
  • Hours never expire
  • 3–5 day turnaround
  • You own the model
Performance Trend Sessions48.2k Conversion3.8% Avg. order$129

Representative dashboard — sample data

Why these builds stall

Four ways out of NXT, and picking the wrong one costs a quarter

Almost nobody gets stuck on the fundraising questions. Development directors know what they want on the page. Where a Raiser’s Edge NXT reporting project stalls is one step earlier, at the question of how the gift records leave the platform at all — because there are several answers, they look similar from the outside, and they are not equally good.

You can build Blackbaud’s open-source custom connector and point Power Query at the SKY API. You can use the Power BI add-ins, which are easier and narrower. You can buy a managed warehouse from a Blackbaud partner. Or you can run your own scheduled extraction into storage you control. Each is defensible for a different organisation, and the choice depends on things nobody asks about on day one: how many constituents you have, which custom fields your reporting depends on, and whether anyone will own a refresh that breaks.

What we build from Raiser’s Edge NXT

  • Gift retention & lapsed segments
  • Appeal & campaign ROI
  • Fund and restriction balances
  • Pledge vs payment progress
  • Fundraiser portfolio views
  • Custom fields pivoted

Try us risk-free for 4 hours

Buy a block of prepaid Flex hours and, if you’re unhappy within the first 4 hours, we refund you in full — no questions asked. Hours are deducted only for work you’ve reviewed and approved, there’s no project minimum, and your banked hours never expire.

What the build covers

Six things that decide whether this works

All six sit upstream of the first visual, and all six are where an in-house attempt tends to run out of road.

The application is registered by you

A SKY developer account, a registered app with a redirect URI, read scopes for the right products, and a subscription key sent on every call. We write the request so your Blackbaud administrator approves it once rather than three times, and the credentials stay yours.

Throttling designed for, not discovered

Access tokens expire after an hour and the API throttles by the second and by the day. The extraction re-authenticates, pages with a generous page size, filters by changed date, and backs off on a retry-after header instead of retrying straight into another 429.

History kept where you keep it

Gifts are pulled once into a store you own, so a decade of giving history is a local read rather than a quarter of a million API calls every morning — and a fund that was renamed three years ago still reconciles against the year it was raised in.

Custom fields made usable

What the database view calls attributes, the web view calls custom fields, and the API returns them one row per field. We pivot the ones your reporting genuinely depends on into columns and leave the rest queryable, instead of flattening everything and doubling the gift table.

Splits resolved before they are summed

A gift can split across funds, campaigns and appeals, carry soft credits, and be a pledge, a payment against one, or a recurring instalment. Each is a different grain. Getting that wrong is how a $50,000 campaign quietly becomes $91,000 on a slide.

Refresh and security that hold

Scheduled or incremental refresh sized to your quota, row-level security so a gift officer opens their own portfolio, and breakages fixed by us out of your banked hours rather than landing on the one person who understood the query.

How does Power BI actually get data out of Raiser’s Edge NXT?

Through the Blackbaud SKY API, which is the supported route and effectively the only one. Someone at your organisation creates a SKY developer account, registers an application, adds a redirect URI, requests read scopes for Raiser’s Edge NXT, and collects a subscription key from the developer subscriptions page. Every request then carries that subscription key as a header alongside an OAuth access token. There is no supported way to point Power BI at the hosted database, and no ODBC driver Blackbaud will hand you for it.

Two mechanics shape every design decision after that. Access tokens expire after sixty minutes, so an extraction that runs for hours has to refresh mid-flight — and each refresh exchange returns a new refresh token as well as a new access token, which means whatever stores it has to write the new one back or the next run fails on an expired credential. And the API throttles: a per-second rate limit for bursts and a daily quota for sustained traffic, currently published as 5 calls per second and 25,000 calls per day on standard subscriptions, with a much smaller free developer tier at 1,000 requests a day. Hit the first and you get a 429; hit the second and you get a 403. Both come back with retry-after headers, which the extraction is expected to honour.

The four routes out of Raiser’s Edge NXT, and when each one is the right choice
Route What it gives you When we use it
Blackbaud’s open-source Power Query connector A custom connector, published on GitHub and originally contributed by a community developer, that you compile to a .mez file, drop into the Power BI Desktop custom connectors folder and allow as an uncertified extension Small shops and proofs of concept — it is genuinely useful, but it still needs your own registered app and subscription key, and it errors on list endpoints for modules your subscription does not include
The Blackbaud Power BI add-ins A packaged path into Power BI built around what the platform’s own list and Insights layer exposes Where the questions fit the fields on offer — the practical limit is that the field set is narrower than the record, so a report that needs an unusual attribute or a fund detail tends to hit the edge of it
A managed warehouse from a Blackbaud partner A vendor-run copy of NXT in a database you connect to, such as Zuri Group’s Aqueduct or MissionBI’s Connect, both fed by the same SKY API Large advancement shops with several Blackbaud products, many report authors and no appetite to run a pipeline — it is a subscription, and we will say plainly when it is the cheaper answer
A scheduled extraction into your own store Constituent, gift, fundraising and list endpoints pulled on a schedule into Azure SQL, a Microsoft Fabric lakehouse or files in your own storage account Our default for most builds — you own the credentials, the history and the model, the refresh is a fast local read, and joining to the accounting ledger or an events platform is trivial afterwards
An existing warehouse copy NXT data already landed somewhere by an internal pipeline or another team Always our first question — if it exists and is trustworthy, we model on it and skip the extraction work entirely

One Power BI-specific trap deserves naming early. It is natural to build SKY API request URLs by concatenating strings in Power Query — an identifier here, a date there. The Power BI service classifies that as a dynamic data source and refuses to refresh it on a schedule, even though it worked perfectly in Desktop. The supported shape is a constant base address with everything variable passed as relative path and query parameters, which the Power Query Web connector (opens in new tab) handles directly — and the more durable fix is to move paging out of Power Query altogether.

Which endpoints carry the fundraising numbers?

Four families do most of the work, and they page the same way: a limit, an offset and a next link, with filters on changed date so an incremental run does not re-read the archive. Page sizes matter more than they sound. The gift list endpoint accepts a limit well into the thousands, and using it is the difference between a nightly job that finishes and one that spends the organisation’s entire daily quota before breakfast.

SKY API endpoint families and their role in the semantic model
Endpoint family What it carries Role in the model
Constituent Individuals and organisations with addresses, email, phones, relationships, constituent codes, ratings and education records The constituent dimension, kept slowly changing on the handful of fields that must not rewrite history when someone moves or changes constituency
Gift Gifts with amount, date, type and receipt detail, plus splits, soft credits, pledges, pledge payments and recurring gift instalments The gift fact — and the splits, which are a second, finer fact so fund and appeal totals are additive without inflating the gift count
Fundraising The campaign, fund and appeal hierarchy, each with its own custom fields and attachments Conformed campaign, fund and appeal dimensions — the ones every board question eventually slices by
Custom fields What the database view calls attributes, returned per parent record, one row per field Pivoted into real columns where reporting needs them; the rest stay in a long table rather than widening the fact
Lists Saved lists built in the web view, usable as a server-side filter on an extraction A pragmatic way to scope a first build — but list-backed data can lag the record, so we do not build balances on it
Opportunities and actions Major gift opportunities and the contacts, visits and moves logged against constituents The portfolio and moves-management layer, where major gift pipeline reporting comes from

Terminology is a real source of rework here, because the two interfaces name the same things differently. Solicitors in the database view are fundraisers in the web view. Cash gifts are one-time gifts. Pay gifts are pledge payments. We agree the vocabulary with advancement services during scoping and put it in the model as documented column and measure names, so a report never quietly mixes the two dialects.

What has to be derived rather than read?

A surprising amount. The API is faithful to how Raiser’s Edge records giving, which is not the same shape as how a development office reports on it. The table below is the set of derivations that come up on nearly every build, written as documented DAX measures over a star schema and a fiscal calendar that matches your year rather than the platform’s.

What the API returns, and what the model has to work out
Reporting need What the API gives What the model adds
Cash raised vs commitments Pledges, pledge payments and one-time gifts as distinct records Two separate measures with an explicit rule, so a pledge and the payments against it are never both counted as revenue
Fund and restriction balances Gift splits keyed to funds, and the fund hierarchy Split-grain aggregation, with restricted, temporarily restricted and unrestricted rolled from your own fund coding rather than guessed from names
Appeal and campaign ROI Appeal and campaign records with gifts attributed to them Cost joined from wherever you actually keep it — usually an appeal custom field or the accounting ledger — because the API does not carry a mailing’s expense
Household and soft-credit views Relationships, soft credits and organisation links A deliberate crediting rule chosen once, so hard and soft credit totals reconcile instead of disagreeing by donor and by fund
Fundraiser portfolio performance Fundraiser assignment, opportunities and logged actions Point-in-time portfolio membership, so last year’s numbers do not follow a prospect to a new officer’s column
Retention and lapsed segments Gift dates and constituent identifiers Year-over-year donor logic on your fiscal calendar — the metric definitions themselves are covered on our nonprofit page below
Recurring giving Recurring gift schedules and their instalments Expected against received, so a lapsed monthly donor shows up as a gap rather than as a slowly shrinking total

Retention, LYBUNT and SYBUNT are defined metric by metric on our Power BI nonprofit donor dashboard page, which is the right starting point if your CRM is not Blackbaud or you have not chosen one yet; this page is about getting the gift, fund and appeal records those metrics run on out of NXT correctly and keeping them coming. The modelling discipline underneath both — 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.

Does the web view and database view split matter?

It matters for what you build on, not for what the data says. The two interfaces read the same underlying database — the database view is the Raiser’s Edge 7 client, the web view is NXT in a browser, and a record edited in one appears in the other. What differs is the vocabulary, the field coverage and, increasingly, the lifespan: Blackbaud has told customers that support for the database view ends in September 2027, along with the products that depend on it.

That has a practical consequence for reporting. A dashboard fed by database view exports, an RE7 query someone scheduled, or a Crystal report pointed at the client is standing on a floor with a published end date. A dashboard fed by the SKY API and a history store you own is not. If you are running both today, this is a good moment to move the reporting layer first — it is the least disruptive half of the transition and it takes the deadline pressure off the rest.

How are refresh and donor-data security set up?

The model is published to your Power BI workspace and refreshed on a cadence that respects the quota: for most organisations a nightly gift and constituent pull with a changed-date filter, not a full re-read, inside Microsoft’s documented data refresh limits (opens in new tab). Where a long giving history has accumulated, incremental refresh (opens in new tab) keeps each cycle to a recent window so the archive is loaded once and left alone.

Donor data deserves the same care as pay data. Visibility is handled with row-level security in the Power BI service (opens in new tab), driven from a mapping of viewers to fundraisers, constituencies or funds, so a gift officer opens their own portfolio, a school’s advancement lead sees their own unit and the development director sees everything. Our guide to Power BI row-level security setup walks through the roles and the test steps. Where a fund is small enough that a single row identifies a named donor, we aggregate or suppress on summary pages rather than publishing it 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 giving trend, appeal and campaign performance, fund balances and retention from an approved SKY API application usually fits a Starter block. Adding a decade of history, a second Blackbaud product, unusual custom-field pivots or an ROI view that needs appeal costs reconciled against the ledger typically moves it to Growth — less because of the development and more because agreeing crediting rules across advancement services and finance takes conversation.

Most tasks ship within 3–5 business days of scope approval, and you get a scope and hours estimate before anything starts. 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?

Organisations running Raiser’s Edge NXT with enough giving history to trend and no dedicated analytics engineer — independent schools, healthcare foundations, arts and human services nonprofits, and university advancement shops where reporting is one or two people. Development directors, advancement services managers and the finance partners who own the restricted funds are usually the people who get in touch, typically after a board pack took three days to assemble twice in a row.

Writing back to NXT is out of scope: this is a read-only reporting build, and gift entry belongs in the platform where it is auditable. General ledger reporting from Financial Edge NXT is a separate conversation and a separate SKY API product — we will scope it, but we will not pretend the two models are one. Self-hosted Raiser’s Edge 7 with direct SQL access is a different build again, and a simpler one. Contact is form-only — send your request and we’ll reply with a scope estimate.

What we build from Raiser’s Edge NXT

  • Giving trend and donor retention on your fiscal calendar
  • Appeal and campaign performance with cost joined in
  • Fund and restriction balances at split grain
  • Pledge, payment and recurring gift progress kept apart
  • Major gift pipeline from opportunities and actions
  • Portfolio views secured by fundraiser
3–5

business days, typical

Prepaid

hours, never expire

You

own everything

A first Blackbaud build usually fits inside one Flex block, and hours deduct only for work you approve. See Flex pricing →

How it works

From a registered SKY app to a model you own

  1. 1

    Register the app and scope

    Your team creates the SKY developer account and registers the application with read scopes; meanwhile we agree the crediting rules, which custom fields matter, how your fiscal year runs and how far back the history is trustworthy — then reply with a scope and hours estimate before any work begins.

  2. 2

    Extract, land, model

    A senior US-based engineer builds the scheduled extraction inside your rate limit and daily quota, lands constituents, gifts, splits and the fundraising hierarchy in a store you own, pivots the custom fields that earn their place, builds the star schema and fiscal calendar, and writes the DAX — validating every total against a report your team already runs in NXT.

  3. 3

    Refresh, secure, hand over

    Published to your workspace with scheduled or incremental refresh, row-level security so each gift officer sees their own portfolio, and documentation you keep. We maintain it from your banked hours.

Representative perspective

We had three versions of the campaign total, all pulled from NXT, all defensible. The fix was not a new chart. It was agreeing once whether splits or gifts were the grain.
Development director, independent school

Representative perspective

Our own SKY API pull worked beautifully until it hit the daily quota halfway through the constituent load. Getting the paging, the filters and somewhere to keep the history right was most of the value.
Advancement services manager, healthcare foundation

Get your giving data into a model the board can trust

Tell us roughly how many constituents and gifts you hold, which reports your team exports today, and what the board asks for each quarter. We’ll confirm the extraction route, scope the task, and tell you the hours before anything starts — no project minimums, no obligation.

FAQ

Blackbaud reporting questions, answered

Through the Blackbaud SKY API. Someone at your organisation creates a SKY developer account, registers an application, adds a redirect URI and read scopes for Raiser’s Edge NXT, and collects a subscription key. Every call then carries that key plus an OAuth access token. There is no supported way to point Power BI at the hosted database directly.

Blackbaud publishes an open-source Power Query and Power BI custom connector for SKY API on GitHub, and it works. You build it into a .mez file, drop it in the Custom Connectors folder and allow uncertified connectors. It still needs your own registered application and subscription key, and it is not a certified in-box connector.

Blackbaud throttles two ways: a per-second rate limit and a daily quota, currently published as 5 calls per second and 25,000 calls per day on standard subscriptions. Exceeding the first returns 429, the second returns 403, both with retry-after headers. A naive per-constituent loop burns the day’s quota long before it finishes.

Attributes in the database view appear as custom fields in the web view, and the SKY API returns them from separate endpoints, one row per field per record. They arrive tall rather than wide, so we pivot the handful your reporting actually uses into real columns and leave the rest as a long table nobody has to look at.

It argues for building on the API rather than on database view exports. The web view and the database view read the same underlying data, but Blackbaud has said support for the database view ends in September 2027. A model fed by SKY API and a history store you own does not need rebuilding on that date.

No. We are an independent US-based Power BI consultancy with no Blackbaud partnership to claim and no data product to resell. We build against the documented SKY API using an application your organisation registers and owns, and everything we produce is published into your own Power BI workspace.

Related work

If your CRM is not Blackbaud, or you are comparing platforms rather than extracting from one, start with Power BI for nonprofits — it covers the donor, retention and grant reporting case without assuming a source system. University advancement teams usually need giving read beside enrolment, aid and net tuition revenue, which is the build described on Power BI for higher education. When the same figures have to reach trustees on a fixed cadence, the pack and period discipline is covered on Power BI dashboards for board reporting, and the modelling craft underneath every one of these is on our data modeling and DAX page. Every task is scoped before work begins from your prepaid block of senior-led hours — no project minimums, no change-order surprises, and hours are deducted only for work you approve.

Book a free demo

Get senior Power BI help, on demand

Tell us the task. We scope it, you approve, and a senior consultant delivers — typically in 3–5 business days. Prepaid hours that never expire.

  • Prepaid hours from $100/hour — and they never expire
  • Senior-led delivery — 20+ years on the Microsoft platform
  • Typical 3–5 business day turnaround
  • Full refund if you’re unhappy in your first 4 hours

The fastest way to reach us is the form — tell us the task and we'll reply within one business day.

All fields are required.

We reply within one business day. No newsletters, no drip campaigns.

Book a Free Demo