Right now we have different ban durations but we don't tell the users how long every single one is exactly. We only communicate it very subtle by using words like for "a few days" or "some time".

The idea behind this tactic is that we want the users to remain in uncertainty about this. This should lead to them not being sure when and if they will get back so they "fear" the ban more. Giving them the exact timespan could lead to them thinking "Ok, I will simply wait it out, it is not that long..." instead of "shit, when will I be allowed back in???"

On the other hand this also leads to quite some confusion and redundant work for moderators getting unban requests from users that will get back in soon anyway. I also work on a better communication of our moderation system right now and want to be quite open about stuff but normally no specific numbers.

What would you consider a best practise and what would you advise me to do? Also did someone already changed from one to the other? How was your experience?

3 Answers 3


Best practice depends on the community in question.

I once was part of a big community centered around a game. We kind of were a small community with strict rules. You do not harm others or you are banned right away. This worked out fine for the time being, however, one time the community racked up and suddenly the community exploded. We saw that we needed to change how punishment works and fortunately, we had some very skilled and experienced developers at our disposal.

We first thought if the current system works out in such a rapid moving community. The target group was relatively young, around 10 to 16 years old. As we all know are users in this group tend to be very emotional and because of that the rate of misconduct skyrocketed. So we needed to change something.

Before proceeding to the then developed system, I want to summarise the old system first. It was divided in a temporary ban and a permanent ban, just like yours.

In case, you broke our rules, we will either ban you temporarily or permanently depending on the misconduct at hand. We will decide then what is appropriate.

That's it. There was nothing more. This resulted in a lot of work as everyone asked: "Am I banned temporarily or permanently? If the first, how long?" This became annoying quite fast so we developed a new system.

The first thing was to abolish the term "temporary ban". In the end, a ban is nothing else than a legal prohibition, meaning that the term implies that something is a lasting effect. You usually don't prohibit something for a while just to allow it then again. So instead of using this term we added the term "exclusion". The new system now had two ways of punishing users who misbehaved. One was to be temporarily excluded from the community, the other was to be banned, basically meaning that's it.

In our community, we adopted a few rules we all ask to follow. These rules are necessary to ensure that everyone has the most fun possible.

In case that someone broke the rules, the person in question will always be excluded from our community for some time to think about what they have done. If something happens again, they will receive an additional exclusion to think again. If a person repeatedly breaks our rules (more often than twice), we will permanently ban the person in question. A ban is not reversible.

With that, we had a way to clearly make a difference between being kicked out temporarily and permanently. After introducing this, we already saw a sharp recline in requests over bans. The next thing to tackle was the duration of an exclusion.

There we somehow needed an automatic way to take care of things. Our developers added some nice features which could exclude everyone on the spot if one either abused our chat or cheated. This being done, the next question needed to be resolved. How long should an exclusion be? This was a tough one.

First, we gave everyone the same amount of days and showed it to them -then we analyzed how many of these who misbehaved misbehaved again. The number was somewhat high so we tried out something else: We excluded everyone a random amount of days, completely unrelated to the case in question and didn't show any information about the duration. This resulted in a decline of repeating behaviour so we thought about optimizing it.

We added a range to it and narrowed it down quite a bit. We found an amount of at least seven days and a maximum of nine days very appropriate so that users had the time to think about their misconduct. So we excluded everyone randomly either seven, or eight or nine days. This worked pretty well but also came with a lot of requests, so we devised yet another solution to this with our developers.

An exclusion is a time span between seven to nine days depending on the severity of your case. However, you are allowed to apply for an early ending of your exclusion. Please do so using our official tools. Asking staff privately about anything related to your exclusion will result in an automatic ban. Please only use our official tools.

(Yes, we lied to our users about the severity as it actually was randomly assigned. However, the range was not big, and as said before the misconduct rate skyrocketed so we needed a way to at least seem it to be handled personally.)

Our developers devised a way to connect all automatic exclusions with the tools so everyone could see their offence. Of course, there were still manual exclusions, these ones could just be added manually. Then someone could apply for an early ending of their exclusion by just writing that he understood our rules and apologizing.

This became a nuisance quite soon as well so our amazing developers implemented a way to scan every application for key words to sort applications in two different kind of queues. These were then read manually and a well written application resulted in an early ending of the exclusion.

Doing so, we could manage the rate of offenders. In the beginning we had to deal with around 200 temporary bans and permanent bans a day - however, the staff was a very small team. That was not manageable at all. After going through all this iterations we could reduce this to 10 exclusions a day and only one ban every two days! This was a reduction of 90%!

Of course, it must be said that we were very lucky to have skilled and quite experienced developers at our hands as well as community managers who spent the time to analyze all the data so we had a big opportunity. In the end, we could conclude that handling it that way and referring to punishments either as exclusion or ban improved our situation dramatically.

If you don't have the technical ability to implement such a solution, I would do something I did when I also had no technical resources. I went with the aforementioned system but made the rules even stricter.

In our community, we adopted a few rules we all ask to follow. These rules are necessary to ensure that everyone has the most fun possible.

In case that someone broke the rules, the person in question will always be excluded from our community for some time to think about what they have done. If something happens again, they will receive an additional exclusion to think again. If a person repeatedly breaks our rules (more often than twice), we will permanently ban the person in question. A ban is not reversible.

We do NOT talk about an exclusion while it is still active. If you contact the staff about exclusion while you are still excluded, this will result in an automatically applied ban. If you wish to discuss matters with us, please do so after your exclusion time is up. We are more than happy to resolve matters and / or reset your exclusion counter if there is evidence that no apparent misconduct happened.

This was one of the strictest rules I ever applied in a community it was not as successful as the solution mentioned above but it also dramastically decreased messages about an exclusion. Usually we also showed an excluded user our rules again and marked the section with the automatically applied ban red. We had to resolve a lot of matters afterwards but quite often the logs of the chat showed everything needed so that matters were resolved fast.

As the very first sentence mentioned it depends on the community. I moderated a lot of communities with young(-er) target groups so that a "fear", as you called it, was indeed very helpful. Tough rules also helped. However, in a community like SE something like this would be inappropriate.

This is because SE very different. The target groups are varied way more and very often it's professionals (or professionals-to-be) who participate who also read the rules. (Contradictory to younger persons, who usually just skip the part of reading rules.) In exchange for doing so, they somewhat expect you to tell them how long they have been banned.

In the very end, it boils down how you can run a happy community in the long run. In my experience, younger communities need stricter rules and the staff to be more like a nanny to establish a lasting happiness. This also results in the method described above.

A community where respect is a common good and the target group is older, the rules do not need to be too strict as everyone expects everyone else to behave friendly. So even the message of banning is expected to be friendly and clear.

  • 1
    My community is definitely a younger and more dramatic one. Great answer, only one minor question: Are you also able to detect abusive language automatically and if so how did you deal with false positives?
    – loiro
    Feb 7, 2017 at 18:12
  • @loiro: The detection system was very basic: black words, spamming of punctuation, links and so on put an application right into the "negative" queue. Both queues were read manually before deciding, and false positives just were sorted out and put into the right queue. It was intended to integrate an advanced "offender database" to have applications sorted more smartly with results of previous offences and aforementioned false positives, but it was found to be pretty much overkill and was never actually implemented.
    – Zerotime
    Feb 11, 2017 at 13:43
  • Did your scripts for excluding users based on language used in chat use human review queues like the exclusion lift request system, or were users who posted comments in chat about how to analyze the assumptions in exchange student programs involving Scunthorpe, England, Intercourse, Pennsylvania, and Middlesex County, Virginia required to manually contest their exclusions? Feb 15, 2017 at 0:25
  • @RobertColumbia: Whenever someone used a worrisome word, the user got automatically a notification stating that he shouldn't repeat the word in question to avoid being excluded for verbal abuse and swearing. There was a counter taking in consideration every swear word used and counting them. After a specific usage in a specific timeframe, the exclusion would be issued automatically. The counter was reset to zero every 24 hours.
    – Zerotime
    Feb 15, 2017 at 18:34

Ultimately I think it boils down to how often you want to be contacted with the unban requests and questions about when the suspension actually ends. If you're a relatively small community then the number of such questions might be manageable, but as your community grows you might find that they become a nuisance.

Having a specific date will remove most (but not all) of these questions. People might still ask about the specific time the suspension ends, but that can be reduced by making sure you include the time in any message and specify the timezone.

There's nothing stopping you displaying a specific date to the suspended user, but the more generic "for a few days" or "some time" to other users.

Stack Exchange uses the specific time and that seems to work well, especially with the number of users we have.


I think it will be good to display warning before actually you ban users. Also yes displaying how long the user is banned will be good. Otherwise there are many forum and user will loss interest in this site.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.