Perte sèche due à un prix plancher
Ce calculateur mesure le surplus total perdu lorsqu’un prix minimum légal dépasse l’équilibre concurrentiel d’un marché linéaire.
Lancer gratuitement
Indiquez l’ordonnée à l’origine et la pente de la demande, celles de l’offre, puis le plancher envisagé. L’outil résout l’équilibre initial, calcule les quantités demandée et offerte au prix réglementé, retient la demande comme limite des échanges et présente le triangle de bien-être associé aux transactions qui ne se réalisent plus.
Décrivez le marché linéaire avec cohérence
Saisissez la demande sous la forme Qd = demand_intercept − demand_slope × price et l’offre sous la forme Qs = supply_intercept + supply_slope × price. Les deux pentes sont des valeurs positives : le calculateur applique le signe moins à la demande et le signe plus à l’offre. Conservez des unités compatibles. Si le prix est en dollars par article et la quantité en milliers d’articles, les ordonnées à l’origine sont en milliers et les pentes en milliers d’articles par dollar. La perte sèche sera alors exprimée en milliers de dollars. La pente de l’offre doit être strictement positive, car l’offre inverse sert à déterminer le coût marginal au volume échangé. Les ordonnées estimées peuvent être négatives, mais les courbes doivent produire un équilibre et une demande au plancher non négatifs. Ces contrôles empêchent de présenter comme économiquement pertinent un prolongement algébrique hors de son domaine utile. Vérifiez les signes : une pente de demande déjà négative inverserait la courbe attendue et sera refusée.
Vérifiez que le prix plancher est contraignant
Le calculateur commence par égaliser quantité demandée et quantité offerte afin d’obtenir l’équilibre concurrentiel. Un plancher ne modifie les échanges que s’il dépasse strictement ce prix. S’il lui est égal ou inférieur, acheteurs et vendeurs peuvent continuer à traiter à l’équilibre ; ce modèle de contrainte ne s’applique donc pas. Lorsque le plancher est actif, la demande baisse et l’offre augmente. Sans achat public ni autre acquéreur de l’excédent, le côté court du marché limite les ventes : le volume échangé égale la quantité demandée. L’écart entre offre et demande est présenté comme quantité excédentaire, mais il ne constitue pas la perte sèche. Celle-ci provient des échanges mutuellement avantageux supprimés entre le volume réduit et l’équilibre. Multiplier l’excédent visible par le prix réglementé ne mesure ni bien-être perdu, ni perte des producteurs, ni stockage. Le calcul suppose une allocation efficace entre vendeurs et aucun rachat public ; dans le cas contraire, un modèle plus large est nécessaire.
Interprétez le triangle de bien-être et ses hypothèses
Pour les échanges supprimés, la demande représente la disposition marginale à payer et l’offre le coût marginal. Au volume final, la disposition à payer égale le plancher, puisque ce point appartient à la demande. Le calculateur évalue l’offre inverse au même volume, puis soustrait ce coût marginal du plancher pour obtenir l’écart de bien-être. La base horizontale du triangle correspond à la réduction de quantité et sa hauteur verticale à cet écart ; la perte sèche vaut la moitié de la base multipliée par la hauteur. Le résultat est déterministe et n’est arrondi que pour assurer un affichage stable. Le modèle décrit un marché concurrentiel linéaire sans taxe, subvention, externalité, achat de soutien, élimination, modification de qualité, marché noir ni frais administratifs. Il suppose aussi que les unités vendues vont aux acheteurs qui les valorisent le plus. Utilisez cette estimation transparente d’équilibre partiel et testez plusieurs pentes si elles sont incertaines. Les requêtes automatisées coûtent $0.002 et n’emploient aucune donnée externe variable.
Cas d’usage
Évaluer un prix agricole de soutien
Estimez la perte de bien-être et la surproduction lorsqu’un prix minimum dépasse l’équilibre concurrentiel.
Vérifier un exercice d’économie
Contrôlez l’équilibre, les quantités au plancher, l’écart de bien-être et l’aire du triangle de perte sèche.
Comparer des scénarios de politique publique
Appliquez plusieurs planchers aux mêmes courbes linéaires pour comparer la baisse des échanges et du bien-être.
Questions fréquentes
Quelle formule sert à calculer la perte sèche ?
La moitié de la réduction du volume échangé multipliée par l’écart entre disposition à payer et coût marginal au nouveau volume.
Pourquoi le volume échangé égale-t-il la demande ?
Avec un plancher contraignant, la demande est inférieure à l’offre. Sans rachat public, les acheteurs limitent les transactions réalisées.
La quantité excédentaire est-elle la perte sèche ?
Non. Elle mesure l’offre excédentaire au plancher ; la perte sèche valorise les échanges avantageux qui disparaissent.
Que se passe-t-il si le plancher est sous l’équilibre ?
Il n’est pas contraignant et ne change pas l’issue concurrentielle. L’outil le refuse, car aucun triangle dû au plancher n’existe.
Les achats publics et le stockage sont-ils inclus ?
Non. L’excédent invendu n’est pas racheté. Achat, stockage, destruction, taxes et administration exigent des termes distincts.
Quel est le prix d’un calcul par API ?
Chaque requête API coûte $0.002. Le calcul est déterministe et ne fait appel à aucun service externe.
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/deadweight-loss-price-floor \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"demand_intercept":120,"demand_slope":2,"supply_intercept":20,"supply_slope":3,"price_floor":30}'const res = await fetch("https://api.kit.forhosting.com/econ/deadweight-loss-price-floor", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"demand_intercept": 120,
"demand_slope": 2,
"supply_intercept": 20,
"supply_slope": 3,
"price_floor": 30
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/econ/deadweight-loss-price-floor",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"demand_intercept": 120,
"demand_slope": 2,
"supply_intercept": 20,
"supply_slope": 3,
"price_floor": 30
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/econ/deadweight-loss-price-floor", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"demand_intercept":120,"demand_slope":2,"supply_intercept":20,"supply_slope":3,"price_floor":30}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"demand_intercept":120,"demand_slope":2,"supply_intercept":20,"supply_slope":3,"price_floor":30}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/econ/deadweight-loss-price-floor", 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
{
"demand_intercept": 120,
"demand_slope": 2,
"supply_intercept": 20,
"supply_slope": 3,
"price_floor": 30
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "econ.deadweight_loss_price_floor",
"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. |