Usage Reports
Usage Reports shows who uses what in your workspace: which screens, dashboards, apps and notebooks people open, how many people come back, and where they go next. Use it to see what your members adopt, which dashboards and apps earn their keep, and where people drop out of a process.
Open it from the Identity tab, next to the Security Log.
Who Can See It
Section titled “Who Can See It”Usage Reports needs the same permission as the Security Log: identity.security_log.read. Without it the button is not offered, and a member who opens the report anyway sees a notice that they don’t have access.
The reports show usage per member in two places: the Users tab, and the Daily activity by member and First use exports, which include member ids. Everything else is counted across members. Grant the permission only to people who should see individual activity.
What Is Counted
Section titled “What Is Counted”Usage Reports combines five sources. Choose one from Source, or leave it on All sources.
| Source | What is recorded |
|---|---|
| PlaidCloud app | The screens members open and the actions they take in the app. |
| Superset | Dashboard and chart views. |
| Panel apps | App visits and the time members spend in each app. |
| JupyterHub | Time members spend in JupyterHub sessions. |
| Jupyter notebooks | The notebooks members open and save. |
JupyterHub sessions and Jupyter notebooks are separate sources, so you can choose either one. Panel apps are a single source. Notebook events are recorded only for notebooks that run on the default notebook image. A custom image doesn’t report them.
Read the Reports
Section titled “Read the Reports”Choose a source and a Date range at the top of the window, then select Refresh. The ranges are the last 7, 30, 90 or 180 days. Each tab loads when you first open it and again when you change the source or range.
Overview
Section titled “Overview”The headline numbers for the range:
| Number | Meaning |
|---|---|
| Active users | Members with any activity. |
| New users | Members seen for the first time in the range. |
| Returning users | Active members who were first seen before the range. |
| Active minutes | Approximate: five minutes for each period with activity. |
| Events | Everything recorded. |
| Unattributed events | Events no member could be named for. They count as events, not as users. |
| Session minutes | Panel and JupyterHub session time, counted apart from active minutes. |
Adoption lists each screen, dashboard, chart or item with its source, event, number of users, share of active users, events and unattributed events. By month shows active users, average daily users and stickiness for each month, with a note when the month is still running, only partly covered, or a frozen snapshot.
Activity
Section titled “Activity”Active users by Daily, Weekly or Monthly period, plus Retention by first week: for each week members first appeared, how many came back in each week after. A period marked with an asterisk isn’t all inside the range.
The most taken moves between screens, as Moved from, Moved to and Times taken, across apps and sources. Paths cover the last 30 days at most.
One row per member: name, username, active days, events, active minutes, session minutes, and when they were first and last seen.
Exports
Section titled “Exports”Download a summary as a CSV. Choose the Summary and a Date range of up to 25 months, then select Download CSV.
| Summary | Contents |
|---|---|
| Daily activity | Users and events for each day, source, event and subject. |
| Daily activity by member | The same for each member, with member ids. |
| Monthly adoption | Users and events for each month, source, event and subject. |
| Monthly active users | Active users for each month and source. |
| First use | When each member first used each source, with member ids. |
The export uses the source you chose above the tabs. A large summary downloads in batches of up to 50,000 rows, and the window combines them into one file. If the file would be larger than the window builds, it saves what it has and tells you the file is incomplete: choose a shorter range to get the rest.
Every export writes an entry to the Security Log recording who exported which summary, the range, and the number of rows. A summary that spans several batches writes an entry for each batch.
Funnel
Section titled “Funnel”See how many members go through a sequence of steps. A step is an event from one of the sources, for a particular subject, or Any subject.
- Select Add step and choose the source, event, and subject for each step. A funnel has 2 to 6 steps.
- Choose Time allowed between steps: 1, 6, 24, 72, or 168 hours.
- Choose a Date range of 7, 30, or 90 days.
- Select Run funnel.
The result shows, for each step, how many members reached it, the share of those who started, how many stopped there, and the median time from the previous step. Steps can mix sources, so you can follow a member from a PlaidCloud screen to a Superset dashboard. Recent funnels reopens a funnel you ran before. A step list only offers events recorded in the range.
Unattributed Usage
Section titled “Unattributed Usage”Some events can’t be tied to a PlaidCloud member. They count in Events and in Unattributed events, but never in user counts. The main cases:
- A Superset account created inside Superset instead of through PlaidCloud.
- A view of an embedded dashboard, which has no Superset user.
- Panel and JupyterHub activity the platform logs can’t tie to a member. Their attribution comes from those logs, so treat it as best-effort.
A large unattributed share on a source means its user counts are understated.
When History Starts
Section titled “When History Starts”History begins when usage collection is turned on for your workspace, and a day or month before then shows no activity. The first month with data is marked as partial.
Panel and JupyterHub are read from platform logs, which are kept for about 90 days. When collection starts, those two sources fill in at most that much earlier history. Superset fills in from its own logs, up to 180 days. Only the PlaidCloud app starts from nothing when collection starts.
Usage Reports keeps raw events for 180 days, which is why the longest range is 180 days, and keeps monthly summaries for 25 months. When a member is removed outside PlaidCloud, for example through SCIM or Keycloak, their raw usage ages out after 180 days and their first-use record after 25 months.
Erase a Member’s Usage
Section titled “Erase a Member’s Usage”A workspace administrator (or super user) with the identity.security_log.read permission can erase one member’s usage and stop collecting it, then lift the erasure later. Both erase and restore require that permission and that role. These two actions are available through the REST API only.
| Action | Request |
|---|---|
| Erase | DELETE /rest/v1/identity/usage/users/{user_id} |
| Restore | DELETE /rest/v1/identity/usage/users/{user_id}/erasure |
Erasing removes the member’s events and first-use record, and from that moment the reports and exports leave the member out. Their usage isn’t collected again, and history that is read in later from Panel and JupyterHub logs is dropped too. If the removal can’t finish at once, the response says so and the next hourly maintenance run completes it.
Restoring lifts the erasure so new activity is collected again. It doesn’t bring back what was erased.
Both actions write an entry to the Security Log.