Calculateur de notes avec bonus fixe et plancher
Appliquez un barème transparent lorsque la règle associe un bonus fixe à une note minimale garantie.
Lancer gratuitement
Saisissez la note initiale, le bonus, le plancher et la note maximale. Le calculateur ajoute le bonus, compare le résultat au plancher, retient la valeur supérieure puis respecte le plafond. Il indique aussi la règle déterminante, afin que vous puissiez expliquer, reproduire et contrôler chaque résultat.
Décrivez le barème au moyen de quatre valeurs
Commencez par la note brute telle qu'elle figure avant la correction. Indiquez ensuite le bonus fixe, soit le même nombre de points accordé à chaque note concernée. Le plancher est le résultat minimal garanti, tandis que la note maximale constitue le plafond autorisé. La séparation de ces valeurs évite de confondre un bonus de cinq points avec un plancher de soixante-dix. Une note de soixante reçoit d'abord le bonus; si elle atteint soixante-cinq, le plancher reste déterminant. Une note de quatre-vingts reçoit le même bonus et demeure normalement au-dessus du plancher. Les quatre données doivent être des nombres finis et positifs ou nuls. La note brute et le plancher ne peuvent dépasser le maximum, car un tel paramétrage serait contradictoire. Les décimales sont admises si le cours utilise des points fractionnaires ou des pourcentages.
Respectez l'ordre des opérations
Le calcul suit une séquence fixe. Il ajoute d'abord le bonus à la note brute et affiche cette valeur intermédiaire. Il la compare ensuite au plancher et conserve la plus élevée. Enfin, il confronte la valeur retenue à la note maximale et applique le plafond si nécessaire. Sous forme compacte, la note finale est le minimum entre le maximum et la plus grande valeur parmi la note bonifiée et le plancher. La réponse fournit la note finale, la hausse totale et la règle appliquée. minimum_floor signifie que le bonus n'atteignait pas le plancher; flat_bump indique que le bonus suffisait; maximum_cap signale que le plafond a limité le résultat. Cet ordre est essentiel: plafonner avant un plancher mal configuré créerait une incohérence, tandis qu'ajouter le bonus après le plancher accorderait davantage que la règle annoncée.
Appliquez le calcul uniformément et consignez ses limites
Pour une vérification individuelle, comparez la note brute, la valeur bonifiée et la note finale avec le règlement écrit. Pour un traitement en série, envoyez une requête par note et conservez la règle appliquée avec le résultat; vous distinguerez ainsi les notes relevées par le plancher de celles qui reçoivent seulement le bonus. Des entrées identiques produisent toujours la même sortie, sans réseau, hasard ni heure courante. L'outil ne détermine pas si le barème est équitable, autorisé ou conforme au règlement d'un établissement. Il ne convertit pas les lettres, ne pondère pas les devoirs, n'applique pas un arrondi local et ne modifie aucun carnet de notes. Réglez ces questions avant son utilisation. Si votre politique réserve le bonus aux notes sous un seuil, préserve un classement ou redimensionne toute une distribution, choisissez un autre modèle. Utilisez celui-ci uniquement avec un bonus, un plancher et un maximum communs. L'automatisation par API coûte $0.002 par requête.
Cas d’usage
Vérifier une note corrigée
Visualisez l'effet d'un bonus, d'un plancher garanti et d'un maximum définis.
Appliquer une règle uniforme
Traitez chaque note avec la même règle déterministe et conservez la règle décisive.
Contrôler les corrections
Comparez les valeurs brute, bonifiée et finale pour vérifier le respect des limites.
Questions fréquentes
Quelle formule le calculateur emploie-t-il?
Il calcule min(maximum_grade, max(raw_grade + bump_amount, minimum_floor)).
Le bonus s'ajoute-t-il au-dessus du plancher?
Non. La note bonifiée et le plancher sont comparés, puis la valeur supérieure est retenue avant le maximum.
Que se passe-t-il si la note bonifiée dépasse le maximum?
La note finale est limitée à maximum_grade et la règle appliquée est maximum_cap.
Les notes décimales sont-elles acceptées?
Oui. Les nombres finis positifs ou nuls sont admis si la note brute et le plancher ne dépassent pas le maximum.
Quel est le coût d'une requête API?
Chaque requête API coûte $0.002.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/edu/flat-bump-curve \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"raw_grade":67,"bump_amount":5,"minimum_floor":75,"maximum_grade":100}'const res = await fetch("https://api.kit.forhosting.com/edu/flat-bump-curve", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"raw_grade": 67,
"bump_amount": 5,
"minimum_floor": 75,
"maximum_grade": 100
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/edu/flat-bump-curve",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"raw_grade": 67,
"bump_amount": 5,
"minimum_floor": 75,
"maximum_grade": 100
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/edu/flat-bump-curve", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"raw_grade":67,"bump_amount":5,"minimum_floor":75,"maximum_grade":100}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"raw_grade":67,"bump_amount":5,"minimum_floor":75,"maximum_grade":100}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/edu/flat-bump-curve", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"raw_grade": 67,
"bump_amount": 5,
"minimum_floor": 75,
"maximum_grade": 100
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "edu.flat_bump_curve",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |