489 lines
25 KiB
Markdown
489 lines
25 KiB
Markdown
<!-- Generated from docs_source/business by docs/tools/render_business_docs.py. -->
|
|
|
|
# Pricing, basis et fixing
|
|
|
|
Langue : `fr`
|
|
Statut : `migration partielle`
|
|
Derniere verification code : `2026-05-25`
|
|
|
|
Cette page consolide les regles de pricing trade autour des composants, des
|
|
periodes de prix, des periodes d'application, du fixing manuel et du prix final
|
|
des lignes achat / vente.
|
|
|
|
## A retenir
|
|
|
|
<div style="border-left:0.28rem solid #4051b5; background:#f5f7ff; padding:0.85rem 1rem; margin:1rem 0 1.4rem 0; border-radius:0.35rem;"><strong style="display:block; margin-bottom:0.35rem;">Resume operationnel</strong><span>Une ligne trade peut etre en prix fixe, basis ou EFP. En basis, le prix de base vient d'un ou plusieurs composants de fixing. Chaque composant lit une courbe de prix, construit des dates de prix, applique ces prix sur des dates d'application, puis alimente le prix de la ligne via un summary.</span></div>
|
|
|
|
|
|
<table style="width:100%; border-collapse:collapse; margin:1rem 0 1.5rem 0; font-size:0.95rem;">
|
|
<thead>
|
|
<tr style="background:#eef3ff;">
|
|
<th style="text-align:left; padding:0.55rem 0.7rem; border-bottom:2px solid #4051b5;">Sujet</th>
|
|
<th style="text-align:left; padding:0.55rem 0.7rem; border-bottom:2px solid #4051b5;">Regle courte</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Composant</td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Un <code>pricing.component</code> appartient a une ligne achat ou vente.</td>
|
|
</tr>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Courbe</td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">La courbe principale est <code>price_index</code>.</td>
|
|
</tr>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Matrix</td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Une matrix peut alimenter un composant de fixing, avec ligne generique ou conditions.</td>
|
|
</tr>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Pricing period</td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Definit les dates ou lire les prix sur la courbe.</td>
|
|
</tr>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Application period</td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Definit les dates ou appliquer les tranches de fixing.</td>
|
|
</tr>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">AVG</td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Utilise la moyenne progressive des prix lus.</td>
|
|
</tr>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">LAST</td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Autorise la courbe a reprendre le dernier prix connu si la date n'a pas de prix.</td>
|
|
</tr>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Pricing rows</td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Les lignes <code>pricing.pricing</code> portent quantite fixee, non fixee et prix EOD.</td>
|
|
</tr>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Summary</td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Le summary remonte la derniere ligne de pricing du groupe.</td>
|
|
</tr>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Prix ligne</td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">En <code>basis</code>, <code>unit_price</code> est le prix base hors premium.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<pre style="background:#263238; color:#eef7ff; padding:1rem; border-radius:0.35rem; overflow:auto;"><code>pricing.component
|
|
|
|
|
v
|
|
pricing.trigger
|
|
|
|
|
+--> pricing period --> dates de lecture curve
|
|
|
|
|
+--> application period --> dates de fixing
|
|
|
|
|
v
|
|
pricing.pricing
|
|
|
|
|
v
|
|
purchase/sale pricing summary
|
|
|
|
|
v
|
|
line.unit_price</code></pre>
|
|
|
|
## Regles consultant
|
|
|
|
### BR-PT-PRI-001 - Le premium fait partie du prix economique
|
|
|
|
Source: `BR-PT-008`
|
|
|
|
<table style="width:100%; border-collapse:collapse; margin:1rem 0 1.5rem 0; font-size:0.95rem;">
|
|
<thead>
|
|
<tr style="background:#eef3ff;">
|
|
<th style="text-align:left; padding:0.55rem 0.7rem; border-bottom:2px solid #4051b5;">Point</th>
|
|
<th style="text-align:left; padding:0.55rem 0.7rem; border-bottom:2px solid #4051b5;">Regle</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Prix visible</td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;"><code>unit_price</code> reste le prix de base hors premium.</td>
|
|
</tr>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Prix economique</td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Le montant utilise <code>unit_price + premium</code>.</td>
|
|
</tr>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Basis</td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Le premium s'ajoute aussi quand le prix base vient du fixing.</td>
|
|
</tr>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Documents commerciaux</td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Une ligne <code>basis</code> peut afficher le premium comme prix visible selon le contexte document.</td>
|
|
</tr>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Valuation</td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Le premium doit etre pris en compte dans les lignes valorisees.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<div style="border-left:0.28rem solid #4051b5; background:#f5f7ff; padding:0.85rem 1rem; margin:1rem 0 1.4rem 0; border-radius:0.35rem;"><strong style="display:block; margin-bottom:0.35rem;">Point cle</strong><span>Le premium n'est pas un composant de fixing. Il reste porte par la ligne commerciale, mais il fait partie du prix economique utilise pour les montants.</span></div>
|
|
|
|
|
|
### BR-PT-PRI-002 - Linked currency
|
|
|
|
Source: `BR-PT-009` et `BR-PT-010`
|
|
|
|
<table style="width:100%; border-collapse:collapse; margin:1rem 0 1.5rem 0; font-size:0.95rem;">
|
|
<thead>
|
|
<tr style="background:#eef3ff;">
|
|
<th style="text-align:left; padding:0.55rem 0.7rem; border-bottom:2px solid #4051b5;">Point</th>
|
|
<th style="text-align:left; padding:0.55rem 0.7rem; border-bottom:2px solid #4051b5;">Regle</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Activation</td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;"><code>linked_price</code>, <code>linked_currency</code> et <code>linked_unit</code> deviennent obligatoires.</td>
|
|
</tr>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Saisie</td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Le prix et le premium peuvent etre saisis dans le repere lie.</td>
|
|
</tr>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Conversion</td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Les calculs internes convertissent vers la devise / unite de la ligne.</td>
|
|
</tr>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Basis</td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">En <code>basis + linked currency</code>, <code>linked_price</code> represente le basis brut hors premium.</td>
|
|
</tr>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Amount</td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Le montant ajoute le premium converti.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
### BR-PT-PRI-003 - Pricing manuel
|
|
|
|
Source: `BR-PT-016` et doublon historique `BR-PT-015`
|
|
|
|
<table style="width:100%; border-collapse:collapse; margin:1rem 0 1.5rem 0; font-size:0.95rem;">
|
|
<thead>
|
|
<tr style="background:#eef3ff;">
|
|
<th style="text-align:left; padding:0.55rem 0.7rem; border-bottom:2px solid #4051b5;">Colonne</th>
|
|
<th style="text-align:left; padding:0.55rem 0.7rem; border-bottom:2px solid #4051b5;">Role</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;"><code>pricing_date</code></td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Date de saisie du fixing.</td>
|
|
</tr>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;"><code>quantity</code></td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Quantite fixee ce jour.</td>
|
|
</tr>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;"><code>settl_price</code></td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Prix de marche saisi.</td>
|
|
</tr>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;"><code>fixed_qt</code></td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Cumul des quantites fixees.</td>
|
|
</tr>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;"><code>fixed_qt_price</code></td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Prix moyen pondere du cumul fixe.</td>
|
|
</tr>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;"><code>unfixed_qt</code></td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Solde restant a fixer.</td>
|
|
</tr>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;"><code>unfixed_qt_price</code></td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Dernier prix disponible de la courbe du composant pour le solde non fixe, avec fallback sur <code>settl_price</code> si aucune courbe exploitable n'est disponible.</td>
|
|
</tr>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;"><code>eod_price</code></td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Prix economique courant de la ligne de fixing.</td>
|
|
</tr>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;"><code>last</code></td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Derniere ligne du groupe, utilisee par le summary.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<div style="border-left:0.28rem solid #4051b5; background:#f5f7ff; padding:0.85rem 1rem; margin:1rem 0 1.4rem 0; border-radius:0.35rem;"><strong style="display:block; margin-bottom:0.35rem;">Saisie utilisateur</strong><span>En manuel, l'utilisateur renseigne seulement <code>quantity</code> et <code>settl_price</code>. Les cumuls, le prix moyen, le solde non fixe et <code>last</code> sont recalcules par le systeme.</span></div>
|
|
|
|
|
|
### BR-PT-PRI-004 - Pricing automatique par composant
|
|
|
|
<table style="width:100%; border-collapse:collapse; margin:1rem 0 1.5rem 0; font-size:0.95rem;">
|
|
<thead>
|
|
<tr style="background:#eef3ff;">
|
|
<th style="text-align:left; padding:0.55rem 0.7rem; border-bottom:2px solid #4051b5;">Etape</th>
|
|
<th style="text-align:left; padding:0.55rem 0.7rem; border-bottom:2px solid #4051b5;">Effet metier</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Composant</td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">L'utilisateur choisit une courbe, un calendrier et active <code>Auto</code>.</td>
|
|
</tr>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Source curve</td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Le systeme lit les prix depuis <code>price_index</code>.</td>
|
|
</tr>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Source matrix</td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Le systeme lit les prix depuis <code>price_matrix.line</code>.</td>
|
|
</tr>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Trigger</td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">L'utilisateur definit une periode de prix et une periode d'application.</td>
|
|
</tr>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Lecture prix</td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Le systeme lit les prix de la courbe sur les dates de pricing.</td>
|
|
</tr>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Application</td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Le systeme cree une ligne de pricing par date d'application.</td>
|
|
</tr>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Quota</td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">La quantite fixee par date correspond a la quantite de ligne divisee par le nombre de dates d'application.</td>
|
|
</tr>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Moyenne</td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Si <code>AVG</code> est coche, le prix fixe utilise la moyenne progressive.</td>
|
|
</tr>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Fallback prix</td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Si <code>LAST</code> est coche, la courbe peut reprendre le dernier prix disponible.</td>
|
|
</tr>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Cut-off</td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;"><code>Pricing date max</code> arrete la generation apres cette date.</td>
|
|
</tr>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Ratio negatif</td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Un ratio <code>-100%</code> soustrait le composant du prix basis.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<pre style="background:#263238; color:#eef7ff; padding:1rem; border-radius:0.35rem; overflow:auto;"><code>Prix lus: P1 P2 P3 P4
|
|
Application: A1 A2 A3 A4
|
|
Quantite fixee: Q/4 Q/4 Q/4 Q/4
|
|
Summary: derniere ligne marquee last</code></pre>
|
|
|
|
### BR-PT-PRI-005 - Mode From / To manuel
|
|
|
|
<table style="width:100%; border-collapse:collapse; margin:1rem 0 1.5rem 0; font-size:0.95rem;">
|
|
<thead>
|
|
<tr style="background:#eef3ff;">
|
|
<th style="text-align:left; padding:0.55rem 0.7rem; border-bottom:2px solid #4051b5;">Cas</th>
|
|
<th style="text-align:left; padding:0.55rem 0.7rem; border-bottom:2px solid #4051b5;">Regle</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Pas de <code>pricing_period</code></td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">L'utilisateur peut saisir <code>From</code> / <code>To</code> cote pricing.</td>
|
|
</tr>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Pas de <code>application_period</code></td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">L'utilisateur peut saisir <code>From</code> / <code>To</code> cote application.</td>
|
|
</tr>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Application vide</td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Par defaut, l'application reprend la meme fourchette que le pricing manuel.</td>
|
|
</tr>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Calendrier present</td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Les jours fermes du calendrier sont exclus.</td>
|
|
</tr>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Calendrier absent</td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Tous les jours calendaires de la fourchette sont utilises.</td>
|
|
</tr>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Lecture curve</td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Les prix sont lus sur les dates de la fourchette pricing.</td>
|
|
</tr>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Application fixing</td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Les lignes de fixing sont creees sur les dates de la fourchette application.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<div style="border-left:0.28rem solid #4051b5; background:#f5f7ff; padding:0.85rem 1rem; margin:1rem 0 1.4rem 0; border-radius:0.35rem;"><strong style="display:block; margin-bottom:0.35rem;">Exemple simple</strong><span>Pricing <code>01/04 -> 05/04</code>, Application vide. Le systeme lit les prix du 1 au 5 avril et cree les applications sur ces memes dates, sauf jours exclus par le calendrier si un calendrier est renseigne.</span></div>
|
|
|
|
|
|
### BR-PT-PRI-006 - Matrix de premium ou spread
|
|
|
|
<table style="width:100%; border-collapse:collapse; margin:1rem 0 1.5rem 0; font-size:0.95rem;">
|
|
<thead>
|
|
<tr style="background:#eef3ff;">
|
|
<th style="text-align:left; padding:0.55rem 0.7rem; border-bottom:2px solid #4051b5;">Cas</th>
|
|
<th style="text-align:left; padding:0.55rem 0.7rem; border-bottom:2px solid #4051b5;">Regle</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Matrix generique</td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Une ligne matrix sans origin, destination, product ni quality s'applique comme fallback global.</td>
|
|
</tr>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Matrix conditionnelle</td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Une ligne avec origin, destination, product ou quality est prioritaire si elle correspond a la ligne trade.</td>
|
|
</tr>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Prix</td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;"><code>price_value</code> est converti vers l'unite / devise de la ligne si la matrix les renseigne.</td>
|
|
</tr>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Validite</td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;"><code>valid_from</code> et <code>valid_to</code> limitent la periode d'utilisation de la matrix.</td>
|
|
</tr>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Calendrier</td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Si le composant n'a pas de calendrier, le calendrier de la matrix est utilise.</td>
|
|
</tr>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Soustraction</td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Pour soustraire un premium, mettre le ratio du composant a <code>-100%</code>.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<div style="border-left:0.28rem solid #4051b5; background:#f5f7ff; padding:0.85rem 1rem; margin:1rem 0 1.4rem 0; border-radius:0.35rem;"><strong style="display:block; margin-bottom:0.35rem;">Usage premium simple</strong><span>Creer une matrix avec une ligne sans condition et <code>price_value = 45</code>, puis ajouter un composant de type <code>Matrix</code> sur la ligne trade. Avec un ratio <code>-100%</code>, ce composant diminue le prix basis de 45 dans le repere de la ligne.</span></div>
|
|
|
|
|
|
## Section developpeur
|
|
|
|
### Modeles pivots
|
|
|
|
<ul style="margin:0.65rem 0 1rem 1.1rem; padding-left:1rem; list-style-type:disc;">
|
|
<li style="margin:0.38rem 0;">Composant : <code>pricing.component</code>
|
|
</li>
|
|
<li style="margin:0.38rem 0;">Trigger : <code>pricing.trigger</code>
|
|
</li>
|
|
<li style="margin:0.38rem 0;">Periode relative : <code>pricing.period</code>
|
|
</li>
|
|
<li style="margin:0.38rem 0;">Ligne de fixing : <code>pricing.pricing</code>
|
|
</li>
|
|
<li style="margin:0.38rem 0;">Summary achat : <code>purchase.pricing.summary</code>
|
|
</li>
|
|
<li style="margin:0.38rem 0;">Summary vente : <code>sale.pricing.summary</code>
|
|
</li>
|
|
<li style="margin:0.38rem 0;">Ligne achat : <code>purchase.line</code>
|
|
</li>
|
|
<li style="margin:0.38rem 0;">Ligne vente : <code>sale.line</code>
|
|
</li>
|
|
<li style="margin:0.38rem 0;">Courbe : <code>price.price</code>
|
|
</li>
|
|
<li style="margin:0.38rem 0;">Valeur de courbe : <code>price.price_value</code>
|
|
</li>
|
|
<li style="margin:0.38rem 0;">Calendrier : <code>price.calendar</code>
|
|
</li>
|
|
</ul>
|
|
|
|
### Methodes principales
|
|
|
|
<ul style="margin:0.65rem 0 1rem 1.1rem; padding-left:1rem; list-style-type:disc;">
|
|
<li style="margin:0.38rem 0;"><code>pricing.trigger.getPricingListDates()</code>
|
|
</li>
|
|
<li style="margin:0.38rem 0;"><code>pricing.trigger.getApplicationListDates()</code>
|
|
</li>
|
|
<li style="margin:0.38rem 0;"><code>pricing.trigger.getListDates()</code>
|
|
</li>
|
|
<li style="margin:0.38rem 0;"><code>pricing.trigger.getprice()</code>
|
|
</li>
|
|
<li style="margin:0.38rem 0;"><code>purchase.line.check_pricing()</code>
|
|
</li>
|
|
<li style="margin:0.38rem 0;"><code>sale.line.check_pricing()</code>
|
|
</li>
|
|
<li style="margin:0.38rem 0;"><code>purchase.line.generate_pricing()</code>
|
|
</li>
|
|
<li style="margin:0.38rem 0;"><code>sale.line.generate_pricing()</code>
|
|
</li>
|
|
<li style="margin:0.38rem 0;"><code>pricing.pricing._sync_manual_values()</code>
|
|
</li>
|
|
<li style="margin:0.38rem 0;"><code>pricing.pricing._sync_manual_last()</code>
|
|
</li>
|
|
<li style="margin:0.38rem 0;"><code>purchase.pricing.summary.table_query()</code>
|
|
</li>
|
|
<li style="margin:0.38rem 0;"><code>sale.pricing.summary.table_query()</code>
|
|
</li>
|
|
</ul>
|
|
|
|
### Points d'attention actuels
|
|
|
|
<table style="width:100%; border-collapse:collapse; margin:1rem 0 1.5rem 0; font-size:0.95rem;">
|
|
<thead>
|
|
<tr style="background:#eef3ff;">
|
|
<th style="text-align:left; padding:0.55rem 0.7rem; border-bottom:2px solid #4051b5;">Sujet</th>
|
|
<th style="text-align:left; padding:0.55rem 0.7rem; border-bottom:2px solid #4051b5;">Etat</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;"><code>fallback</code> composant</td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Champ present, logique metier encore portee par <code>trigger.last</code>.</td>
|
|
</tr>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;"><code>last</code> trigger</td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Signifie dernier prix disponible sur la curve.</td>
|
|
</tr>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;"><code>last</code> pricing</td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Signifie derniere ligne du groupe pour le summary.</td>
|
|
</tr>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Matrix</td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Disponible dans le fixing auto, avec fallback generique et priorite aux lignes conditionnelles.</td>
|
|
</tr>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;"><code>prDate</code> / <code>apPrice</code></td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Variables intermediaires historiques peu exploitees.</td>
|
|
</tr>
|
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">AVG</td>
|
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Moyenne progressive calculee sur la liste des prix lus.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
## Tests proches
|
|
|
|
<ul style="margin:0.65rem 0 1rem 1.1rem; padding-left:1rem; list-style-type:disc;">
|
|
<li style="margin:0.38rem 0;"><code>modules/purchase_trade/tests/test_module.py</code>
|
|
</li>
|
|
<li style="margin:0.38rem 0;">Couverture existante :
|
|
<ul style="margin:0.65rem 0 1rem 1.35rem; padding-left:1rem; list-style-type:circle;">
|
|
<li style="margin:0.38rem 0;">champs manuels readonly / editable ;
|
|
</li>
|
|
<li style="margin:0.38rem 0;">recalcul du pricing manuel ;
|
|
</li>
|
|
<li style="margin:0.38rem 0;">unicite logique du <code>last</code> par groupe ;
|
|
</li>
|
|
<li style="margin:0.38rem 0;">fallback <code>quantity</code> si <code>quantity_theorical</code> est vide ;
|
|
</li>
|
|
<li style="margin:0.38rem 0;">controle que le composant appartient a la ligne courante.
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li style="margin:0.38rem 0;">Tests a maintenir :
|
|
<ul style="margin:0.65rem 0 1rem 1.35rem; padding-left:1rem; list-style-type:circle;">
|
|
<li style="margin:0.38rem 0;">From / To manuel sans calendrier ;
|
|
</li>
|
|
<li style="margin:0.38rem 0;">From / To manuel avec calendrier ;
|
|
</li>
|
|
<li style="margin:0.38rem 0;">application vide qui reprend la fourchette pricing ;
|
|
</li>
|
|
<li style="margin:0.38rem 0;">comportement AVG / LAST.
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|