Dashboard Block
The shared component every module home page mounts with its own key: resolves the application, loads defaults or saved picks, shows up to four tiles, and the empty state with a button.
One shared block on twenty admin home pages. A BR Config administrator defines which charts exist and which application each belongs to; the module's own data action supplies the figures; the admin picks up to four, sets a period, and clicks through to the rows behind any point.
Essential Insights does not calculate enrollment, billing or cases. It stores a chart definition, asks that definition's endpoint for the series, and asks a second endpoint for the records behind a click — so the number on the home page is the module's number, not a dashboard's re-derivation of it. The same block sits on every module, over SuccessFactors-fed records and records that arrived from Workday, UKG, ADP, Dayforce or Paycom through HRIS Sync.
BR Config saves a chart definition against an application. A module home page loads that application's default charts — or the charts this browser last picked. Each tile posts the chart's own data action with a date range, and a click posts the drill-down action with the clicked label when one is configured. That is the entire feature in one sentence, and everything on this page is one clause of it looked at closely.
The whole feature in ten steps, exactly as it runs: one catalog, one block on twenty home pages, one request per tile, one click to the rows behind it. The last column is what the platform checks before that step is allowed to happen.
| # | Who · where | What happens | The rule at this step |
|---|---|---|---|
| 1 | BR Config admin defines a chart BR Config · Essential Insights · Create tab | Names the chart, picks one of 23 chart types, the application it belongs to, the module data action that supplies its series, an optional drill-down action, and a default period | Code must be unique; the application must be active; a custom period needs both dates in order; at most four charts per application may be marked default |
| 2 | Previews it BR Config · preview | The form posts the same data action the live tile will post and draws the result — the preview is the tile | What the admin sees in preview is what the module home page will show |
| 3 | Module admin opens a home page Any of 20 module home pages | The Essential Insights block mounts with that module's key and resolves which application it is | No saved picks in this browser → the application's default charts, first four; saved picks → those ids, from the active catalog |
| 4 | Tiles fill Each tile | Posts the chart's own data action with one thing: a begin and end date — the visit's override if both dates were typed, otherwise the definition's period recalculated from today | The block never calculates a number; the module action that owns the figure does |
| 5 | Reads the chart Tile | Series, groups, sankey flows and treemaps are drawn as the definition's chart type; a donut is a pie with a hole; a percentage group shows a percent sign in the tooltip | A tile whose every value is zero shows the definition's empty sentence — or “No data available for this period.” |
| 6 | Clicks a point Tile → drill-down modal | When the definition names a drill-down action, the click posts it with the same dates, the clicked label and group, page 1 of 10 rows and an optional search | No drill-down action, no modal — the click does nothing, by design |
| 7 | Pages the detail Drill-down modal | A table built from the records and the field labels the action returns; page size adjustable; search debounced | The modal does not export and never changes the chart definition |
| 8 | Opens Customize Insights Gear icon → picker | Searches by application, chart name or code; filters by chart type and application; may type a date range; ticks up to four charts — from any application, not only this one | Save writes the ids to this browser only; the date range lives for this visit; Cancel writes nothing |
| 9 | Comes back next week Same browser, same home page | The saved ids reload from the active catalog; an inactive chart drops out silently | A different browser, or a colleague on the same machine, sees the defaults again |
| 10 | Retires a chart BR Config · edit or delete | Deactivating hides it from every home page and the picker; deleting removes the definition outright | Browsers that had picked it simply stop finding it on the next read |
Follow “Enrollment by plan” from the BR Config form to a click on the Employee Management home page — then the same tile on an entity that runs Workday.
Every module home page mounts the same Essential Insights block and tells it which module it is. On a first visit in a browser the block asks the catalog for that application's active default charts — page one, four rows, ordered by application name and then id — and draws them. On a return visit it reads the chart ids this browser saved, fetches the active catalog and keeps the saved ids, up to four. An inactive chart drops out on its own. With nothing to show, the block says “No Insights Selected” and offers the picker.
An administrator who has never touched the gear sees a decided set; one who has sees their own.
The block depends on the platform's application list already being loaded by the host page; a module key that resolves to no application leaves the block on its loading state rather than painting the wrong charts.
A tile reads the data action on its definition; if none is set it says so and stops. It builds a body with a begin and end date — the dates the admin typed for this visit if both exist, otherwise the definition's period, already recalculated from today — and posts it. Nothing else travels: the parameter template stored on the definition is documentation for the module developer, not part of the request. The reply is shaped into rows — arrays, objects, a category-and-groups shape, sankey flows or a treemap — and drawn as the definition's chart type with its options. A donut is a pie with a hole. A group flagged as a percentage gets a percent sign in its tooltip without the plotted value being divided.
A tile is a window onto a module's own figure; it cannot invent one.
Pie and donut keep one label and one numeric column — the first header that reads like a count, value, total, amount, weight or quantity — and duplicate labels are summed before drawing.
A click on a point, bar, slice or treemap cell builds three things: the raw label for the module (the drill-down value the module named, else the dimension value, else the shown label), the label as displayed, and the group for the column that was clicked. If the definition has no drill-down action, the click does nothing. If it has one, the modal posts it with the same resolved dates, the raw label as a filter, the group, page 1 of 10, and a search term when typed. The reply's records and field labels become the table; page and page size come from the reply. The title is the chart name plus the clicked label; the subtitle is the definition's drill-down subtitle, a “Details for …” line, or the definition's help text.
Every point that can open is backed by a module action that knows those rows; every point that cannot, does not pretend.
A treemap's click label is the text before the count line, so the module receives the cell's name rather than its display string.
The gear opens a picker, not BR Config. The admin searches by application name, chart name or code, filters by chart type and application, may type a date range — both dates or neither, end on or after start — and ticks up to four charts, grouped by application. Charts from other modules are allowed: an Employee Management admin can put a BR Resolve case chart beside an enrollment chart. Save writes the chart ids to this browser and keeps the date range for the visit, then reloads the tiles; Cancel writes nothing. The picker's type filter is a shorter list than the admin form — a few rare types can be stored and drawn without appearing in that dropdown.
A personal dashboard without a shared layout to administer, and without one admin's picks landing on another's screen.
A colleague signing in on the same machine and browser profile sees the same saved picks — they are stored by browser, not by user.
Chart definitions are created on the Essential Insights screen in BR Config — an Overview tab summarising the catalog and a Create tab with the table, form, preview and delete. A definition needs a unique code, a name, one of 23 chart types, an owning application, the data action that supplies the series and a default period; a drill-down action is optional. The application must be active; a fifth default for the same application is refused; a custom period needs both dates in order. Preview posts the data action exactly as a tile would and draws the result. Update re-checks the application and the code, recalculates dates only if a period is sent, and still stops at four defaults. Delete is a hard delete.
One catalog, one screen, one set of rules — the twenty home pages never disagree about what a chart is.
The list on the Create tab shows active and inactive charts together, ten to a page, with type and search filters; the module home pages and the picker only ever see active ones.
A tile does not know where a record came from, because the module action that answers it reads the platform's own tables — filled from SAP SuccessFactors in real time through OData and Intelligent Services Center, and from Workday, UKG, ADP, Dayforce or Paycom through HRIS Sync with the same fields and provenance. An enrollment-by-plan tile on the Employee Management home page shows one column chart across the SuccessFactors plants and the Workday distribution centres; a drill-down lists employees from both with their entity. The workspaces behind the benefits tiles work the same way: one enrollment rate, one participation gap, one demographic mix and one ACA picture across entities, with an entity filter rather than a second report pack.
One home page, one set of numbers, even when the HRIS estate is mixed.
Quebec Bill 96 sites appear on the same tiles with the language and small-cohort rules the module applies.
A dashboard block that is on every home page has to be boring in the right ways. These are the rules that keep it so.
| Rule | How it works | Why it is there |
|---|---|---|
| Who calculates | A tile posts the data action stored on its definition and draws what comes back; the module that owns the action owns the number | Enrollment counts come from the enrollment engine, case counts from BR Resolve — never from a dashboard widget re-deriving them |
| Four tiles, four defaults | A home page shows at most four tiles; create and update refuse a fifth default chart for the same application | A home page stays a glance, and “the defaults” is a decided set, not a queue |
| The default set, in order | First visit loads that application's active default charts — the first four, ordered by application name and then id | Predictable: the same four for every admin who has not customized |
| Picks stay on your browser | Customize saves chart ids in this browser only; a colleague, another machine or a cleared browser sees the defaults | A dashboard is personal without a shared layout anyone must administer |
| The date override is for this visit | Both dates or neither; the end on or after the start; kept until the page reloads or the module changes — never saved | Nobody inherits a stale date range from last quarter's look |
| Period math | Last 7 / 30 / 60 / 90 days count inclusively from today; This Month and This Quarter end on the last calendar day of the period, not today; Year to Date runs from 1 January; Custom uses stored dates | Non-custom periods are recalculated from today on every read, so “Last 30 days” is always the last thirty days |
| One request field | The body a tile posts is a begin and end date and nothing else; parameter templates stored on the definition are for the module developer, not sent | A data action has one contract to honour, and a definition cannot smuggle filters into it |
| Click only where there is depth | A click opens the detail table only when the definition names a drill-down action; the modal pages the records and never exports | No dead ends dressed up as links, and no bulk extract from a chart |
| Payload shapes | Arrays, objects, a category-plus-groups shape, sankey flows and treemaps are all understood; pie and donut keep one label and one number and sum duplicate labels | Module developers return the shape natural to their data; the tile adapts |
| Retire safely | Inactive charts vanish from every home page and the picker; delete is a hard delete with no child rows; browsers that picked it stop finding it | No orphaned tiles, and no half-deleted definitions to explain |
One shared block, one picker, one tile, one detail modal, one catalog screen and the module actions that feed them — described exactly as they run.
The shared component every module home page mounts with its own key: resolves the application, loads defaults or saved picks, shows up to four tiles, and the empty state with a button.
Search, chart-type and application filters, an optional date range and a checklist of up to four charts from any application; saves ids to this browser only.
Posts the definition's data action with a begin and end date, shapes the reply — arrays, objects, groups, sankey, treemap — and draws one of 23 chart types with the definition's options.
Opens on click only where a drill-down action exists; posts the period, clicked label, group, page and search; pages a table from the records and field labels returned.
Overview and Create tabs: table, form, preview, delete; unique codes, active applications, custom-period checks and the four-default limit enforced on create and update.
The series action and optional drill-down action a module developer implements and names on the definition — the place the number is actually computed.
A tile is only as good as the action behind it. The benefits modules expose theirs as governed workspaces — effective-dated, eligibility-first, small-cohort suppressed — so an Enrollment, Participation, Demographics or ACA tile on a home page shows the same figure the workspace shows. Follow a benefits manager through the second week of Open Enrollment across all four.
The workspace replaces the SAP Enrollment Statistics report with a governed analytic: every point-in-time figure honours the record's validity dates, a pending election is its own state and is never counted as enrolled, a life-event record is not an enrollment, and the cart is a draft until the dated records are written. During Open Enrollment it shows submitted, in-progress and untouched populations by plan, tier and location, with the drop-off point in the wizard. The familiar daily-count grid survives as the Enrollment Matrix tab — and its data action is what an Enrollment tile on the Employee Management home page posts.
A count you can re-run for last Tuesday, and get the same answer, is a count you can defend.
Metrics carry the ENR prefix and one definition each; the same figure on a home-page tile and in a scheduled report cannot disagree.
Participation starts from eligibility, never from elections: who is entitled to an offer comes from the benefit program, the eligibility rules and the offer outputs, so a coverage gap is a real gap and not a missing record. The workspace shows eligible-enrolled rate, coverage gap, waivers by reason, dependant coverage and employer cost per capita — employee and employer sides kept apart — and lets a manager click one row to re-run everything for that department, location or plan.
The gap you act on is computed from eligibility, so a campaign reaches people who can enroll.
A cohort below the configured minimum — five by default — is suppressed before the row renders, so a small department never identifies a person.
Employee Demographics & Benefits Population Intelligence replaces the SAP Employee Demographics report with a workspace built around the demographic enrollment mix: census, eligibility versus enrollment, plan choice, dependants, rating characteristics and cost distribution, sliced by age, salary and seniority bands that come from configuration rather than hard-coded ranges. The evaluation date is a parameter you set, tobacco status that is unknown is shown as unknown, and the workspace sources its shared measures from Participation and Enrollment so the three never disagree.
Plan design conversations start from the population you have, not the one the last renewal assumed.
Root-cause decomposition breaks a shift in the mix into hires, terminations, band changes and plan moves, so the story is traceable.
ACA Intelligence starts with a question the annual filing never answered in time: if we ran ACA today, what would fail, how many people would it affect, and how much could it cost. A readiness scan checks configuration and regulatory parameters — every affordability percentage and deadline an effective-dated, approved row — before a single employee-month is computed. Exposure is always three separate figures: potential statutory, observed IRS-notice, and PTC-adjusted expected, never one “penalty owed”. Legal full-time status and form lines stay deterministic; models only predict the risk of a change.
Compliance stops being a January surprise and becomes a monthly number with an owner.
The §4980H(a) headcount figure is computed at the aggregated group and allocated to members; it is never attributed to an individual employee.
Five governed workspaces and the governance they share — the actions a benefits administrator will most often point a tile at.
Enrolled, pending and waived as of any date by plan, tier and location; OE progress and drop-off; the legacy SAP grid kept as the Enrollment Matrix tab.
Eligibility-first participation: eligible-enrolled rate, coverage gap, waivers by reason, dependant coverage and employer cost per capita, one click to re-run by cohort.
Demographic enrollment mix by configured age, salary and seniority bands, with root-cause decomposition and population data quality.
Readiness scan, employee-month facts, threshold and affordability by member, three separate exposure figures and a filing simulation — with deterministic status.
Life-event and anytime-change elections by reason, window and outcome, so a spike in qualifying events is seen the month it happens.
Evaluation date as a parameter, role-scoped reads, cohorts under the minimum suppressed, every query logged — with Athena in place to explain any figure.
Most admin home pages carry either a hard-coded dashboard nobody can change or a link to a report pack. Here is what changes when the charts are a catalog and the numbers stay with the module.
| The moment | Fixed dashboard or legacy report | Essential Insights |
|---|---|---|
| “Who computed this number?” | The dashboard's own query, drifting from the module's. | The module's own action — the tile only asks for it with a period. |
| “Can I add a chart?” | A change request to the vendor. | A definition in BR Config — code, type, application, action, period; live on the next load. |
| “Can I see the rows?” | A screenshot and an email. | A click — where a drill-down action exists, a paged table over the same period. |
| “Make it mine” | Everyone gets the same layout. | Up to four picks from any application, saved in your browser, nobody else affected. |
| “Last 30 days” next month | Whatever dates were saved when it was built. | Recalculated from today on every read; This Month ends on its last calendar day. |
| Who is enrolled? | A daily count grid; pending and enrolled mixed together. | As-of rate with pending as its own state — from the enrollment workspace behind the tile. |
| What will ACA cost us? | One number, discovered in January. | Three figures — statutory, observed, PTC-adjusted — every month, from ACA Intelligence. |
| An entity on Workday | A separate dashboard from a separate system. | The same tile, because the module action reads the same tables through HRIS Sync. |
The Essential Insights block draws and drills; it does not converse. Athena sits on the governed workspaces the benefits tiles point at, with the same evaluation date, filters and selection the screen is showing. It reads the computed figures, explains them with their sources, compares periods or entities, and drafts the next step in the module that owns it — a campaign, a case, a configuration change — for a person to approve.
The same component on twenty home pages — one behaviour to learn, one catalog to govern.
A tile posts the module's own action; enrollment comes from enrollment, cases from Resolve, invoices from Carrier Billing.
Search the catalog, tick up to four charts from any module, set a period for the visit — saved in your browser, nobody else's.
A drill-down table opens only where a module has provided one — over the same period, paged, searchable.
Last 30 days is recalculated from today; This Month ends on its last calendar day; custom keeps its dates.
SuccessFactors records and Workday, UKG, ADP, Dayforce or Paycom records on the same tile, through HRIS Sync.
The pieces are one path. A definition is created and previewed in BR Config, loaded by a module home page as a default or a saved pick, filled by the module's action for a period, and opened on click into the rows behind it. Four stories show the path in use across different modules.
Tell us which four numbers each of your admin teams wants on its home page — enrollment, cases, invoices, ACA. We'll define them in BR Config against the module that owns each figure, preview them, load them on the home page, click through to the rows, and let a second admin pick a different four — in your tenant.
One catalog in BR Config, one block on twenty home pages, one request per tile and a click to the rows behind it — for SAP SuccessFactors entities and every entity on another HRIS.