Calculadora de curva de notas con aumento fijo
Aplique una curva de notas transparente cuando la norma combine un incremento fijo de puntos con un mínimo garantizado.
Ejecutar — gratis
Introduzca la nota original, el aumento fijo, el mínimo y la nota máxima permitida. La calculadora suma el aumento, compara el resultado con el mínimo, conserva el valor mayor y lo limita al máximo. Además, indica qué regla determinó el resultado para que usted pueda explicarlo, reproducirlo y auditarlo fácilmente.
Introduzca la política de calificación como cuatro valores
Comience con la nota bruta tal como figura antes de aplicar la curva. Indique después el aumento fijo, es decir, la misma cantidad de puntos concedida a cada nota sujeta a esta política. El mínimo es el resultado más bajo garantizado y la nota máxima es el límite superior. Mantener los valores separados evita confundir un aumento de cinco puntos con un mínimo de setenta. Una nota de sesenta recibe primero el aumento; si llega a sesenta y cinco, todavía manda el mínimo. Una nota de ochenta recibe el mismo aumento y normalmente queda por encima del mínimo. Los cuatro datos deben ser números finitos y no negativos. La nota bruta y el mínimo no pueden superar el máximo, pues esa combinación definiría una escala contradictoria. Se admiten decimales cuando el curso registra puntos fraccionarios o porcentajes.
Respete el orden de las operaciones
El cálculo sigue una secuencia fija. Primero suma el aumento a la nota bruta y muestra ese valor intermedio. Después lo compara con el mínimo y conserva el mayor. Por último, compara el valor elegido con la nota máxima y lo limita cuando corresponde. En forma compacta, la nota final es el mínimo entre la nota máxima y el mayor valor entre la nota aumentada y el mínimo. La respuesta incluye la nota final, el incremento total y la regla aplicada. minimum_floor indica que el aumento ordinario no alcanzó el mínimo; flat_bump, que bastó el aumento; y maximum_cap, que el resultado habría rebasado el techo. El orden es esencial: limitar antes de comprobar un mínimo mal configurado podría producir un valor superior al máximo, mientras que sumar después del mínimo concedería más puntos de los previstos.
Aplique el cálculo con coherencia y documente sus límites
Para revisar un caso, compare la nota bruta, la nota aumentada y la final con la política escrita del curso. En procesos por lotes, envíe una solicitud por nota y conserve la regla aplicada junto al resultado; así podrá distinguir a quienes ayudó el mínimo de quienes recibieron solo el aumento normal. Las mismas entradas siempre generan la misma salida, pues no intervienen red, azar ni hora actual. La herramienta no decide si la curva es justa, está autorizada o cumple las normas de una institución. Tampoco convierte letras, pondera tareas, redondea según reglas propias del centro ni modifica un libro de calificaciones. Resuelva esas decisiones antes de usarla. Si la política aplica el aumento solo bajo un umbral, conserva posiciones relativas o reescala toda la distribución, necesita otro modelo. Utilícela únicamente cuando todas las notas compartan el mismo aumento, mínimo y máximo. La automatización mediante API está disponible por $0.002 por solicitud.
Qué puede hacer con ella
Comprobar una nota ajustada
Vea cómo cambia una puntuación con un aumento, un mínimo garantizado y un máximo determinados.
Aplicar una política uniforme
Procese cada nota con la misma regla determinista y conserve la regla decisiva para revisarla.
Auditar ajustes del libro de notas
Compare los valores bruto, aumentado y final para confirmar que ninguno salga de los límites.
Preguntas frecuentes
¿Qué fórmula utiliza la calculadora?
Calcula min(maximum_grade, max(raw_grade + bump_amount, minimum_floor)).
¿El aumento se suma por encima del mínimo?
No. Se comparan la nota aumentada y el mínimo, y se usa el valor mayor antes de aplicar el máximo.
¿Qué ocurre si la nota aumentada supera el máximo?
La nota final queda limitada a maximum_grade y la regla aplicada es maximum_cap.
¿Se admiten notas decimales?
Sí. Se aceptan números finitos y no negativos si la nota bruta y el mínimo no superan el máximo.
¿Cuánto cuesta una solicitud de API?
Cada solicitud de API cuesta $0.002.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su 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)Ejemplo de solicitud
{
"raw_grade": 67,
"bump_amount": 5,
"minimum_floor": 75,
"maximum_grade": 100
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "edu.flat_bump_curve",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |