Thursday, September 3, 2026

Sankey chart of user abilities

 Prompt: If there is a software development model where the features on a per user basis are enabled or disabled using remote config by orchestrating the parameters.. will we be able to generate a sankey chart that depicts users adept at a particular feature

Yes — absolutely, and it could actually be a very useful visualization for the kind of software-development model you're describing.

The key is to distinguish configuration from actual usage.

Your model

Imagine your application has:

  • Users: U1, U2, U3, ...

  • Features: F1, F2, F3, ...

  • Remote configuration determining whether a feature is enabled

  • Parameters controlling how a feature behaves

For example:

UserFeature AFeature BFeature C
U1EnabledEnabledDisabled
U2EnabledDisabledEnabled
U3DisabledEnabledEnabled

You could then collect runtime telemetry such as:

User → Configuration → Feature → Action/Usage

and construct a Sankey such as:

                    ┌── Feature A ── Used
                    │
Users ──→ Config ───┼── Feature B ── Used
                    │
                    └── Feature C ── Not Used

But there's a more interesting version.

You can make the Sankey represent the user's "feature journey"

For example:

                 ┌── Search ────────┐
                 │                   ↓
Users ──→ Enabled Features ──→ Used Features ──→ Successful Outcome
                 │                   ↑
                 ├── Recommendations ┘
                 │
                 └── Analytics

The width of each flow represents the number of users.

So you might discover:

10,000 Users
   │
   ├── 8,000 → Feature A enabled
   │              └── 6,200 actually used
   │
   ├── 6,500 → Feature B enabled
   │              └── 1,100 actually used
   │
   └── 4,000 → Feature C enabled
                  └── 3,800 actually used

That immediately tells you something that a conventional feature-usage bar chart doesn't: where users are being enabled, filtered, and subsequently flowing through the system.

The really interesting research/software-engineering angle

If your remote configuration is parameterized, you can add another dimension:

User → Configuration → Feature → Parameter → Behaviour → Outcome

For example:

                     ┌─ Search ── threshold=0.7 ── Success
                     │
Users → Remote Config┼─ Search ── threshold=0.9 ── Abandoned
                     │
                     └─ Recommendations ────────── Success

Now the Sankey isn't merely saying "who uses Feature X?"

It can answer:

"How do different configuration decisions cause different populations of users to flow through different features and ultimately produce different outcomes?"

That's much more powerful.

One important caveat

A Sankey doesn't by itself tell you that users are "adept" at a feature.

It tells you about flows and quantities.

If by adept you mean something like:

  • users who successfully completed the feature,

  • users who use it repeatedly,

  • users with high proficiency,

  • users who require fewer attempts,

  • users who achieve a desired outcome,

then you need to define an adeptness metric first.

For example:

Adept user =
    Feature enabled
    AND used ≥ 5 times
    AND success rate ≥ 80%

Then your flow could become:

All Users
    ↓
Feature Enabled
    ↓
Feature Used
    ↓
Repeated Usage
    ↓
Successful Usage
    ↓
Adept Users

That is a very natural Sankey representation.

If you're thinking of this as a software architecture / research model, there's an even more interesting possibility: treating the remote configuration system as a feature orchestration layer, and the Sankey as a runtime observability model of user-feature affinity. That could be developed into a fairly concrete framework rather than just a visualization.

Prompt: Can I solicit user abilities from other websites to research on gaps in them? like competencies and suggest users some new features to try

Yes — technically and conceptually, this is possible, but there is an important distinction between soliciting abilities and silently collecting them.

What you're describing could become a very interesting extension of your remote-configuration idea:

Build a user competency profile from consented signals available across services, identify gaps, and use those gaps to recommend features or learning opportunities.

A possible architecture

External Sources
     │
     ├── GitHub ───────┐
     ├── LinkedIn ─────┤
     ├── Stack Overflow┤
     ├── Learning sites ┤
     └── Your application
                      │
                      ▼
             ┌─────────────────┐
             │ Competency      │
             │ Extraction      │
             │                 │
             │ JavaScript  4/5 │
             │ React      3/5 │
             │ Git        5/5 │
             │ GraphQL    1/5 │
             └────────┬────────┘
                      │
                      ▼
              Competency Graph
                      │
             ┌────────┴────────┐
             ▼                 ▼
       Strengths             Gaps
                              │
                              ▼
                    Feature Recommendations
                              │
                              ▼
                    Remote Configuration
                              │
                              ▼
                         User tries
                              │
                              ▼
                         Telemetry
                              │
                              ▼
                    Updated competency

The interesting part is that the recommendation itself becomes an experiment.

Suppose your system detects:

User competency

React        █████  5
JavaScript   ████   4
REST APIs    ███    3
GraphQL      █      1

Your application might decide:

"This user has strong React and REST experience but relatively little GraphQL exposure."

It could remotely enable a GraphQL exploration feature for that user.

Then you measure:

Recommended
     ↓
Feature enabled
     ↓
Feature opened
     ↓
Feature attempted
     ↓
Feature successfully completed
     ↓
Repeated usage

Now your Sankey idea becomes particularly powerful.

You could connect competency → recommendation → adoption

For example:

Users
 │
 ├──────────────→ Strong React
 │
 ├──────────────→ Strong REST
 │
 └──────────────→ GraphQL gap
                         │
                         ▼
                GraphQL feature offered
                         │
              ┌──────────┴──────────┐
              ▼                     ▼
          Tried it              Ignored it
              │
        ┌─────┴─────┐
        ▼           ▼
     Adept       Struggled

That gives you a feedback loop:

Observe → infer gap → recommend → enable → observe outcome → update profile.


But there's a significant privacy issue

I would not design this as:

"Go to other websites and collect information about what this person can do."

Instead, design it as:

"User-authorized competency aggregation."

For example, the user explicitly connects accounts or imports their competency information.

You also need to distinguish:

Evidence

User has 27 GitHub repositories involving React.

from:

Inference

User's React competency = 4.2/5.

The second is a model-generated inference and shouldn't be presented as an objective fact.

And ideally the user should be able to see:

Why am I being recommended GraphQL?

✓ 14 REST projects detected
✓ React experience detected
✓ No GraphQL activity detected

Confidence: Medium

That makes the system explainable.

There's an even bigger research question here

You could frame the research problem as:

Can consented cross-platform competency signals be used to identify latent user capability gaps and dynamically personalize feature exposure through remote configuration?

Then you have three measurable components:

  1. Competency inference — what does the system think the user knows?

  2. Gap detection — what potentially useful capability is missing?

  3. Adaptive feature exposure — does exposing the appropriate feature actually improve adoption/competency?

Your earlier Sankey visualization could then become the evaluation mechanism showing:

User population → competency profile → detected gap → recommended feature → feature adoption → successful proficiency.

That is considerably more interesting than simply making a Sankey chart of feature usage. It starts looking like a closed-loop adaptive software system.