Consommation optimale : comparez TMS et rapport des prix
Ce calculateur de consommation optimale vérifie la condition intérieure classique du choix du consommateur : le taux marginal de substitution entre deux biens doit être égal au rapport de leurs prix.
Lancer gratuitement
Indiquez l’utilité marginale et le prix de chaque bien pour obtenir les deux rapports, leur écart relatif, leur concordance selon la tolérance choisie et le bien dont il convient d’accroître l’achat. Le résultat donne une orientation économique, mais ne résout pas la demande complète puisque le revenu, les quantités et la fonction d’utilité entière ne sont pas fournis.
Comprendre la condition entre TMS et rapport des prix
Pour deux biens X et Y, le taux marginal de substitution retenu ici correspond à MUx divisée par MUy. Il mesure l’utilité marginale apportée par X relativement à Y au panier actuel. Le rapport des prix du marché est Px divisé par Py et représente le coût relatif de X par rapport à Y. À un optimum intérieur, ces deux arbitrages coïncident : MUx/MUy = Px/Py. La même condition s’écrit aussi comme une égalité d’utilité marginale par unité monétaire, MUx/Px = MUy/Py. Lorsque les rapports sont égaux, déplacer une petite part de dépense d’un bien vers l’autre n’améliore pas l’utilité à la marge. Le calculateur évalue cette égalité avec des prix et des utilités marginales strictement positifs. Il ne considère pas les valeurs saisies comme des quantités et ne construit aucune droite budgétaire. Il cible précisément le test local d’optimalité utilisé quand les utilités marginales d’un panier candidat sont déjà connues.
Interpréter la recommandation d’achat
Si la TMS dépasse Px/Py, le bien X procure davantage d’utilité marginale relativement à Y que ne l’exige son coût relatif sur le marché. Autrement dit, l’utilité marginale par unité monétaire est supérieure pour X. L’amélioration consiste donc à acheter plus de X et moins de Y sans accroître la dépense totale. Sous l’hypothèse habituelle d’utilité marginale décroissante, cette réallocation réduit la TMS vers le rapport des prix. Si la TMS est inférieure à Px/Py, la conclusion s’inverse : Y présente le meilleur rendement marginal par unité monétaire, et il convient d’acheter plus de Y et moins de X. Les champs booléens indiquent clairement cette direction et la recommandation la formule en toutes lettres. « Acheter davantage » désigne un ajustement marginal, non un achat illimité. Comme les utilités marginales évoluent généralement avec le panier, vous devez recalculer les rapports après l’ajustement. Aucune quantité exacte n’est annoncée, car elle exigerait la fonction d’utilité, les quantités actuelles, le revenu et la contrainte budgétaire.
Tolérance, hypothèses et solutions en coin
Une égalité parfaite est rare lorsque les utilités marginales sont estimées, issues d’enquêtes ou arrondies. La tolérance définit donc une bande relative autour du rapport des prix. Sa valeur par défaut 0.01 considère comme concordant un écart maximal de un pour cent dans chaque sens. Choisissez zéro pour imposer une égalité arithmétique exacte, ou augmentez la tolérance si les estimations sont incertaines. relative_gap est positif lorsque la TMS dépasse le rapport des prix et négatif lorsqu’elle lui est inférieure ; gap_percent présente le même écart en pourcentage. Ce test concerne un optimum intérieur et suppose des préférences différentiables, des prix positifs, des utilités marginales positives et la possibilité d’ajuster les deux biens. Une solution en coin peut être correcte si un bien n’est pas consommé, si les biens sont indivisibles ou si d’autres contraintes empêchent la réallocation. Le calculateur ne vérifie ni l’épuisement du budget ni l’optimalité globale du panier. Utilisez-le comme un contrôle ciblé de premier ordre dans une analyse plus complète.
Cas d’usage
Vérifier un exercice d’économie
Contrôlez si les utilités marginales et les prix satisfont l’optimum intérieur et repérez la réallocation nécessaire.
Évaluer un panier de consommation candidat
Transformez des estimations d’utilité marginale en comparaison claire entre arbitrage privé et arbitrage du marché.
Automatiser une analyse de sensibilité
Interrogez l’API avec plusieurs prix ou utilités et consignez l’évolution du sens d’achat recommandé.
Questions fréquentes
Quelle formule le calculateur applique-t-il ?
Il calcule TMS = MUx/MUy et le rapport des prix = Px/Py, puis compare leur écart relatif.
Pourquoi acheter plus de X lorsque la TMS dépasse le rapport des prix ?
X fournit alors plus d’utilité marginale par unité monétaire que Y. Réallouer la dépense vers X améliore l’utilité sous les hypothèses usuelles.
L’égalité des rapports prouve-t-elle que le panier est optimal ?
Elle confirme la condition intérieure de premier ordre dans la tolérance. Une preuve complète peut aussi exiger un budget saturé, une courbure adaptée et l’étude des coins.
Quel est l’effet de la tolérance ?
Elle fixe l’écart relatif maximal accepté comme une égalité. La valeur 0.01 autorise jusqu’à un pour cent.
L’utilité marginale ou le prix peuvent-ils être nuls ?
Non. Chaque utilité marginale et chaque prix doivent être des nombres finis strictement positifs afin que les deux rapports soient définis et pertinents.
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/econ/optimal-consumption-mrs-price-ratio \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"marginal_utility_good_x":12,"marginal_utility_good_y":6,"price_good_x":8,"price_good_y":4}'const res = await fetch("https://api.kit.forhosting.com/econ/optimal-consumption-mrs-price-ratio", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"marginal_utility_good_x": 12,
"marginal_utility_good_y": 6,
"price_good_x": 8,
"price_good_y": 4
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/econ/optimal-consumption-mrs-price-ratio",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"marginal_utility_good_x": 12,
"marginal_utility_good_y": 6,
"price_good_x": 8,
"price_good_y": 4
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/econ/optimal-consumption-mrs-price-ratio", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"marginal_utility_good_x":12,"marginal_utility_good_y":6,"price_good_x":8,"price_good_y":4}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"marginal_utility_good_x":12,"marginal_utility_good_y":6,"price_good_x":8,"price_good_y":4}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/econ/optimal-consumption-mrs-price-ratio", 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
{
"marginal_utility_good_x": 12,
"marginal_utility_good_y": 6,
"price_good_x": 8,
"price_good_y": 4
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "econ.optimal_consumption_mrs_price_ratio",
"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. |