> For the complete documentation index, see [llms.txt](https://sadibot.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sadibot.gitbook.io/docs/policies/report-policy/math-algorithm.md).

# Math Algorithm

Want to learn how our reporting algorithm works to understand how we calculate a user's dangerousness. Here you can find out evrything you need to know.

{% hint style="info" %}
Our mathematical system is quite **complex**, but it manages to **correctly** and **fairly** assign all durations and risks to our users. Before explaining the mathematical process through some calculations, we must first lay out a few rules that we **developers** established even before developing this algorithm.
{% endhint %}

**ALGORITHM PRINCIPLES:**

1. All report durations **cannot** exceed **360 days**, so even if the calculation returns a **longer** result, the report must still be submitted with the **maximum imposed duration**.
2. For a report to be set to **permanent**, there must be at least **one reason (case)** from our list that includes a **duration** of **(999) days**, which the algorithm will interpret as **permanent**.
3. The algorithm must **always apply** the **highest risk** predicted by the **reasons (cases)** within the report as the **risk level** of the report.

{% hint style="info" %}
**Too complicated?** No problem, we'll show you a step-by-step example of how our algorithm works and calculates. This will be explained in **ITALIAN** for greater understanding.
{% endhint %}

**ALGORITHM EXAMPLE:**

Benissimo, siamo arrivati a quel punto in cui è necessario citare qualche dato e qualche esempio, così che il funzionamento del nostro algoritmo possa essere compreso al completo delle sue funzionalità.

{% hint style="warning" %}
**Attenzione!** Il nostro algoritmo ha una logica molto complessa da comprendere. Visto che un principio fondamentale della nostra community è la **trasparenza** siamo più che lieti di accogliere eventuali domande a riguardo in un ticket di supporto dedicato.
{% endhint %}

Ipotizziamo che **un utente** entra in un server, per comprensione lo chiameremo **bob.**\
Bob va in chat generale e scrive il seguente messaggio:

> Ma porcoddio, sei un testa di cazzo, come ti permetti di mettermi in timeout per due ore? Fallo di nuovo e ti ammazzo stronzo!

Analizziamo il messaggio inviato, in questo caso si presentano due **infrazioni**: Tossicità e Minacce di Morte.

{% hint style="info" %}
**TOSSICITA' GRAVE                                   MINACCE DI MORTE                                BLASFEMIA**\
Durata Segnalazione: 60d                      Durata Segnalazione: 120d                     Durata Segnalazione: 30d\
Pericolosità: Bassa                                    Pericolosità: Media                                   Pericolosità: Bassa
{% endhint %}

Compiliamo le segnalazioni, verifichiamo le prove e poi finalmente inseriamo questi dati nel bot, utilizzando i bottoni e le opzioni pre-impostate. Che calcolo farà adesso il bot?

Il bot adesso prenderà la **durata più alta** che c'è tra le motivazioni, in questo caso **120d** appartenente alla motivazione "Minacce di Morte" e la sommerà con il **20%** della somma di **tutte le altre durate presenti**. Facciamo la formula insieme.

> durata = 120 + \[20% di (60+30)]
>
> durata = 120 + \[20% di 90]
>
> durata = 120 + 18
>
> durata = 138d

Bene! Abbiamo ottenuto il nostro risultato, la **durata totale** sarà quindi di **138 giorni**, però attenzione! Le nostre durate possono essere solamente **multipli di trenta**, ad esempio (30, 60, 90, 120, 150, 180, ...) perciò il nostro **algoritmo** approssimerà il risultato per eccesso, fino a raggiungere un multiplo di trenta come regolamentato. In questo specifico caso, la **durata finale** sarà quindi **150d**.

Stabilito questo, un accenno sul **calcolo della pericolosità**, come dettato dal principio numero (3) sopra, il nostro **algoritmo** applicherà la pericolosità più alta che trova tra le motivazioni che gli sono state fornite. In questo caso la pericolosità più alta è quella della motivazione di **Minacce di Morte** che prevede una pericolosità di livello **medio**.

In conclusione, il nostro **algoritmo**, dopo analisi e calcoli, ha pubblicato questa segnalazione:

{% hint style="info" %}
**(!) NUOVA SEGNALAZIONE**

Utente: @bob\
Pericolosità: **Media**\
Durata: **150d**\
Motivazione: **Minacce di Morte, Tossicità, Blasfemia.**
{% endhint %}

Non è poi così **difficile**... vero?.. (forse un pò). Vabbè dai non iniziare a sbattere la testa sulla tastiera e rileggere **cento** volte l'esempio per cercare di capirlo. Se vuoi approfondire di più su questo sistema o hai necessità di qualche spiegazione aggiuntiva, non esitare ad aprire un ticket di supporto.
