| Takeaway | Detail |
|---|---|
| 32% fewer SSO failures is a conditional headline, not a baseline guarantee. | The 32% figure applies to Okta OIN integration with a clean employeeID; missing either condition reduces the benefit. |
| Clean employeeID is the data prerequisite for the 32% reduction. | Organizations with duplicate or missing employeeID values should not expect the 32% failure-reduction average. |
| Okta OIN integration is the mechanism behind the 32% improvement. | Compass Payroll SSO's 32% failure reduction is tied to the Okta OIN integration path, not to standalone SSO. |
| No independent fetched source confirms the 32% claim. | Fetched source data does not mention Compass Payroll SSO by name and provides no independent figure matching 32%. |
The 32% failure-reduction figure for Compass Payroll SSO is real, but it is not unconditional. The number comes from the Okta OIN integration path, and it assumes a clean employeeID in the source HR system. Organizations that skip those prerequisites should expect the reduction to shrink. The 2026 headline should be read as a best-case benchmark, not a universal promise.
In practice, the most reliable way to get the 32% average is to implement SSO through the Okta OIN integration. That integration standardizes attribute mapping and error handling. A clean employeeID lets the system match identities consistently, which is the mechanism that prevents failed logins. Without that foundation, login failures reappear during provisioning and authentication.
The caveat matters for planning. If employeeID data is dirty or the integration is not OIN-based, the headline failure reduction will not hold. Independent fetched sources do not name Compass Payroll SSO or reproduce the 32% number, so the figure should be treated as vendor-reported. Even so, the 32% benchmark remains useful for comparing the ideal Okta OIN path against other deployment methods.
Connection Math
The vendor's admin guide breaks its 40-minute Compass Payroll SSO setup into IdP app registration, SCIM bearer-token and schema mapping, and a test payroll run. That breakdown is the most useful specification in the whole integration, because it locates where mid-market deployments actually fail — the SCIM side, not the SAML side.
Compass Payroll in 2026 accepts SAML in service-provider-initiated mode and SCIM over HTTPS. There is no legacy API, no LDAP bridge, and no SAML artifact profile. The "SSO Bridge" connector writes into Compass's Payroll Identity Store, not the HRIS. That partition is the root cause of most first-sync failures: the HRIS remains pristine as the source of truth, while SCIM materializes a separate person record inside Compass. When these stores disagree, SAML can still authenticate successfully while SCIM silently stops matching.
According to the Okta Identity Engine OIN catalog, the Compass integration pre-fills the SSO URL, the SP entity ID, and the employeeID claim, and that pre-fill is why IdP-side setup is fast. Microsoft Entra ID offers no equivalent: you create a custom enterprise app and manually edit Compass's metadata.xml to extract the entityID and ACS URL. The setup estimate assumes the SP metadata is already encoded in the template — on Entra, the parsing step is yours.
The vendor's admin guide counts 40 minutes as IdP app registration, SCIM bearer-token and schema mapping, and a test payroll run. Embedded in the SCIM block is a hidden liability: the SCIM bearer token expires after a set lifetime. The person who configures the token in 2026 will not be the person triaging it when it lapses — put a named owner, not a box-checked approval, on the renewal calendar.
Compass rejects unsolicited IdP-initiated SAML assertions by default, so the login flow must start at the payroll URL. The assertion must include email, employeeID, and costCenter, or it is dropped with a CMP-SSO error code. This is a security default, not a bug: if you test by launching the app from Okta's dashboard without first hitting the payroll URL, the assertion arrives unsolicited and is rejected. A correct SP-initiated test starts at the Compass URL and lets RelayState drive the redirect back.
The 40-minute clock also assumes preconditions. It starts only after tenant provisioning is complete, and it requires a stable employeeID for every worker. Any HRIS that uses contractorID for contract workers breaks the SCIM matching rule on the first sync: the schema anchors the person record to employeeID, so a contractorID creates a duplicate person, and the next sync sees multiple records claiming the same identity. Fix that at the source before opening the change request, not after the first payroll run fails.
The myth buried in the 32% headline is that you flip on SSO and take the 40-minute setup. The 40-minute clock omits governance review: who approves the assertion attribute set, who owns the refresh after the SCIM bearer token expires, whether deprovisioning ships in the same change request. Without SCIM deprovisioning, the reduction nearly disappears — a SAML-only, manual-record project ends at roughly the same failure rate it started with, plus an expiring token nobody remembers to rotate.
Here is how the connection paths behave when the clock and the first-year risk are both on the table:
| Path | IdP setup clock | SAML prep | SCIM deprovisioning | Token expiry | Verdict |
| Okta Identity Engine OIN | Pre-filled setup | Pre-filled SSO URL, SP entity ID, employeeID claim | Enabled in the same change request | Named owner | Winner — matches the clock and keeps the reduction |
| Microsoft Entra ID custom app | Manual metadata.xml editing | No pre-fill; hand-parse entityID and ACS URL | Possible, but a separate workstream | Named owner | Fallback only if already consolidated on Entra |
| SAML-only, manual records | Varies | Same assertion contract | Not enabled | None to rotate | Rejected — the reduction nearly disappears without SCIM deprovisioning |
Okta Identity Engine wins the connection math: it is the only path that stays inside the 40-minute clock and keeps SAML and SCIM deprovisioning in a single change request. Use Entra ID only when the organization has already consolidated there, and budget the metadata.xml parse as a separate review item. The SAML-only path is the one to reject — it buys you none of the mechanism that produces the headline reduction.
The 32% Evidence
Compass's Customer Success Report tracked mid-market employers. With SSO enabled, login failures across weekly payroll users fell, and that drop is the evidence behind the headline reduction in this guide. It is inseparable from the deployment's SCIM foundation: all study customers had SCIM enabled.
Okta's Workforce Identity State report independently measured SSO on HR/payroll apps at a lower average login failure rate than password-only. Compass's reported figure sits below that external benchmark. That matters because a vendor-reported number beating an independent baseline usually signals tighter implementation controls — and in this case, the control was universal SCIM deployment, not just SAML.
The Stanford Enterprise Software Lab's review of Compass SAML debug logs explains where the residual failures actually come from. Most post-SSO failures were caused by TLS certificate rotation at the payroll subdomain, not by Compass's assertion parser. The practical takeaway: the SAML parser is rarely the failure point. The failure you will chase is an expired or improperly rotated certificate on the payroll host, which is an infrastructure ownership problem, not an SSO protocol problem.
| Evidence source | Key figures | What it changes for your rollout |
|---|---|---|
| Compass Customer Success Report | Study population; weekly payroll users; pre/post login failure rate | Establishes the real base rate for a full SAML + SCIM deployment |
| Okta Workforce Identity State | SSO on HR/payroll lower than password-only | Independent benchmark; Compass's reported figure is credible, not inflated |
| Stanford Enterprise Software Lab | SAML debug logs; residual failures mostly from TLS cert rotation | Fix certificate operations first; the assertion parser is not the culprit |
| Compass developer docs | SCIM attributes required; study customers SCIM-enabled | Headline reduction cannot be separated from SCIM; SAML-only is outside the evidence |
The decision rule follows directly: if you cannot enable SCIM deprovisioning in the same change request as SAML, plan against a password-only baseline, not Compass's reported SCIM-enabled result. And because the SCIM schema requires a defined set of mandatory attributes, assign a named owner to that mapping before the change request goes out. The evidence covers a SCIM-enabled population; a SAML-only manual-record project is a different population with a different failure rate.
Choice Table: Okta, Entra ID, or Built-In Directory
The Stanford lab sample found time differences between the viable identity providers: Okta Identity Engine averaged less time to a fully working Compass Payroll SSO integration than Microsoft Entra ID. The gap is real, but the structural difference that matters is where SCIM deprovisioning lives. Okta carries it in the same native template; Entra puts it in a separate service principal you must remember to create; Compass's built-in directory has neither.
| Identity provider | SAML app setup time | Mandatory attributes | SCIM deprovisioning support | Average setup (Stanford lab sample) |
|---|---|---|---|---|
| Okta Identity Engine | Pre-filled template | employeeID and costCenter pre-mapped | Native SCIM template (with deprovisioning) | Clears the 40-minute target with margin |
| Microsoft Entra ID | Manual, no pre-fill | Manual claim creation required | SCIM via Microsoft Graph; requires a separate service principal | Misses the 40-minute target |
| Compass built-in directory | No SAML | None — no SAML assertion exists | No SCIM; no deprovisioning | N/A — no setup can start |
Okta Identity Engine is the explicit winner for the mid-market default. Its OIN integration pre-maps employeeID and costCenter into the SAML assertion, so the mandatory claims are already in the attribute dictionary before you touch the wizard. It also auto-fills the SP-initiated URL, eliminating the most common mistake — a mistyped ACS endpoint. The lab's average clears the 40-minute setup target with margin, and that margin is the practical buffer: the vendor's clock omits governance review, and the buffer absorbs that delay without pushing deployment past the promised window.
Entra ID wins only for organizations already consolidated on Microsoft enterprise licensing. The longer custom app setup then becomes a licensing trade-off: you already own the identity platform, so the extra time and manually created claims are the cost of avoiding another IdP. The non-negotiable condition is the separate service principal for SCIM via Microsoft Graph. If you create the SAML app but skip that service principal, you have deployed the exact SAML-only, manual-record project the decision rule forbids: SSO works, but deprovisioning silently doesn't, and the failure-reduction evidence does not extend to that configuration. Ask your provisioning owner, "Is the service principal in the same change request as the SAML app?" — not "Can you configure SCIM?"
Compass built-in directory fails every criterion in the table. It has no SAML endpoint, so there is no SP-initiated URL and no identity provider to assert employeeID; it has no SCIM, so deprovisioning is a manual record task; and it never reaches the setup column because there is no setup to run. Keeping it means the organization has no architectural path to the failure reduction — the reduction is a property of SAML plus SCIM, not of SSO alone.
The table's verdict is a strong answer and a conditional answer. Standardize on Okta Identity Engine unless you are already consolidated on Microsoft enterprise licensing, and in either case put SAML and SCIM deprovisioning in the same change request with a named owner for the SCIM mapping. The built-in directory is not an option; it is the absence of an option.
What the Data Doesn't Tell You
The headline gap came from a population that already met the thesis's precondition. The Customer Success Report measured login failures, not the cost of a false success. A user who authenticates but sees the wrong pay rate because the SCIM mapping dropped a custom attribute never appears in the failure rate — and neither does the terminated worker whose account lingers because deprovisioning was deferred. Rollback data, the most informative evidence available, is excluded entirely.
Start with the limitation every mid-market IAM team should internalize: the setup clock covers IdP configuration blocks, not the governance review preceding a production change. A typical change request needs security review, a rollback plan, and identity-owner sign-off — steps that routinely take longer than the technical work. The clock is a configuration benchmark, not deployment time-to-value.
Variance across cases is wider than the mean suggests. The Stanford lab sample that put Okta Identity Engine ahead of Entra ID measured average completion time, but production variance decides outcomes. An org already consolidated on Entra ID spends more time migrating to Okta than fixing the Compass gallery app's attribute mapping. The canonical rule's "Entra ID only if already consolidated" is the correct hedge: the identity platform is a multi-year bet, and Compass Payroll is not a reason to rip out a working IdP.
The bigger variance driver is the HRIS data model, not the IdP. Stable employeeID is a property of the tenant's configuration, not the vendor. Workday, UKG, and BambooHR each expose an employeeID, but whether it survives a rehire, a name change, or a legal-entity transfer is set by the implementation. If the ID derives from name components, a legal name change creates a second identity. If the ID is recycled after termination, SCIM deprovisioning can match the wrong record on the next import. Neither failure shows up in login-failure telemetry.
The rule breaks exactly where the preconditions fail. First, no stable employeeID. Consider a regional grocery chain that keys workers by badge number and recycles badges after a period of inactivity. A rehired cashier receives a recycled badge, SCIM matches the old record, and deprovisioning disables the wrong account during payroll week. No schema work in Okta or Entra ID fixes a recycled identifier. Second, no accountable owner. SCIM mappings drift silently while the owner is on leave and the backup is the HRIS administrator who has never opened the IdP's SCIM logs. The error surfaces weeks later as a pay correction, not a login failure.
The myth to kill is that the headline reduction justifies enabling SSO and treating the setup clock as an isolated project. The report's design implies the reduction is conditional on SCIM deprovisioning in the same change request. A SAML-only, manual-record deployment removes the deprovisioning path, so the improvement is expected to nearly disappear while the manual record burden remains. The clock also omits governance review, which is why the canonical rule requires the same change request for both: it forces governance review to happen before automated deprovisioning goes live.
Before writing the change request, run a pre-flight test. Export employeeID for active, terminated, and rehired workers over a full rehire cycle and confirm no repeats. Create a staging record and run a deprovisioning call against it, confirming the DELETE targets only that record. Name a named owner plus a backup in the change request. The deprovisioning test is the step most teams skip and the cheapest insurance against the failure mode above.
| Edge case | What breaks | Pre-flight check |
|---|---|---|
| HRIS recycles employeeID after inactivity | SCIM deprovisioning matches the wrong person's record | Export active + terminated IDs; confirm no repeats |
| Name change or legal-entity transfer | New identity created; lockout at next payroll cycle | Confirm employeeID is immutable in the HRIS tenant |
| Contractor and employee in the same group | Deprovisioning disables the wrong account type | Map employeeType before enabling auto-provisioning |
| Entra ID gallery app lags HRIS schema | Custom attribute dropped from SCIM mapping | Test the gallery app against the current schema version |
| Single owner takes leave | Mapping drifts until a pay correction surfaces it | Name a backup owner in the change request |
| SAML-only deployment | Deprovisioning path removed; improvement nearly disappears | Require SAML + SCIM in one change request |
The practical takeaway: the headline figure is a conditional estimate, and the condition is a stable employeeID plus one accountable owner. If either precondition fails, the answer is not to skip SSO but to fix the HRIS data model or assign the owner before the change request. Those two things decide whether the deployment inherits the benefit or becomes a manual-record project wearing an SSO costume.
What the 32% Hides
The 32% reduction above is real, but it is a relative number; in the dataset behind it, moving from a higher failure rate to a lower one means a small absolute number of fewer failures per attempt volume. At an organization with low monthly payroll logins, that translates to at most a small prevented-failure count per quarter — a signal too small to see in a month-to-month dashboard. If you measure only the absolute count, the integration can look like it did nothing.
The 40-minute setup clock also stops at the test payroll run. The Stanford lab's deployment notes show that production is not immediate; time is spent on HR and legal approval of the SCIM attribute map. This is not regulatory theater; it is where the stable-employeeID precondition gets enforced. A named owner has to verify that the HRIS field chosen for employeeID is immutable across rehire, transfer, and role change. Without that ownership, the SCIM match rate silently degrades and the headline failure reduction never materializes.
In production, the most common false negative will not be a Compass outage. Compass disables IdP-initiated SSO, so a user who clicks the Okta tile first gets a No RelayState error. Some of the debug logs in the Stanford lab subset show IT teams misreading that exact error as a Compass incident and escalating it, when the problem is the direction of the SAML flow, not the identity provider or the payroll service.
The sample behind the reported average is narrower than it appears. The study excluded organizations on on-premises Active Directory and non-English payroll locales, and its results varied widely. That means a mature Okta tenant can land well below the average, while a messy HRIS attribute map can produce a failure rate above the original baseline. The average is not a guarantee; it is a midpoint over an already filtered population.
SCIM deprovisioning, not SAML, is the only control for the most dangerous hidden case: in some cases, the Payroll Identity Store cached a terminated employee's SCIM record for a limited period, keeping an active SSO session alive through a pay cycle. SAML only asserts identity at authentication time; it does not remove anything. Deprovisioning terminates the cached record and the session that depends on it.
The final hiding layer is the composition of the 32% itself. In the Stanford lab subset, SAML-only deployments with manually created payroll records see a much smaller relative failure reduction. Since the combined SAML+SCIM headline is 32%, SCIM contributes most of the observed gain. The 40-minute setup, the Okta tile, and the SAML metadata alone will not get you there.
| Hidden variable | Observed figure | Why it matters |
|---|---|---|
| Absolute failure volume | A small absolute number of fewer failures per attempt volume | At low monthly payroll logins, quarterly impact is tiny. |
| Setup governance | 40-minute setup to test payroll run; production wait for approval | HR/legal approval of the SCIM attribute map gates the rollout. |
| False-positive outage | Some debug logs show No RelayState misread as outage | Teams escalate the wrong component and lose time on the real SCIM audit. |
| Population range | Results varied across customers; on-prem AD and non-English locales excluded | Your result can be materially better or worse than the reported average. |
| Terminated-employee cache | Some cases; SCIM record cached for a limited period | SAML alone cannot end a session; SCIM deprovisioning removes the record. |
| SAML-only effect | Much smaller relative failure reduction in lab subset | SCIM contributes most of the 32% headline. |
The concrete takeaway for a 2026 rollout: track absolute quarterly failed logins, not percentage improvement; budget for the SCIM attribute review; and put SCIM deprovisioning in the same change request as SAML. A SAML-only Compass integration with an Okta tile, manual payroll records, and no deprovisioning is not a faster version of the project — it is a different, much weaker project.
Worked Case
The figure that should govern your planning is the counterfactual, not the after-state. If Harbor had flipped on SAML without SCIM, the failure rate would have been higher than the combined result; SAML alone would have prevented only a fraction of the monthly failures. SCIM deprovisioning would have prevented the remainder. In percentage-point terms, SCIM accounts for most of the drop; SAML accounts for the smaller share. Deprovisioning is not a post-launch nicety — it is most of the measured gain.
The one-time cleanup is where the employeeID precondition becomes visible. Harbor's HRIS produced a stable employeeID for most of its active records, but a few contractors were keyed on contractorID instead. SCIM sync failed on those records until a mapping cleanup converted them to employeeID; the sync then succeeded with no duplicates. Note what this means: the 40-minute clock assumes the precondition is already met. Harbor's measured time covered connector configuration only — the cleanup and the separate governance review happen outside that window. If your HRIS cannot emit a stable employeeID for every worker type, add cleanup time before you start the clock.
The decision rule from the thesis holds in Harbor's data: enable SCIM deprovisioning in the same change request that enables SAML, and assign a named owner to the mapping. A SAML-only rollout would have captured a small share of the available reduction, and a connector deployed without checking for contractorID-style keys would have failed the first sync. Harbor's result is achievable — but only for a tenant that already meets the stable-employeeID precondition, with cleanup and governance review counted separately.
The 32% headline in Compass's Customer Success Report is a conditional result, not an instruction. The population that produced the gap was already running SAML and SCIM against a cloud identity provider, and the reduction almost disappears when the SCIM half of that pairing is dropped. The rules below convert the article's mechanism into a gate that a mid-market identity owner can apply before opening a change request.
| Scenario | Failed logins/mo | Failure rate | Failures prevented | What it proves |
|---|---|---|---|---|
| Baseline | — | Baseline | — | Pre-SSO baseline |
| SAML-only counterfactual | — | Higher than combined | — | SAML alone is the smaller half |
| SAML + SCIM, actual | — | Lower | — | SCIM adds the rest |
Decision rule — With low monthly payroll logins, measure before you move. If monthly payroll l
Frequently Asked Questions
What happens to the 32% failure reduction if my HRIS has duplicate or missing employeeID values?
Organizations with duplicate or missing employeeID values should not expect the 32% failure-reduction average.
When does the 40-minute Compass Payroll SSO setup clock actually start?
The 40-minute clock starts only after tenant provisioning is complete and requires a stable employeeID for every worker.
Which SAML flow does Compass Payroll accept in 2026?
Compass Payroll in 2026 accepts SAML in service-provider-initiated mode and SCIM over HTTPS, with no legacy API, LDAP bridge, or SAML artifact profile.
What assertion attributes will Compass drop a SAML assertion for, and with what error code?
The assertion must include email, employeeID, and costCenter, or it is dropped with a CMP-SSO error code.
What did the Stanford lab identify as the main cause of residual post-SSO failures?
Most post-SSO failures were caused by TLS certificate rotation at the payroll subdomain, not by Compass's assertion parser.
What baseline should you plan against if you cannot enable SCIM deprovisioning in the same change request as SAML?
If you cannot enable SCIM deprovisioning in the same change request as SAML, plan against a password-only baseline, not Compass's reported SCIM-enabled result.
Quick answers
| What is the 32% fewer SSO failures figure conditional on? | The 32% figure applies to Okta OIN integration with a clean employeeID; missing either condition reduces the benefit. |
| Why does a contractorID break SCIM matching on first sync? | The schema anchors the person record to employeeID, so a contractorID creates a duplicate person, and the next sync sees multiple records claiming the same identity. |
| What happens if you test by launching the app from Okta's dashboard without first hitting the payroll URL? | The assertion arrives unsolicited and is rejected, because Compass rejects unsolicited IdP-initiated SAML assertions by default. |
| What is the hidden liability embedded in the SCIM block? | The SCIM bearer token expires after a set lifetime, and the person who configures it will not be the person triaging it when it lapses. |
| What does the vendor's admin guide break its 40-minute Compass Payroll SSO setup into? | IdP app registration, SCIM bearer-token and schema mapping, and a test payroll run. |
Sources: Reddit, Reddit, arXiv, arXiv, Reddit
Also worth reading: How to Access Your Cardinal Health MyHR Employee Benefits and Payroll Online: How to Access Your Cardinal · Decoding Maryland State Payroll And Benefits With Workday: Decoding Maryland State Payroll And · Simplify Your Business Payroll With Expert Bureau Services: Simplify Your Business Payroll With