> ## Documentation Index
> Fetch the complete documentation index at: https://docs.metronome.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Comprendre les règles de priorisation

Pour garantir une facturation cohérente et prévisible, Metronome suit un ensemble structuré de règles de priorisation afin de déterminer la consommation des engagements et des crédits. Cette page explique la séquence complète de consommation pour différents types d'instruments financiers, ainsi que la manière dont les éléments de ligne sur les factures sont priorisés.

## Priorisation entre engagements et crédits​

Si un client dispose de plusieurs crédits ou engagements actifs pouvant s'appliquer à la même consommation, Metronome utilise une série de règles pour déterminer quel crédit ou engagement consommer en premier.

### Ordre global de consommation

Avant d'appliquer les règles à l'intérieur de chaque type, Metronome consomme les engagements dans cet ordre :

1. **Engagements reportés** (les engagements postpayés reportés sont consommés avant les engagements prépayés/crédits)
2. **Engagements prépayés et crédits**
3. **Engagements postpayés**

**Le type d'engagement prime toujours sur la priorité.** Le champ `priority` ne contrôle l'ordre *qu'au sein* du même type d'engagement — il ne peut pas faire en sorte qu'un engagement postpayé soit consommé avant un engagement prépayé, ou vice versa.

### Engagements et crédits reportés​

1. S'il y a plusieurs engagements ou crédits reportés, la consommation est basée sur le **type d'engagement ou de crédit.** Les engagements postpayés reportés sont consommés avant les engagements prépayés et les crédits.
2. S'il y a plusieurs engagements ou crédits reportés du même type, la consommation est basée sur la **priorité.**
3. S'il y a plusieurs engagements ou crédits reportés du même type et de la même priorité, la consommation est basée sur l'**applicabilité au produit.** Les engagements avec le moins de produits applicables d'abord, le plus de produits applicables en dernier.
4. S'il y a plusieurs engagements ou crédits reportés du même type, de la même priorité et de la même applicabilité au produit, la consommation est basée sur l'**applicabilité à la consommation** — le nombre de spécificateurs de valeurs de groupe qu'un engagement possède. Les engagements ayant le moins de consommation applicable sont consommés en premier, et ceux ayant le plus de consommation applicable en dernier.
5. S'il y a plusieurs engagements ou crédits reportés du même type, de la même priorité, et de la même applicabilité au produit et à la consommation, la consommation est basée sur `ending_before`. Le `ending_before` le plus précoce est consommé en premier.

<Info>
  **INFO**

  Les spécificateurs de valeurs de groupe sont des spécificateurs avec uniquement `presentation_group_value` ou `pricing_group_value` définis. Les engagements avec `applicable_product_ids` ou `applicable_product_tags` n'ont pas d'applicabilité à la consommation car ils manquent de spécificateurs de valeurs de groupe.
</Info>

### Engagements prépayés et crédits​

Les engagements prépayés et crédits sont toujours consommés avant les engagements postpayés, indépendamment des valeurs de priorité.

1. S'il y a plusieurs engagements prépayés et crédits, la consommation est basée sur la **priorité.**
2. S'il y a plusieurs autres engagements prépayés ou crédits avec la même priorité, la consommation est basée sur la **base de coût de l'engagement**. La base de coût de \$0 est consommée en premier, puis les engagements payés.
3. S'il y a plusieurs autres engagements prépayés ou crédits avec la même priorité et la même base de coût, la consommation est basée sur l'**applicabilité au produit**. Le moins de produits applicables d'abord, le plus de produits applicables en dernier.
4. S'il y a plusieurs autres engagements prépayés ou crédits avec le même type d'engagement, priorité et applicabilité au produit, la consommation est basée sur l'**applicabilité à la consommation** — le nombre de spécificateurs de valeurs de groupe qu'un engagement possède. Les engagements ayant le moins de consommation applicable sont consommés en premier, et ceux ayant le plus de consommation applicable en dernier.
5. S'il y a plusieurs autres engagements prépayés ou crédits avec la même priorité, base de coût et applicabilité au produit et à la consommation, la consommation est basée sur `ending_before`. Le `ending_before` le plus précoce est consommé en premier.
6. S'il y a plusieurs engagements prépayés ou crédits avec la même priorité, base de coût, applicabilité au produit et à la consommation, et `ending_before`, la consommation est basée sur `starting_on`. Le `starting_on` le plus précoce est consommé en premier.
7. S'il y a plusieurs engagements prépayés ou crédits avec la même priorité, base de coût, applicabilité au produit et à la consommation, `ending_before` et `starting_on`, la consommation est basée sur le **nombre de contrats auxquels un engagement s'applique**. L'engagement avec le moins de contrats applicables est consommé en premier.

### Engagements postpayés​

Les engagements postpayés sont toujours consommés après les engagements prépayés et les crédits, indépendamment des valeurs de priorité. Au sein des engagements postpayés, la consommation suit la même logique d'ordre que les engagements prépayés : priorité, base de coût, applicabilité au produit, `ending_before`, `starting_on`, puis nombre de contrats applicables.

Cet exemple de requête API crée le contrat avec des engagements prépayés.

Les engagements prépayés du contrat sont consommés dans cet ordre :

1. Prepaid Commit A car il a la priorité la plus élevée.
2. Prepaid Commit B car il a une base de coût nulle parmi les engagements avec la même priorité.
3. Prepaid Commit C car il a la plus faible applicabilité à la consommation parmi les engagements avec la même priorité, base de coût et applicabilité au produit.
4. Prepaid Commit D car il a le `ending_before` le plus précoce parmi les engagements avec la même priorité, base de coût, et applicabilité au produit et à la consommation.
5. Prepaid Commit E car il a le `ending_before` suivant le plus précoce parmi les engagements avec la même priorité, base de coût, et applicabilité au produit et à la consommation.
6. Prepaid Commit F car il s'applique à toute la consommation et tous les produits parmi les engagements avec la même priorité.

```bash theme={null}
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": [
    {
      "type": "prepaid",
      "priority": 50,
      "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"
          }
        ]
      }
    },
    {
      "type": "prepaid",
      "priority": 100,
      "name": "Prepaid Commit B",
      "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"
          }
        ]
      }
    },
    {
      "type": "prepaid",
      "priority": 100,
      "name": "Prepaid Commit C",
      "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"
          }
        ]
      },
      "applicable_product_ids": [
        "dbb46a31-3437-4df2-ade1-46a2641623ab"
      ]
    },
    {
      "type": "prepaid",
      "priority": 100,
      "name": "Prepaid Commit D",
      "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"
          }
        ]
      },
      "specifiers": [
        {
          "product_id": "dbb46a31-3437-4df2-ade1-46a2641623ab",
          "pricing_group_values": {
            "region": "us-east-1"
          }
        },
        {
          "pricing_group_values": {
            "region": "us-west-1"
          }
        }
      ]
    },
    {
      "type": "prepaid",
      "priority": 100,
      "name": "Prepaid Commit E",
      "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": "2026-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"
          }
        ]
      },
      "specifiers": [
        {
          "product_id": "dbb46a31-3437-4df2-ade1-46a2641623ab",
          "pricing_group_values": {
            "region": "us-east-1"
          }
        },
        {
          "pricing_group_values": {
            "region": "us-west-1"
          }
        }
      ]
    },
    {
      "type": "prepaid",
      "priority": 100,
      "name": "Prepaid Commit F",
      "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"
          }
        ]
      }
    }
  ]
}'
```

## Priorisation des éléments de ligne​

S'il y a plusieurs éléments de ligne sur la facture éligibles à l'application d'engagement ou de crédit, Metronome utilise des règles pour déterminer à quel élément de ligne appliquer l'engagement ou le crédit en premier :

1. Les engagements ou crédits sont appliqués en premier aux produits d'utilisation, puis aux produits d'abonnement, puis aux produits composites.
2. S'il y a plusieurs produits du même type, Metronome utilise la date de début de l'élément de ligne, appliqué d'abord aux dates de début les plus précoces.
3. S'il y a plusieurs produits du même type avec la même date de début, Metronome utilise le prix unitaire de l'élément de ligne, appliqué d'abord aux éléments de ligne avec les prix unitaires les plus élevés.
4. S'il y a plusieurs produits du même type avec le même type, la même date de début et le même prix unitaire, Metronome utilise le nom de l'élément de ligne, appliqué alphabétiquement de A à Z.

Par exemple, imaginez une facture d'utilisation avec deux produits d'utilisation : Data Storage avec un prix unitaire de \$1, et Data Reads avec un prix unitaire de \$2,6. Les éléments de ligne ont les mêmes dates effectives couvrant toute la période de facturation. Tout engagement ou crédit est d'abord appliqué à Data Reads, car il a le prix unitaire le plus élevé.
