# Now in Beta: Plugin to see TL3 Progress for TL2 users

**URL:** https://meta.discourse.org/t/now-in-beta-plugin-to-see-tl3-progress-for-tl2-users/408543
**Category:** Development
**Created:** [July 26, 2026, 12:06pm UTC](https://meta.discourse.org/t/now-in-beta-plugin-to-see-tl3-progress-for-tl2-users/408543 "2026-07-26T12:06:35Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![NateDhaliwal](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/natedhaliwal/32/313494_2.png) [@NateDhaliwal](https://meta.discourse.org/u/NateDhaliwal)
#### Post date: [July 26, 2026, 12:06pm UTC](https://meta.discourse.org/t/now-in-beta-plugin-to-see-tl3-progress-for-tl2-users/408543/1 "2026-07-26T12:06:35Z")

</div>

Hi everyone! Over the past few days, I tried my hand at [Allow users to see trust level 3 progress on user profile](https://meta.discourse.org/t/allow-users-to-see-trust-level-3-progress-on-user-profile/16968) using a plugin.

Here is the current plugin:

> **[GitHub - NateDhaliwal/discourse-see-tl3-progress](https://github.com/NateDhaliwal/discourse-see-tl3-progress)**
>
> Contribute to NateDhaliwal/discourse-see-tl3-progress development by creating an account on GitHub.

 ![image](https://global.discourse-cdn.com/meta/original/4X/9/f/0/9f0377b24a3eb15b76ac8443f4094ed7915c0847.png)

 ![image](https://global.discourse-cdn.com/meta/original/4X/5/0/4/504d3dcc54cbd28e75d91772fd0245bfc7790da6.png)

I use the amazing [Gauge.js](https://bernii.github.io/gauge.js/) for the gauges. It used to be just a plain rectangular bar, but that seemed too boring. (Plus, there’s even an animation that loads the gauge to the correct value!)

Settings:

- Progress bar color: color of the progress bar (default green, like in the picture above)
- Progress bar background color: bg color of the progress bar (default light-gray like in the picture above)
- Modal button icon (defaults to circle-info)

All texts are editable via locales, and it reuses core locales where possible.

Any feedback? Bugs? Improvements? I’d be happy to hear them!

---

<div class="post-metadata">

### Author: ![EricGT](https://avatars.discourse-cdn.com/v4/letter/e/f1d935/32.png) [@EricGT](https://meta.discourse.org/u/EricGT)
#### Post date: [July 26, 2026, 6:36pm UTC](https://meta.discourse.org/t/now-in-beta-plugin-to-see-tl3-progress-for-tl2-users/408543/2 "2026-07-26T18:36:26Z")

</div>

Nice implementation.

> [@NateDhaliwal](#):
>
> Any feedback?

A few suggestions:

- Place the name of each progress item below the graphic rather than above it.
- Show the estimated date on which TL3 eligibility will be reached. For many users, the 50-day participation requirement—or the requirement to read a large number of posts on an active forum—will be the limiting factor.
- For requirements that can prevent a user from earning TL3, include a clear explanation of how they affect eligibility. Otherwise, a user may satisfy all of the visible requirements only to discover that the eligibility window remains closed because of something such as “Silenced (last 6 months)” applies all because their first post was done using a phone and the spam bot silenced you.

* * *

Forums that enable this feature should be warned that it may significantly increase the number of TL3 users.

Because TL3 users have additional permissions, some people may try to game the system to obtain those permissions and then misuse them. Others may even create scripts to automate the process, largely bypassing the principle that trust should be earned through genuine participation.

What initially appears attractive could become a moderation nightmare if forum administrators are not aware of the potential consequences. 😀

---

<div class="post-metadata">

### Author: ![darkpixlz](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/darkpixlz/32/549896_2.png) [@darkpixlz](https://meta.discourse.org/u/darkpixlz)
#### Post date: [July 26, 2026, 9:17pm UTC](https://meta.discourse.org/t/now-in-beta-plugin-to-see-tl3-progress-for-tl2-users/408543/3 "2026-07-26T21:17:28Z")

</div>

Nice work! This is a pretty cool implementation and I like how it looks.

> [@NateDhaliwal](#):
>
> ![image](https://global.discourse-cdn.com/meta/original/4X/9/f/0/9f0377b24a3eb15b76ac8443f4094ed7915c0847.png)

I don’t really like how big and in your face the button is. I would personally probably have added a small ℹ icon next to the `trust level: member` part of the user counts.

---

<div class="post-metadata">

### Author: ![NateDhaliwal](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/natedhaliwal/32/313494_2.png) [@NateDhaliwal](https://meta.discourse.org/u/NateDhaliwal)
#### Post date: [July 26, 2026, 10:38pm UTC](https://meta.discourse.org/t/now-in-beta-plugin-to-see-tl3-progress-for-tl2-users/408543/4 "2026-07-26T22:38:03Z")

</div>

Great suggestions all! I’ll examine each one and think about the implementation.

On a separate note, I was thinking of perhaps having an option to show only a very general petcentage instead of a detailed breakdown, to make it less easy to gamify.

---

<div class="post-metadata">

### Author: ![NateDhaliwal](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/natedhaliwal/32/313494_2.png) [@NateDhaliwal](https://meta.discourse.org/u/NateDhaliwal)
#### Post date: [July 26, 2026, 10:49pm UTC](https://meta.discourse.org/t/now-in-beta-plugin-to-see-tl3-progress-for-tl2-users/408543/5 "2026-07-26T22:49:19Z")

</div>

> [@EricGT](#):
>
> - For requirements that can prevent a user from earning TL3, include a clear explanation of how they affect eligibility. Otherwise, a user may satisfy all of the visible requirements only to discover that the eligibility window remains closed because of something such as “Silenced (last 6 months)” applies all because their first post was done using a phone and the spam bot silenced you.

This actually brings me back to a point which I made previously:

> [@Allow users to see trust level 3 progress on user profile](https://meta.discourse.org/t/allow-users-to-see-trust-level-3-progress-on-user-profile/16968/52):
>
> Would it then make sense to show ‘You qualify for TL3’, however, the user can’t actually get it? Do admins want users to know if they are locked at a TL?

The user may hit everything, but the only thing holding them back is that they are locked. I guess it would probably be behind a setting, off by default.

---

<div class="post-metadata">

### Author: ![chapoi](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/chapoi/32/537252_2.png) [@chapoi](https://meta.discourse.org/u/chapoi)
#### Post date: [July 27, 2026, 8:33am UTC](https://meta.discourse.org/t/now-in-beta-plugin-to-see-tl3-progress-for-tl2-users/408543/6 "2026-07-27T08:33:48Z")

</div>

It’s a neat idea, I’ve been playing with a similar idea (I love gamification and progressing) but held off mainly because of

> [@EricGT](#):
>
> some people may try to game the system to obtain those permissions and then misuse them

This is definitely a true reason not to be too transparent, good point.

That being said, I do like progress being visible, so maybe a midway point could be achieved somehow? Showing how far along a user is, without explicitly saying what needs to be done?

I wonder if you’d consider showing some status already in their profile, instead of hiding everything behind a button?

Maybe something like showing x amount of requirements (each segment) and how many you got?

 ![CleanShot 2026-07-27 at 10.27.03](https://global.discourse-cdn.com/meta/original/4X/c/3/7/c37b2fb43495d280a11e96c4b006cc90bcb27016.png)

Or, if you do want to let them chase it, you could even say which requirement is closest to achieve:

 ![CleanShot 2026-07-27 at 10.28.13](https://global.discourse-cdn.com/meta/original/4X/e/5/c/e5c711ba766a09c6983112ea17c13c9a89b2aefc.png)

#### Other feedback:

 ![CleanShot 2026-07-27 at 10.23.30@2x](https://global.discourse-cdn.com/meta/original/4X/7/a/c/7acdc6cd12aefc8392aa536851a81b540fc46f4c.png)

These are a bit nonsensical.

I’m personally not a huge fan of gauges, they take up so much space and I’d rather show it with something that differentiates better between the ones you already have, and what’s still ongoing, for example:

 ![CleanShot 2026-07-27 at 10.31.07](https://global.discourse-cdn.com/meta/original/4X/9/c/2/9c243b6902ebe6cb521f61d3e1afb0806c82b2dc.png)

Nice work, looking forward to the completed version!

---

<div class="post-metadata">

### Author: ![NateDhaliwal](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/natedhaliwal/32/313494_2.png) [@NateDhaliwal](https://meta.discourse.org/u/NateDhaliwal)
#### Post date: [July 27, 2026, 9:10am UTC](https://meta.discourse.org/t/now-in-beta-plugin-to-see-tl3-progress-for-tl2-users/408543/7 "2026-07-27T09:10:24Z")

</div>

Is there some sort of progress bar in core that can be used? I tried looking around but couldn’t find any.

As for hiding it behind a button, I think this could be possible:

- Show a general meter on the profile (e.g. 60% there)
- If a setting is enabled, users can click to see a more detailed breakdown of their progress.

---

<div class="post-metadata">

### Author: ![chapoi](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/chapoi/32/537252_2.png) [@chapoi](https://meta.discourse.org/u/chapoi)
#### Post date: [July 27, 2026, 9:13am UTC](https://meta.discourse.org/t/now-in-beta-plugin-to-see-tl3-progress-for-tl2-users/408543/8 "2026-07-27T09:13:28Z")

</div>

> [@NateDhaliwal](#):
>
> Is there some sort of progress bar in core that can be used? I tried looking around but couldn’t find any.

No, nothing really out of the box. Closest that comes to mind is what we’re using on the redesigned admin dashboard, but they’re bar-style visuals, not a reusable component (and not segmented).

---

<div class="post-metadata">

### Author: ![EricGT](https://avatars.discourse-cdn.com/v4/letter/e/f1d935/32.png) [@EricGT](https://meta.discourse.org/u/EricGT)
#### Post date: [July 27, 2026, 9:28am UTC](https://meta.discourse.org/t/now-in-beta-plugin-to-see-tl3-progress-for-tl2-users/408543/9 "2026-07-27T09:28:55Z")

</div>

> [@chapoi](#):
>
> so maybe a midway point could be achieved somehow?

Based on my own experience in one specific situation, a useful part of the process was keeping a human in the loop.

As a general user, I could track everyone’s monthly results. This helped identify users who were consistently active and effective at helping others on the forum.

Because I also had access to the trust-level statistics, I would begin monitoring someone’s progress more frequently once they had reached roughly 90% of several Trust Level 3 requirements. If they appeared likely to qualify for TL3 but were still missing one or more requirements—and had no quantitative information showing what was expected or how close they were—I would send them a private message with an update.

Once a user reached TL-3, the follow-up step was to continue monitoring them. This helped ensure that the additional privileges were not being misused, while also providing an opportunity to explain what those privileges allowed and how they could be used effectively.

* * *

> [@chapoi](#):
>
> I’m personally not a huge fan of gauges, they take up so much space and I’d rather show it with something that differentiates better between the ones you already have, and what’s still ongoing

👍

---

<div class="post-metadata">

### Author: ![NateDhaliwal](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/natedhaliwal/32/313494_2.png) [@NateDhaliwal](https://meta.discourse.org/u/NateDhaliwal)
#### Post date: [July 27, 2026, 1:53pm UTC](https://meta.discourse.org/t/now-in-beta-plugin-to-see-tl3-progress-for-tl2-users/408543/10 "2026-07-27T13:53:22Z")

</div>

Okay, I changed a few things, what do you guys think?

 ![image](https://global.discourse-cdn.com/meta/original/4X/3/2/2/322741245dd754896f73e55da3e0315f8fffab42.png)

If you enable `Show verbose TL3 progress`:

 ![image](https://global.discourse-cdn.com/meta/original/4X/e/b/1/eb1005093715206254ed311b8533d7560806d2d4.png)

I guess I could make all the bars line up to make it neater.

---

<div class="post-metadata">

### Author: ![chapoi](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/chapoi/32/537252_2.png) [@chapoi](https://meta.discourse.org/u/chapoi)
#### Post date: [July 27, 2026, 2:26pm UTC](https://meta.discourse.org/t/now-in-beta-plugin-to-see-tl3-progress-for-tl2-users/408543/11 "2026-07-27T14:26:49Z")

</div>

Very nice progress (get it? 😜)

> [@NateDhaliwal](#):
>
> I guess I could make all the bars line up to make it neater.

Yes, that would be visually pleasing, especially with the score right-aligned for better readability 🙏

---

<div class="post-metadata">

### Author: ![EricGT](https://avatars.discourse-cdn.com/v4/letter/e/f1d935/32.png) [@EricGT](https://meta.discourse.org/u/EricGT)
#### Post date: [July 27, 2026, 3:06pm UTC](https://meta.discourse.org/t/now-in-beta-plugin-to-see-tl3-progress-for-tl2-users/408543/12 "2026-07-27T15:06:00Z")

</div>

> [@NateDhaliwal](#):
>
> If you enable `Show verbose TL3 progress`:
> 
> ![image](https://global.discourse-cdn.com/meta/original/4X/e/b/1/eb1005093715206254ed311b8533d7560806d2d4.png)

For requirements such as **“Not suspended in the last six months,”** it would be useful to show when the relevant period ends and the requirement will change to a passing status.

Some requirements use a rolling window. For example, **“Days visited”** is not based on the user’s all-time total; it is calculated over the previous 100 days. A user who visited frequently near the beginning of that window and then stopped for a while may begin visiting every day again without seeing the value increase, because older visited days are simultaneously dropping out of the window. That behavior can be confusing without an explanation. 🤷‍♂️

The statistics should also display the configured thresholds for requirements whose values can be changed. Looking at `<site>/admin/config/trust-levels`, that now appears to include most of the quantitative requirements.

When one of those configured values changes, affected users should receive some form of notification or explanation. Users actively working toward TL3 and tracking the quantitative requirements will likely ask staff and moderators why their progress changed. Some will maintain their own local scorecards and may notice a threshold change within a day.

Another useful feature would be a staff-editable free-text section describing any site-specific benefits associated with TL3 beyond the permissions granted by Discourse itself. Many sites provide no additional benefits, in which case reaching TL3 may amount mainly to a “been there, done that” achievement. On other sites, however, the additional benefits may make the effort worthwhile.

Also including the number of current TL-3 users and how active they are could be of value.

---

<div class="post-metadata">

### Author: ![NateDhaliwal](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/natedhaliwal/32/313494_2.png) [@NateDhaliwal](https://meta.discourse.org/u/NateDhaliwal)
#### Post date: [July 28, 2026, 2:59am UTC](https://meta.discourse.org/t/now-in-beta-plugin-to-see-tl3-progress-for-tl2-users/408543/13 "2026-07-28T02:59:42Z")

</div>

Progress bars line up  
 Time period now stated

> [@EricGT](#):
>
> When one of those configured values changes, affected users should receive some form of notification or explanation. Users actively working toward TL3 and tracking the quantitative requirements will likely ask staff and moderators why their progress changed. Some will maintain their own local scorecards and may notice a threshold change within a day.

Possible, I guess, but is this too out of the scope of this plugin?

> [@EricGT](#):
>
> The statistics should also display the configured thresholds for requirements whose values can be changed. Looking at `<site>/admin/config/trust-levels`, that now appears to include most of the quantitative requirements.

Could you elaborate on this? The total value is always taken from the site setting, and uses the same fundamental logic as the one in core.

> [@EricGT](#):
>
> Another useful feature would be a staff-editable free-text section describing any site-specific benefits associated with TL3 beyond the permissions granted by Discourse itself. Many sites provide no additional benefits, in which case reaching TL3 may amount mainly to a “been there, done that” achievement. On other sites, however, the additional benefits may make the effort worthwhile.

Done, now the `modal_bottom_text` setting; HTML allowed.

---

<div class="post-metadata">

### Author: ![darkpixlz](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/darkpixlz/32/549896_2.png) [@darkpixlz](https://meta.discourse.org/u/darkpixlz)
#### Post date: [July 28, 2026, 3:26am UTC](https://meta.discourse.org/t/now-in-beta-plugin-to-see-tl3-progress-for-tl2-users/408543/14 "2026-07-28T03:26:12Z")

</div>

> [@NateDhaliwal](#):
>
> ![image](https://global.discourse-cdn.com/meta/original/4X/3/2/2/322741245dd754896f73e55da3e0315f8fffab42.png)

This is definitely better, but I liked the concept example which had the closest statistic to work to. Helps me personally in why I was originally rooting for the feature (losing TL3 and not knowing why).

---

<div class="post-metadata">

### Author: ![Lilly](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/lilly/32/575047_2.png) [@Lilly](https://meta.discourse.org/u/Lilly)
#### Post date: [July 28, 2026, 4:16am UTC](https://meta.discourse.org/t/now-in-beta-plugin-to-see-tl3-progress-for-tl2-users/408543/15 "2026-07-28T04:16:45Z")

</div>

i have no use for this plugin myself (only because trust level progress isn’t that important on my forums), but i am enjoying watching you develop it - great job Nate! 👏

---

<div class="post-metadata">

### Author: ![NateDhaliwal](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/natedhaliwal/32/313494_2.png) [@NateDhaliwal](https://meta.discourse.org/u/NateDhaliwal)
#### Post date: [July 28, 2026, 5:50am UTC](https://meta.discourse.org/t/now-in-beta-plugin-to-see-tl3-progress-for-tl2-users/408543/16 "2026-07-28T05:50:44Z")

</div>

Thanks! Meanwhile, I have to get used to the new avatar 😆 .

---

<div class="post-metadata">

### Author: ![EricGT](https://avatars.discourse-cdn.com/v4/letter/e/f1d935/32.png) [@EricGT](https://meta.discourse.org/u/EricGT)
#### Post date: [July 28, 2026, 9:16am UTC](https://meta.discourse.org/t/now-in-beta-plugin-to-see-tl3-progress-for-tl2-users/408543/17 "2026-07-28T09:16:25Z")

</div>

> [@NateDhaliwal](#):
>
> > [@EricGT](#):
> >
> > When one of those configured values changes, affected users should receive some form of notification or explanation. Users actively working toward TL3 and tracking the quantitative requirements will likely ask staff and moderators why their progress changed. Some will maintain their own local scorecards and may notice a threshold change within a day.
> 
> Possible, I guess, but is this too out of the scope of this plugin?

I think of it like driving with a map you trust. One day, while following it, you find yourself on a road that does not appear on the map. It may be only one missing road, but you now have reason to question how accurate the rest of the map is.

Similarly, if one of the TL3 requirements changes without your knowledge and you suddenly find that reaching TL3 has become much more difficult, can you still trust that the other displayed values are accurate?

> [@NateDhaliwal](#):
>
> > [@EricGT](#):
> >
> > The statistics should also display the configured thresholds for requirements whose values can be changed. Looking at `<site>/admin/config/trust-levels`, that now appears to include most of the quantitative requirements.
> 
> Could you elaborate on this?

These are the current TL-3 settings I see under `<site>/admin/config/trust-levels` for a specific site:

 ![image](https://global.discourse-cdn.com/meta/original/4X/e/b/b/ebb46bf3f72c7c06ca77df25a2a7ad976ec469f5.png)

 ![image](https://global.discourse-cdn.com/meta/original/4X/a/5/e/a5eb82955890fcbffbc7817d9cc0bf6e795cb5a2.png)

 ![image](https://global.discourse-cdn.com/meta/original/4X/e/8/6/e86c8382db54c8d12eebc2f9e229824bf63d0009.png)

For a long time, many of these values could not be changed through site settings. They can now be changed relatively easily.

Because these settings are the source of truth for many TL3 requirements, testing the plugin should include changing one of them and verifying that the plugin’s displayed result changes accordingly.

Think of my earlier reply as a breadcrumb for anyone trying to locate the source of truth for these values: `<site>/admin/config/trust-levels`. However, viewing that page requires administrator access.

---

<div class="post-metadata">

### Author: ![NateDhaliwal](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/natedhaliwal/32/313494_2.png) [@NateDhaliwal](https://meta.discourse.org/u/NateDhaliwal)
#### Post date: [July 28, 2026, 10:48am UTC](https://meta.discourse.org/t/now-in-beta-plugin-to-see-tl3-progress-for-tl2-users/408543/18 "2026-07-28T10:48:58Z")

</div>

> [@EricGT](#):
>
> Because these settings are the source of truth for many TL3 requirements, testing the plugin should include changing one of them and verifying that the plugin’s displayed result changes accordingly.

Got it. The plugin puts the stats into an API route at `/u/:username/tl3-progress.json`, which gets the data from the backend with all the core methods that access those. So they update the stats when core refreshes in the background. Based on my testing, it refreshes the totals immediately.

Just a quick update: I’m working on the next closest stat indicator:

![image](https://global.discourse-cdn.com/meta/original/4X/c/5/f/c5f9438c2432d2f45b8a39f006e86b3c1e2dd7ff.png)

Still a WIP.

---

<div class="post-metadata">

### Author: ![EricGT](https://avatars.discourse-cdn.com/v4/letter/e/f1d935/32.png) [@EricGT](https://meta.discourse.org/u/EricGT)
#### Post date: [July 28, 2026, 11:04am UTC](https://meta.discourse.org/t/now-in-beta-plugin-to-see-tl3-progress-for-tl2-users/408543/19 "2026-07-28T11:04:42Z")

</div>

> [@NateDhaliwal](#):
>
> I’m working on the next closest stat indicator:

Also consider users who may soon lose TL3. An indicator showing which statistic—or statistics—puts their TL3 status at risk would be useful.

* * *

Sorry that I keep sharing these small bits of information piecemeal. Much of this knowledge came from learning through mistakes along the way, so certain details only come to mind when another thought triggers the memory. I hope that makes sense.

---

<div class="post-metadata">

### Author: ![NateDhaliwal](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/natedhaliwal/32/313494_2.png) [@NateDhaliwal](https://meta.discourse.org/u/NateDhaliwal)
#### Post date: [July 28, 2026, 2:13pm UTC](https://meta.discourse.org/t/now-in-beta-plugin-to-see-tl3-progress-for-tl2-users/408543/20 "2026-07-28T14:13:13Z")

</div>

Looking at the different types of notifications and how they are created, I’m not sure if it’s possible to send a custom notification to redirect to the user summary page or something similar without submitting a PR to core, or more. Any ideas @chapoi?

[Next page](https://meta.discourse.org/t/now-in-beta-plugin-to-see-tl3-progress-for-tl2-users/408543.md?page=2)
