# Badge granted when topic created

**URL:** https://meta.discourse.org/t/badge-granted-when-topic-created/43195
**Category:** Feature
**Created:** [April 25, 2016, 8:26pm UTC](https://meta.discourse.org/t/badge-granted-when-topic-created/43195 "2016-04-25T20:26:08Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![EJGamerCake](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ejgamercake/32/53498_2.png) [@EJGamerCake](https://meta.discourse.org/u/EJGamerCake)
#### Post date: [April 25, 2016, 8:26pm UTC](https://meta.discourse.org/t/badge-granted-when-topic-created/43195/1 "2016-04-25T20:26:08Z")

</div>

When I got a nice topic badge, it said that it was granted 16 hours ago, which was when I created the topic.

I did not receive the badge 16 hours ago, it hit 10 likes a few minutes ago.

---

<div class="post-metadata">

### Author: ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)
#### Post date: [April 25, 2016, 8:35pm UTC](https://meta.discourse.org/t/badge-granted-when-topic-created/43195/2 "2016-04-25T20:35:05Z")

</div>

What is the desired behavior here @sam?

---

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [April 25, 2016, 8:38pm UTC](https://meta.discourse.org/t/badge-granted-when-topic-created/43195/3 "2016-04-25T20:38:30Z")

</div>

Desired is 10th like but it’s technically very expensive to find the 10th like so you have the date

---

<div class="post-metadata">

### Author: ![Falco](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/falco/32/179432_2.png) [@Falco](https://meta.discourse.org/u/Falco)
#### Post date: [April 25, 2016, 8:44pm UTC](https://meta.discourse.org/t/badge-granted-when-topic-created/43195/4 "2016-04-25T20:44:07Z")

</div>

Is this the minutely BadgeGranter job? What about using CURRENT\_TIMESTAMP for the date?

---

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [April 25, 2016, 9:22pm UTC](https://meta.discourse.org/t/badge-granted-when-topic-created/43195/5 "2016-04-25T21:22:13Z")

</div>

That works but does not work for backfills (which are always running and fixing stuff) and you end up having an inconsistent badge grant date.

Example edge case:

- You are granted badge
- Someone deletes topic
- You are ungranted badge
- Someone undeletes topic
- You are granted the badge at a completely different date

---

<div class="post-metadata">

### Author: ![Falco](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/falco/32/179432_2.png) [@Falco](https://meta.discourse.org/u/Falco)
#### Post date: [April 25, 2016, 9:40pm UTC](https://meta.discourse.org/t/badge-granted-when-topic-created/43195/6 "2016-04-25T21:40:33Z")

</div>

I would argue that it’s better that way, even on this edge case, because people would understand that the **grant** occurred when the system saw the topic was back.

Like I think it’s better to grant on job execution because people would understand that the system checks are periodic.

This map to know stuff on a lot of real and virtual stuff: bank system payments on weekend show as monday, MMO RPG granting a quest or achievement on a later date etc.

But I digress. Don’t want to bike-shed more 😄.
