Passer au contenu principal
Pour générer des revenus plus prévisibles, les entreprises préfèrent que leurs clients s’engagent sur des seuils de dépense. Pour les inciter à le faire, les entreprises peuvent offrir des remises pour des engagements plus importants. Metronome offre la flexibilité de modéliser ces remises de deux manières principales :
  1. Réduire la base de coût de l’engagement
  2. Créer des surcharges spécifiques à l’engagement sur le contrat client
Pour les structures de facturation avancées, Metronome prend également en charge une troisième manière de remiser les engagements : encoder des tarifs d’engagement sur une grille tarifaire.

Réduire la base de coût de l’engagement​

Une approche courante pour remiser les engagements est de réduire la base de coût. Par exemple, un contrat d’entreprise stipule qu’en échange d’un montant pré-engagé de $10 000, le client reçoit une remise de 20 % lors de la consommation de l’engagement. Une option pour encoder ce modèle de tarification est de modifier la base de coût du montant pré-engagé. Vous pouvez encoder une remise de 20 % en accordant au client $10 000 de dépense mais en ne facturant que $8 000. Cet exemple d’appel API crée un engagement avec un calendrier d’accès de $10 000 mais un calendrier de facturation de $8 000 :
curl https://api.metronome.com/v1/contracts/customerCommits/create \
  -H "Authorization: Bearer <TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "customer_id": "13117714-3f05-48e5-a6e9-a66093f13b4d",
    "type": "prepaid",
    "name": "Prepaid Commitment",
    "priority": 1,
    "product_id": "f14d6729-6a44-4b13-9908-9387f1918790",
    "access_schedule": {
      "credit_type_id": "2714e483-4ff1-48e4-9e25-ac732e8f24f2",
      "schedule_items": [
        {
          "amount": 100000,
          "starting_at": "2024-10-01T00:00:00.000Z",
          "ending_before": "2025-10-01T00:00:00.000Z"
        }
      ]
    },
    "invoice_schedule": {
      "credit_type_id": "2714e483-4ff1-48e4-9e25-ac732e8f24f2",
      "schedule_items": [
        {
          "unit_price": 80000,
          "quantity": 1,
          "timestamp": "2024-10-01T00:00:00.000Z"
        }
      ]
    }
  }'
Lorsque vous utilisez la base de coût pour encoder la remise, notez que :
  • Les prix reflétés sur les relevés de consommation ne sont pas affectés par la base de coût. La remise de 20 % lors de l’utilisation de l’engagement n’est pas visible sur le relevé de consommation.
  • L’utilisation de la base de coût ne fonctionne que lorsque les tarifs d’engagement sont un pourcentage uniforme inférieur, et non lorsque les tarifs d’engagement sont complètement distincts des tarifs catalogue ou ont des tarifs différents par produit.
  • Cette méthode de remise convient lorsque l’engagement est prépayé, mais pas pour les engagements postpayés, où le montant du calendrier de facturation doit correspondre au montant du calendrier d’accès.
Si votre cas d’usage ne répond pas à ces critères, vous pouvez utiliser à la place des surcharges spécifiques à l’engagement.

Créer des surcharges spécifiques à l’engagement​

Une autre manière d’accorder une remise lors de la consommation d’un engagement consiste à appliquer des surcharges spécifiques à l’engagement pour encoder des tarifs ajustés lors de la consommation d’un engagement. Vous pouvez spécifier si la surcharge doit s’appliquer lors de la consommation de tous les engagements et crédits (engagements prépayés, engagements postpayés et crédits) ou uniquement à certains engagements ou crédits spécifiques (par exemple commit_id A et recurring_credit_id B). Vous pouvez créer des surcharges spécifiques à l’engagement de type multiplicateur, écrasement ou tarifs par paliers. Vous pouvez utiliser des identifiants de produits, des étiquettes de produits, des clés de groupe de tarification et des clés de groupe de présentation pour spécifier quels éléments de facturation doivent obtenir une surcharge. Les surcharges spécifiques à l’engagement sont prioritaires sur les surcharges non spécifiques à l’engagement. Les surcharges sont priorisées selon la logique suivante :
  1. Surcharges d’écrasement spécifiques à l’engagement.
  2. Surcharges de multiplicateur spécifiques à l’engagement, priorisées selon le schéma de priorisation de votre contrat (multiplicateur le plus bas ou explicite).
  3. Surcharges d’écrasement non spécifiques à l’engagement (au niveau du contrat).
  4. Surcharges de multiplicateur non spécifiques à l’engagement, priorisées selon le schéma de priorisation de votre contrat (multiplicateur le plus bas ou explicite).
INFOLes surcharges spécifiques à l’engagement ne sont pas priorisées en fonction du nombre d’engagements associés à une surcharge. Si vous ajoutez une surcharge de multiplicateur qui s’applique à tous les engagements, et une surcharge de multiplicateur qui s’applique uniquement à l’engagement B, ces deux surcharges sont priorisées selon les règles de priorisation normales (multiplicateur le plus bas ou explicite).
INFOMetronome offre la fonctionnalité de cibler une surcharge spécifique à l’engagement vers un commit_id ou recurring_commit_id, credit_id ou recurring_credit_id spécifique. Utilisez le champ any_commit_or_credit_ids pour limiter la portée d’une surcharge spécifique à l’engagement. Si aucun crédit ou engagement spécifique n’est ciblé, la surcharge s’appliquera chaque fois que la consommation puise dans un engagement prépayé, un engagement postpayé ou un crédit.

Exemple de remise continue

Comme exemple de surcharge sur l’engagement d’un contrat client, prenez cet exemple avec une remise à la fois sur les dépenses engagées et sur la consommation supplémentaire :
  • Vos tarifs catalogue pour les modèles audio sont de $1 par million de jetons en entrée et de $2 par million de jetons en sortie. Les deux produits sont étiquetés audio.
  • Le client s’est engagé à $10 000 de dépenses prépayées sur son contrat (engagement A).
  • Le client a négocié des prix lors de la consommation des dépenses prépayées et après que l’engagement a été entièrement consommé :
    • Lors de la consommation de l’engagement, le client bénéficie de 20 % de réduction sur les prix catalogue.
    • Lors de la non-consommation de l’engagement, le client bénéficie de 5 % de réduction sur les prix catalogue.
Pour implémenter cela dans Metronome, ajoutez deux surcharges sur le contrat. La surcharge spécifique à l’engagement est prioritaire sur toutes les surcharges non spécifiques à l’engagement :
  • Surcharge 1 : multiplicateur 0,95 contre l’étiquette de produit audio
  • Surcharge 2 : multiplicateur 0,8 contre l’étiquette de produit audio lors de la consommation de l’engagement A
Cet exemple de requête API crée le contrat, y compris l’engagement prépayé et les surcharges spécifiques à l’engagement. Notez que l’engagement est référencé à l’aide d’un temporary_id pour permettre d’encoder à la fois les engagements et les surcharges spécifiques à l’engagement lors de la création du contrat.
curl https://api.staging.metronome.com/v1/contracts/create \
  -H "Authorization: Bearer <TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
  "customer_id": "bc20325a-80a0-468e-868f-a2f28b972af8",
  "starting_at": "2024-10-01T00:00:00.000Z",
  "rate_card_id": "d7abd0cd-4ae9-4db7-8676-e986a4ebd8dc",
  "commits": [
    {
      "temporary_id": "prepaid_commit_A",
      "type":"prepaid",
      "priority":1,
      "name":"Prepaid Commit A",
      "product_id":"f14d6729-6a44-4b13-9908-9387f1918790",
      "access_schedule": {
        "credit_type_id": "2714e483-4ff1-48e4-9e25-ac732e8f24f2",
        "schedule_items": [
          {
            "amount": 1000000,
            "starting_at": "2024-10-01T00:00:00.000Z",
            "ending_before": "2025-10-01T00:00:00.000Z"
          }
        ]
      },
      "invoice_schedule": {
        "credit_type_id": "2714e483-4ff1-48e4-9e25-ac732e8f24f2",
        "schedule_items": [
          {
            "unit_price": 1000000,
            "quantity": 1,
            "timestamp": "2024-10-01T00:00:00.000Z"
          }
        ]
      }
    }
  ],
  "overrides": [
    {
      "starting_at": "2024-10-01T00:00:00.000Z",
      "multiplier": 0.95,
      "type": "multiplier",
      "override_specifiers": [
        {
          "product_tags": [
            "audio"
          ]
        }
      ]
    },
    {
      "starting_at": "2024-10-01T00:00:00.000Z",
      "is_commit_specific": true,
      "multiplier": 0.8,
      "type": "multiplier",
      "override_specifiers": [
        {
          "commit_ids": [
            "prepaid_commit_A"
          ],
          "product_tags": [
            "audio"
          ]
        }
      ]
    }
  ]
}'

Remise lors de la consommation de tout engagement ou crédit​

Comme autre exemple de création de surcharges spécifiques à l’engagement, prenez cet exemple avec une remise lors de la consommation de tout engagement :
  • À nouveau, vos tarifs catalogue pour les modèles audio sont de $1 par million de jetons en entrée et de $2 par million de jetons en sortie.
  • Le client s’est engagé à $3 000 de dépenses prépayées sur son contrat (engagement A). Le client veut laisser ouverte la possibilité d’ajouter d’autres engagements prépayés à l’avenir.
  • Le client a négocié des prix lors de la consommation des engagements : les jetons en entrée des modèles audio sont à $0,75 par million et les jetons en sortie des modèles audio sont à $0,889 par million.
  • Lorsque tous les engagements sont consommés, l’utilisation ultérieure des modèles audio utilise le tarif catalogue.
Pour implémenter cela dans Metronome, ajoutez deux surcharges sur le contrat :
  • Surcharge 1 : surcharge d’écrasement de $0,75 sur les jetons en entrée lors de la consommation de tout engagement ou crédit
  • Surcharge 2 : surcharge d’écrasement de $0,889 sur les jetons en sortie lors de la consommation de tout engagement ou crédit
Cet exemple de requête API ajoute les deux surcharges en modifiant le contrat :
curl https://api.staging.metronome.com/v2/contracts/edit \
  -H "Authorization: Bearer <TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "customer_id": "bc20325a-80a0-468e-868f-a2f28b972af8",
    "contract_id": "82a884c5-5e3e-47ae-b056-63b6f3a84674",
    "add_overrides": [
      {
        "starting_at": "2024-10-01T00:00:00.000Z",
        "product_id": "c8dccd54-0ca8-4580-861d-1e26854ab2f1",
        "is_commit_specific": true,
        "type": "overwrite",
        "overwrite_rate": {
            "rate_type":"flat",
            "price": 75
        }
      },
      {
        "starting_at": "2024-10-01T00:00:00.000Z",
        "product_id": "1e0f9c54-56c9-4587-b0ad-a94b53fe623a",
        "is_commit_specific": true,
        "type": "overwrite",
        "overwrite_rate": {
            "rate_type":"flat",
            "price": 88.9
        }
      }
    ]
}'

Encoder des tarifs d’engagement sur la grille tarifaire​

Certains clients ont un modèle d’affaires avec des tarifs d’engagement cohérents proposés à tous les clients qui s’engagent. Metronome facilite l’encodage de ces tarifs d’engagement sur la grille tarifaire, vous n’avez donc pas besoin d’utiliser des surcharges spécifiques à l’engagement pour chaque client qui s’engage. De plus, Metronome offre la flexibilité de remiser davantage le tarif d’engagement pour tenir compte des négociations par client.

1. Configurer les tarifs d’engagement sur la grille tarifaire.​

Tout d’abord, définissez le tarif d’engagement sur la grille tarifaire. Vous pouvez le faire en utilisant l’application Metronome ou l’API Metronome. Notez :
  • Les tarifs d’engagement ne sont pris en charge que pour les produits d’utilisation.
  • Les tarifs d’engagement doivent être ajoutés avec un tarif catalogue. Il n’y a aucun moyen de simplement modifier un tarif d’engagement ; vous devez ajouter un tarif catalogue avec.
  • Les tarifs catalogue et d’engagement doivent être dans la même unité de tarification.
  • Le tarif d’engagement (et le tarif catalogue) peuvent être tarifés par paliers. La quantité du palier n’est pas réinitialisée entre l’utilisation du tarif d’engagement et du tarif catalogue.
Tarif d'engagement sur une grille tarifaire

2. Créer l’engagement.​

Ensuite, créez l’engagement sur un contrat. Précisez que l’engagement doit utiliser le tarif d’engagement. Ne précisez qu’un engagement ou un crédit utilise le tarif d’engagement que si vous avez ajouté des tarifs d’engagement distincts à la grille tarifaire.
COMPORTEMENT DE REPLISi vous ajoutez à un client ou à un contrat un engagement ou un crédit qui utilise un tarif d’engagement et qu’il n’y a pas de tarif d’engagement pour un produit donné, Metronome applique le tarif catalogue ainsi que toute surcharge ciblant le tarif catalogue. Toutes les surcharges qui ciblent le tarif d’engagement sont ignorées.

3. (Facultatif) Offrir des remises sur le tarif d’engagement.​

Metronome prend en charge la remise du tarif d’engagement par défaut en ajoutant une surcharge spécifique à l’engagement sur le contrat. Pour ce faire :
  • Spécifiez que le type de surcharge est commit-specific.
  • Spécifiez que la cible de la surcharge est COMMIT_RATE.
  • Ajoutez des commit ids spécifiques. Si commit_ids n’est pas spécifié, la surcharge s’applique chaque fois qu’un engagement prépayé ou postpayé est utilisé.
Vous ne devez spécifier des surcharges avec la cible de tarif COMMIT_RATE que si vous avez ajouté des tarifs d’engagement distincts à la grille tarifaire. Sinon, Metronome applique le comportement de repli (mentionné ci-dessus).

Exemple de tarifs d’engagement et à la demande sans remises​

Comme exemple, considérez un client avec des tarifs catalogue et des tarifs d’engagement cohérents pour tous ses clients ou un sous-ensemble de ses clients. Tout d’abord, spécifiez les tarifs d’engagement sur la grille tarifaire :
curl https://api.metronome.com/v1/contract-pricing/rate-cards/addRate \
  -H "Authorization: Bearer <TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "rate_card_id": "d7abd0cd-4ae9-4db7-8676-e986a4ebd8dc",
    "product_id": "13117714-3f05-48e5-a6e9-a66093f13b4d",
    "starting_at": "2024-10-01T00:00:00.000Z",
    "entitled": true,
    "rate_type": "FLAT",
    "price": 1000,
    "credit_type_id": "2714e483-4ff1-48e4-9e25-ac732e8f24f2",
    "commit_rate": {
      "rate_type":"FLAT",
      "price":800
    }
  }'
Ensuite, lors de la création d’un engagement sur un client ou un contrat, précisez que l’engagement doit utiliser commit_rate :
curl https://api.metronome.com/v1/contracts/customerCommits/create \
  -H "Authorization: Bearer <TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "customer_id": "13117714-3f05-48e5-a6e9-a66093f13b4d",
    "type": "prepaid",
    "name": "Commitment - using commit rate",
    "priority": 100,
    "product_id": "f14d6729-6a44-4b13-9908-9387f1918790",
    "rate_type":"commit_rate",
    "access_schedule": {
      "credit_type_id": "2714e483-4ff1-48e4-9e25-ac732e8f24f2",
      "schedule_items": [
        {
          "amount": 10000,
          "starting_at": "2024-10-01T00:00:00.000Z",
          "ending_before": "2024-11-01T00:00:00.000Z"
        }
      ]
    },
    "invoice_schedule": {
      "credit_type_id": "2714e483-4ff1-48e4-9e25-ac732e8f24f2",
      "schedule_items": [
        {
          "unit_price": 8000,
          "quantity": 1,
          "timestamp": "2024-10-01T00:00:00.000Z"
        }
      ]
    }
  }'
Maintenant, lors de la consommation de l’engagement, les tarifs d’engagement de la grille tarifaire sont utilisés.
ASTUCENotez qu’il est possible d’encoder des tarifs spécifiques lors de la consommation des engagements pour un client en n’utilisant que des surcharges spécifiques à l’engagement. Mais en utilisant des tarifs d’engagement sur la grille tarifaire, vous pouvez configurer les tarifs une seule fois plutôt que d’ajouter des surcharges spécifiques à l’engagement à chaque contrat client.

Exemple de tarifs d’engagement et à la demande négociés

Comme autre exemple, considérez un client avec des tarifs catalogue et des tarifs d’engagement cohérents pour tous les clients (voir le tableau ci-dessous). Un client unique peut négocier à la fois le tarif lors de l’utilisation d’un engagement spécifique (à partir du tarif d’engagement) et son tarif lorsqu’il ne consomme pas d’engagement (à partir du tarif catalogue).
Tarif catalogue partagé entre tous les clientsTarif d’engagement partagé entre tous les clientsTarif d’engagement négocié pour l’engagement A pour le client ATarif à la demande négocié pour le client A
Jetons en entrée audio (1M)$10$8$7,2$8
Jetons en sortie audio (1M)$20$19$17,1$16
Pour implémenter ce modèle de remise :
  1. Spécifiez les tarifs d’engagement sur la grille tarifaire ($8 et $19).
  2. Lors de la création de l’engagement A sur le contrat, précisez que l’engagement A doit utiliser commit_rate.
  3. Ajoutez deux surcharges au contrat :
  • Surcharge 1 : surcharge spécifique à l’engagement, contre commit_rate, limitée à l’engagement A, multiplicateur 0,9.
  • Surcharge 2 : surcharge contre le tarif catalogue, multiplicateur 0,8.
Cet exemple de requête API modifie un contrat, y compris l’engagement prépayé :
curl https://api.staging.metronome.com/v2/contracts/edit \
  -H "Authorization: Bearer <TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
  "customer_id": "bc20325a-80a0-468e-868f-a2f28b972af8",
  "contract_id": "82a884c5-5e3e-47ae-b056-63b6f3a84674",
  "add_commits": [
    {
      "temporary_id": "prepaid_commit_A",
      "type": "prepaid",
      "priority": 1,
      "rate_type": "commit_rate",
      "name": "Prepaid Commit A",
      "product_id": "f14d6729-6a44-4b13-9908-9387f1918790",
      "access_schedule": {
        "credit_type_id": "2714e483-4ff1-48e4-9e25-ac732e8f24f2",
        "schedule_items": [
          {
            "amount": 1000000,
            "starting_at": "2024-10-01T00:00:00.000Z",
            "ending_before": "2025-10-01T00:00:00.000Z"
          }
        ]
      },
      "invoice_schedule": {
        "credit_type_id": "2714e483-4ff1-48e4-9e25-ac732e8f24f2",
        "schedule_items": [
          {
            "unit_price": 1000000,
            "quantity": 1,
            "timestamp": "2024-10-01T00:00:00.000Z"
          }
        ]
      }
    }
  ],
  "add_overrides": [
    {
      "starting_at": "2024-10-01T00:00:00.000Z",
      "multiplier": 0.9,
      "is_commit_specific": true,
      "rate_target": "commit_rate",
      "type": "multiplier",
      "override_specifiers": [
        {
          "commit_ids": [
            "prepaid_commit_A"
          ]
        }
      ]
    },
    {
      "starting_at": "2024-10-01T00:00:00.000Z",
      "multiplier": 0.8,
      "rate_target": "list_rate",
      "type": "multiplier",
      "override_specifiers": [
        {
          "product_tags": [
            "audio"
          ]
        }
      ]
    }
  ]
}'