Récemment, j'ai dû vérifier les calculs effectués par les services publics de ma ville. Il y avait un problème controversé, qui ne peut être résolu qu'en effectuant des calculs corrects. Pour l'avenir, je dirai que les services publics pensent mal. Par conséquent, nous examinerons ici comment calculer correctement les coûts d'inflation et 3% par an sur la dette pour les obligations, selon le Code civil de l'Ukraine.
La première partie décrit le calcul des coûts d'inflation, ceci est spécifique à l'Ukraine.
La deuxième partie (plus importante) sera consacrée à la question du calcul de 3% par an. Il s'applique également à la Fédération de Russie, à la Biélorussie et au Kazakhstan, mais dans ces pays, le taux n'est pas fixe, mais dépend du taux de refinancement de la Banque centrale. Le reste du pays n'a pas regardé.
La deuxième partie est très proche du calcul des intérêts sur les opérations de crédit ordinaires (prêts, prêts, emprunts, etc.).
D'abord une théorie, à la fin un peu de code.
Tout cela sous la coupe.
Je suis donc tombé entre les mains d'un document des services publics "Déclaration de cumul des coûts d'inflation et de 3% par an". Il a été vérifié par moi, et j'ai découvert qu'il a été calculé en utilisant le mauvais algorithme et qu'il présente un intérêt, car il doit mettre en œuvre les exigences de l'article du Code civil de l'Ukraine.
Ce qui doit être pris en compte est écrit dans le Code civil de l'Ukraine:
Article 625 du Code civil de l'Ukraine. «Responsabilité pour violation d'une obligation monétaire»
2. Le débiteur qui a retardé l'exécution d'une obligation monétaire est, à la demande du créancier, tenu de payer le montant de la dette en tenant compte de l'indice d'inflation établi pour toute la période de retard, ainsi que de 3% par an du montant en souffrance ...
Sur la base des chiffres de la dette, les services publics ont calculé les coûts d'inflation et 3% par an.
Coûts d'inflation
Plus loin, je parlerai de l'algorithme de calcul, et non de nombres spécifiques.
L'inflation est un processus caractérisé par une dépréciation de la monnaie, c'est-à-dire une diminution de son pouvoir d'achat et une augmentation générale des prix. Hors inflation, les résultats finaux des calculs de flux de trésorerie sont très arbitraires.
L'indice d'inflation (II) ou l'indice des prix à la consommation (IPC), l'indice des prix à la consommation (IPC) est l'un des types d'indices des prix créés pour mesurer le niveau moyen des prix des biens et services (panier de consommation) pendant une certaine période de l'économie.
L'IA est un indicateur caractérisant la dynamique du niveau général des prix des biens et services que la population acquiert pour une consommation non productive. Il s'agit de l'indice de croissance, qui indique le pourcentage de l'augmentation moyenne des prix pour la période considérée.
En Ukraine, AI et CPI sont synonymes
L'indice des prix étant un indice en chaîne, pour les périodes qui se succèdent, il est calculé en multipliant les indicateurs, par exemple, 101% * 102% = (1,01 * 1,02) * 100% = 103,02%.
L'IA est calculée par le Comité national des statistiques de l'Ukraine et publiée dans des périodiques officiels. Ces chiffres clés peuvent être utilisés pour recalculer les montants en espèces.
Que pensent les travailleurs communaux?
La dernière date de règlement est le 7 décembre 2016.
Voyons comment les travailleurs communaux ont obtenu des ratios de coût d'inflation?
On peut voir à l'œil nu que dans la troisième (et cinquième colonne), au lieu de la partie entière 1, il devrait y avoir la partie entière 0. Comment ont-ils obtenu la partie fractionnaire?
Septembre 2016. Partie fractionnaire 0,028. Le délai de paiement pour septembre est le 20 octobre 2016. La partie fractionnaire correspond à l'indice d'inflation publié par le Comité national des statistiques, pour octobre 2016 - 102,8%
Août 2016. Partie fractionnaire 0,0465. Le délai de paiement pour août est le 20 septembre 2016. La fraction correspond à l'indice d'inflation de septembre multiplié par II pour octobre: 101,8% * 102,8% = 104,65%, ou en actions, 1,018 * 1,028 = 1,046504. Les services publics sont arrondis à 1,0465 et impriment ce nombre, bien que l'unité doive être supprimée, car dans la colonne suivante, ils n'impriment que le montant des coûts d'inflation, et non le montant accumulé.
Juillet 2016 et versions antérieures. J'ai effectué ces calculs et restauré l'algorithme. Les services publics multiplient les indices d'inflation à partir du mois suivant le mois de la prestation de services (mois de la date d'échéance) et se terminant en octobre 2016.
Le point de départ n'est que partiellement vrai. Comme je le montrerai plus tard, dans le cas général, le calcul doit vraiment commencer à partir de ce mois, mais dans notre cas particulier, le premier mois doit être ignoré (assimiler AI à 100%).
Le point final de la multiplication. Étant donné que le dernier jour de calcul est en décembre et que vous devez terminer décembre, c'est généralement le cas. Comme je le montrerai plus tard, dans ce cas particulier, décembre doit également être ignoré (équivaut également à 100% pour l'IA). Et le 7 décembre, les IA de décembre n'ont pas eu le temps de publier.
Pourquoi novembre n'est-il pris en compte nulle part? Je pense qu'ils ont juste oublié de l'introduire dans le système.
Voyons maintenant comment calculer l'indice d'inflation. Au
besoin - décrit dans la lettre d'information de la Cour économique suprême d'Ukraine n ° 01-06 / 928/2012 du 17 juillet 2012 [6].
Je vais donner une partie du paragraphe:
Le montant de la dette à payer du 1er au 15e jour du mois est indexé en tenant compte de ce mois, et si la dette est à payer du 16e au 31e jour du mois, le calcul commence à partir du mois suivant.
De même, si une dette a été remboursée de 1 à 15 jours par mois, les coûts d'inflation sont calculés sans tenir compte de ce mois, et si de 16 à 31 jours par mois, les coûts d'inflation sont calculés en tenant compte de ce mois.
Dans notre cas, le délai de paiement est le 20e jour du mois suivant le mois de la prestation de services, c'est-à-dire pour la prestation de services en septembre, la date de début des règlements est le 21 octobre 2016 et la date limite est le 7 décembre 2016.
C'est-à-dire il est juste d'en tenir compte: pour la prestation de services en septembre 2016, pensez à l'inflation pendant trois mois (passez le curseur ou le cycle), d'octobre à décembre, mais au premier et au dernier mois, prenez AI égal à 1 (100%), et ne prenez en compte que novembre.
En novembre 2016, l'IA s'élevait à 101,8%, soit le coefficient doit être de 0,0180 et non de 0,0280. J'ai déjà écrit sur l'unité principale.
3% par an
Voyons comment les services communaux ont reçu des coefficients et des montants cumulés de 3% par an? Il s'agit de la cinquième colonne du tableau ci-dessus.
Comme je l'ai écrit plus tôt, il ne devrait pas y avoir d'unité principale, il devrait y avoir 0. Nous regardons la partie fractionnaire, et notons qu'elle est en quelque sorte étrangement arrondie - chaque mois précédent est 0,0025 de plus que le mois en cours.
À l'aide de calculs simples, il peut être déterminé que les services publics, sans plus tarder, ont divisé 3% en 12 mois, reçu 0,0025, ou 0,25% par mois, et cumulé ce pourcentage pour chaque mois de retard complet et incomplet. Oui, si vous regardez octobre 2016, dont le délai de paiement est venu le 21 novembre et les calculs ont été effectués le 7 décembre, alors pour un mois incomplet, ils ont compté le même 0,25%.
L'approche admire la simplicité brutale, mais, comme je le montrerai plus loin, les mathématiques financières ne connaissent pas un tel algorithme.
La législation ukrainienne et les mathématiques financières ne donnent pas de réponse claire à la question de savoir comment facturer 3% par an? J'ai cherché plusieurs livres sur ce sujet, mais les livres sont anciens et remontent à 2002. Par conséquent, les algorithmes des livres seront complétés par le fait qu'il était possible de google à partir d'articles plus modernes et occidentaux. [1] a été réimprimé en 2007 et aucun livre en russe plus récent n'a pu être trouvé. Peut-être parce que les mathématiques financières, en tant que science, sont nées il y a très longtemps, bien avant l'avènement des ordinateurs, des concepts tels que «crédit» et «intérêt sur crédit» sont apparus il y a plusieurs centaines d'années. Et les algorithmes n'ont pas beaucoup changé depuis 2002.
Mais la vision occidentale du problème est différente de celle décrite dans les livres en russe. Je citerai d'abord des informations tirées de livres en russe, puis d'articles occidentaux, indiquant où elles coïncident.
Ce qui est écrit ci-dessous concerne le cas spécifique de l'accumulation de 3% par an sur les arriérés, mais peut également être généralisé au calcul des intérêts sur d'autres relations de crédit si les intérêts sont accumulés en fonction des intérêts simples plutôt que des intérêts composés.
Selon l'art. 625 Le Code civil de l'Ukraine doit accumuler 3% par an selon le régime des intérêts simples. Pour calculer le montant des intérêts, le montant de la dette (ou le corps du prêt, dans le cas général) doit être multiplié par le taux d'intérêt annuel normalisé de 3% et multiplié par la fraction de l'année (durée en années) que représentait le retard. Cette part peut être supérieure à 1 si le retard est supérieur à un an.
La durée du retard est exprimée en jours. Dans un cas plus général, la durée du prêt
peut être exprimée en jours (la situation où la durée du prêt est exprimée en mois et en années n'est pas prise en compte ici). Et le taux annuel de 3% est le taux normalisé d'intérêt simple pour l'année.
Par conséquent, vous devez être en mesure de ramener la durée du retard (crédit) en jours à la durée en années. Ce n'est pas une tâche triviale, car la durée de l'année dépend de son nombre.La durée en jours est une mesure définie de manière unique de la durée des écarts de calendrier, par opposition à la durée en années. La définition de cette dernière nécessite une clarification sous la forme d'une règle de conversion de la durée en jours en durée en années. Un certain nombre de méthodes standard pour convertir la durée en jours en durée en années est basée sur la division du nombre de jours par le soi-disant
«diviseur annuel» . Les valeurs les plus courantes du diviseur annuel sont 360 et 365 jours. Dans les cas les plus simples, le diviseur est un nombre constant et indépendant de l'intervalle. Le nombre de jours dans une période agit toujours comme un dividende (numérateur d'une fraction).
Et vous devez décider de la procédure de calcul des termes en jours. Prenons deux exemples farfelus:
- Le client reçoit un prêt à court terme de la banque du 6 décembre 2018 au 7 décembre 2018. Quelle est la durée du contrat et combien de jours ai-je besoin pour accumuler des intérêts? De toute évidence - 1 jour.
- L'abonné précommande le service auprès de l'opérateur télécom, avec une durée de validité future du 6 décembre 2018 au 7 décembre 2018. Quelles sont les lignes de prestation de service et pendant combien de jours dois-je prendre un abonnement pour le service? Evidemment 2 jours.
Quelle est la différence?
Le fait est que le jour n'est pas un point sur la chronologie, mais un intervalle qui peut être écrit de deux manières (rappel, le crochet entre les bords de l'intervalle signifie que le point est dans l'intervalle, la parenthèse est le point pas dans l'intervalle):
- [06.12.2018 00.00.00, 12/07/2018 00.00.00) - ici la bordure droite de l'intervalle n'est pas incluse dans l'intervalle,
- [06/12/2018 00.00.00, 12/06/2018 23.59.59] - ici la bordure droite de l'intervalle est incluse dans l'intervalle.
Dans le premier cas (1), lorsque l'intervalle de temps n'est pas indiqué explicitement, mais sous la forme d'un intervalle entre les dates, le nombre exact de jours est généralement calculé, y compris le premier ou le dernier jour, mais pas les deux. [4] dit la même chose en d'autres termes: "Le jour où le prêt est émis et le jour de remboursement est considéré comme un jour".
Cette méthode détermine l'heure dite exacte. Il peut également être facilement déterminé si les deux dates se réfèrent à la même année et un calendrier est disponible indiquant le numéro de série de chaque jour de l'année. Il suffit ensuite de soustraire le numéro de série de la date précoce du numéro de série de la date tardive et le résultat donnera la durée de la période. Dans Oracle Database, vous pouvez simplement soustraire des dates (type DATE) tronquées à un jour (avec heure supprimée), l'une de l'autre, la différence est un nombre entier de jours.
Dans le second cas (2) nous parlons de jours, donc nous comptons deux jours.
De plus, je pars du fait que le nombre de jours que vous avez déjà été déterminé, par exemple, dans le cas des services communaux, lorsque le délai de paiement est le 20 septembre (c'est-à-dire le dernier jour de paiement acceptable), et qu'il a été payé le 21 septembre, c'est-à-dire il est évident que le délai doit être pris égal à 1 jour. Dans le cas où vous êtes confronté à une indication de l'intervalle n'incluant pas la bordure gauche - déplacez simplement la bordure gauche un jour vers la droite.
Comment comptons-nous le nombre de jours et le numérateur d'une fraction? Il y a un calcul exact et un calcul approximatif.
Comptage précis des jours
Pratique russophone
Le texte est en outre basé sur [1].
Le choix du nombre exact de jours dans une période comme diviseur, et les deux règles les plus courantes donnent les règles les plus courantes comme dénominateur - un diviseur annuel de 360 ou 365:
Règle (R1) ACT / 365. Pour cette règle, la durée en jours est divisée par le nombre 365. Je note que la durée d'une année bissextile sera de 366/365 = 1,00274, ce qui est supérieur à un. L'erreur de règle ACT / 365 sera la plus grande, le plus d'années bissextiles dans une période. Par conséquent, la valeur de 3% par an accumulée par cette règle sera supérieure à 3%.
Règle (R2) ACT / 360. Il s'agit de la «règle bancaire», selon laquelle la durée en jours est divisée par 360. Cette règle augmente encore la durée annuelle des écarts. Pour une année non bissextile, sa longueur sera de 365/360 = 1.01389, et pour une année bissextile 366/360 = 1.01667. Naturellement, plus la période est longue, plus le degré «d'allongement» des années est élevé. Cette règle est le plus souvent utilisée dans les calculs liés au marché monétaire, c'est-à-dire l'endettement à court terme du marché, comme les dépôts auprès des banques, les effets, les papiers commerciaux, les certificats de dépôt, etc. La valeur de 3% par an pour l'année sera encore plus élevée que lors de l'utilisation de la règle précédente.
Dans le cas où le diviseur annuel est accepté égal à 360 jours, l'intérêt gagné en utilisant un tel diviseur est appelé
ordinaire ou
commercial . Si le diviseur est pris égal à 365 ou, comme je le montrerai plus tard, à 366 jours, l'intérêt est appelé exact.
De toute évidence, les pourcentages ordinaires sont plus qu'exactes.
Bien que la première règle soit plus précise que la seconde, les deux ne sont pas assez précises.
Pour éliminer l'effet des années bissextiles sur les résultats, il existe deux autres règles.
Règle (R3) ACT / 365, Japon. Le calcul est effectué de la même manière que pour la règle ACT / 365, mais lors du calcul de la durée d'intervalle (numérateur de fraction), les dates de saut sont exclues. Le diviseur annuel reste inchangé.
Selon Wiki:
Dans de nombreux pays européens, jusqu'au 18e siècle, le 29 février était considéré comme un jour inexistant, une date sans statut juridique. Souvent, les transactions n'ont pas été effectuées ce jour-là, les paiements n'ont pas été effectués, ils n'ont pas été versés en dette, etc., en raison des difficultés liées à l'aspect formel de la question et au règlement des affaires devant les tribunaux.
Une autre façon est liée au changement effectif du diviseur.
Règle (R4) ACT / ACT basic. Nous divisons la période souhaitée en trois parties:
- la première partie, de la date de début à la fin de l'année où se situe la date de début,
- la troisième partie - du début de l'année où se situe la date de fin à la date de fin,
- la deuxième partie - 0 ou plusieurs années civiles complètes entre la première et la troisième partie.
Les durées des première et troisième parties sont obtenues en divisant le nombre de jours par le diviseur annuel 365 ou 366, selon qu'il s'agit d'une année bissextile? La durée de la deuxième période se compose d'un nombre entier d'années civiles complètes, par définition, qu'elles soient bissextiles ou non. La durée en années de la période entière est obtenue en additionnant les durées de trois parties, représentées par trois nombres, dont la seconde est un tout, et la première et la troisième sont fractionnaires.
Règle (R5) ACT / ACT modification "courte", pour des périodes inférieures à un an. Dans ce cas, la durée en jours est divisée par le diviseur annuel 365 ou 366, selon qu'il existe une date au 29 février dans la période de recherche? Une caractéristique de la règle ACT / ACT courte est que si l'intervalle ne correspond pas à l'année civile (ses extrémités appartiennent aux années voisines), l'application des règles de base et des règles courtes entraînera des résultats différents.
Pratique occidentale
Dans la pratique occidentale, les règles sont décrites différemment. Souvent, les mêmes règles en russe ont des noms différents et, en plus, pas un à la fois.
Les informations sont en outre basées sur [2]. C'est Vicki, j'ai vérifié toutes les sources et utilisé d'autres informations Google: dans les règles avec un nombre exact de jours, tout est correct, mais dans les règles avec un nombre approximatif de jours, il y a d'autres interprétations des règles, et souvent elles changent au fil du temps, donc, pour mettre les règles en pratique, le nombre approximatif de jours où cet article ne suffit pas.
Règle (W1) ISDA réel / réel. Cette règle donne le même résultat que (R4) «ACT / ACT main», mais est formulée différemment: l'intervalle est divisé en années bissextiles et non bissextiles, qu'elles soient complètes ou incomplètes, en outre, la somme des jours tombant dans années bissextiles, divisé par 365, et la somme des jours des années non bissextiles est divisée par 366, les deux nombres sont additionnés.
Autres noms de la règle dans la pratique occidentale: Actual / Actual, Act / Act, Actual / 365, Act / 365. Oui, le nom de famille est le même que la règle (R1), bien que l'essence de la règle soit différente.
Règle (W2) Réel / 365 fixe. Cette règle répète exactement la règle (R1) ACT / 365 - le nombre de jours est divisé par 365.
Autres noms de la règle dans la pratique occidentale: Act / 365 Fixed, A / 365 Fixed, A / 365F, anglais.
Règle (W3) Réel / 360. Cette règle répète (R2) ACT / 360 - le nombre exact de jours est divisé par 360.
Règle (W4) Réel / 364. Le nombre de jours est divisé par 364. Il n'a pas d'analogue dans la pratique russophone.
Règle (W5) Réel / 365L. Il se compose de deux réglages:
- Pour les paiements annuels. Si la date est le 29 février dans la période, alors le nombre de jours de la période est divisé par le diviseur annuel 366, sinon 365, en ce sens, il coïncide avec la règle (R5) ACT / ACT "modification courte".
- Si la fréquence des paiements diffère de celle annuelle. Si la date de fin est dans une année bissextile (et n'est pas nécessairement égale au 29 février), alors le diviseur annuel est 366, sinon 365. Dans la pratique russophone, il n'a pas d'analogue.
Un autre nom est ISMA-Year.
Règle (W6) AFB réel / réel. Il se compose de deux réglages:
- Le principal pour les périodes inférieures à un an: si la date est le 29 février dans la période, alors le nombre de jours de la période est divisé par le diviseur annuel 366, sinon 365, en ce sens, il coïncide également avec la règle R / ACT ACT / ACT «modification courte» .
- Prolongé, pour des périodes de plus d'un an: une année entière entière est décomptée de la date de fin à la date de début. Pour un solde inférieur à un an, la règle principale s'applique. Le nombre d'années complètes et la part de l'année selon la règle de base sont résumés.
Il y a des nuances associées au compte à rebours il y a des années, si le compte à rebours a eu lieu le 28 février, et après un certain nombre d'années complètes, l'année a été une année bissextile. Dans ce cas, la date d'il y a n ans devrait être adoptée le 29 février. J'ajoute que la question se pose également si le compte à rebours a été effectué à partir du 29 février et que le nombre d'années complètes n'est pas un multiple de quatre et que l'année précédente n'était donc pas une année bissextile. Je ne suis pas entré dans les détails ici. Mais vous pouvez vous référer aux liens de [2].Et «cerise sur le gâteau», règle (W7) 1/1. Le nombre de jours est divisé par le diviseur annuel 365,25. Utilisé pour les calculs liés à l'inflation.Nombre de jours estimé
Les règles énumérées ci-dessus étaient basées sur la durée exacte en jours des périodes civiles. Cependant, il existe parfois des schémas basés sur le dénombrement dit simplifié ou approximatif des jours. L'idée de ces régimes est «d'égaliser» la durée de tous les mois à 30 jours. Ainsi, l'année comprendra 12 mois de 30 jours, soit sur 360 jours. Par conséquent, le diviseur annuel (dénominateur de la fraction) pour ces règles sera toujours 360, et le numérateur est calculé de manière spéciale.Étant donné que le nombre exact de jours d'un prêt dans la plupart des cas, mais bien sûr, pas toujours, est plus qu'approximatif (comme on peut facilement le voir en déterminant le nombre moyen de jours dans un mois pour un an, qui est de 30,44), la méthode de calcul des intérêts avec le nombre exact de jours d'un prêt donne généralement croissance supérieure à celle approximative. [4]La version la plus simple de cette règle, dite règle de base 30/360 , est décrite comme suit (ci-après les informations sur le livre [1] - Pratique en langue russe):Règle de base 30/360. Le nombre approximatif de jours entre les dates est 360 * (y2 - y1) + 30 * (m2 - m1) + (d2 - d1),
où y, m, d - année, mois et jour aux deuxième et première dates.Cette règle est apparue avant la création des premiers appareils informatiques et a considérablement réduit le coût des opérations informatiques dans la pratique financière. Bien que le besoin de méthodes simplifiées ait maintenant disparu, néanmoins, ayant pris pied dans la pratique, par tradition, elles sont parfois utilisées à l'heure actuelle.La règle s'applique avec une indication obligatoire d'une modification qui indique comment gérer les derniers jours des mois:Pratique russophone
Donné par [1].Règle (R6) 30/360 ISDA. Si d1 = 31, alors d1 '= 30, sinon d1' = d1. Si d2 = 31 et d1 '= 30, alors d2' = 30, sinon d2 '= d2.Règle (R7) 30E / 360. Si d1 = 31, alors d1 '= 30, sinon d1' = d1. Si d2 = 31, alors d2 '= 30, sinon d2' = d2.Cette règle est une variante de la règle ISDA 30/360, utilisée principalement en Europe, d'où l'étiquette «E» au nom de la règle. Elle ne diffère de la règle ISDA 30/360 que lorsque la deuxième date est également la 31e. La version européenne le convertit toujours au 30ème nombre, quelle que soit la première date.Règle (R8) 30/360 PSA. Si d1 = 31 ou d1 est le dernier jour de février, alors d1 '= 30, sinon d1' = d1. Si d2 = 31 et d1 '= 30, alors d2' = 30, sinon d2 '= d2.La description de la règle SIA 30/360 dans [1] est très probablement une erreur, donc je ne la donnerai pas ici.Pratique occidentale
Donné selon [2].Règle (W8) 30/360 Base des obligations. Identique à (R6) 30/360 ISDA. Autre nom: 30A / 360.Règle (W9) 30E / 360. Identique à (R7) 30E / 360. Autres noms: 30/360 ICMA, 30S / 360, base Eurobond (ISDA 2006), allemand spécial.Règle (W10) 30E / 360 ISDA. Si d1 est le dernier jour du mois, alors d1 '= 30. Si d2 est le dernier jour PAS de février, alors d2 '= 30.Autres noms: 30E / 360 ISDA, base Eurobond (ISDA 2000), allemand.Règle (W11) 30/360 SIA. Si d1 est le dernier jour de février et d2 est le dernier jour de février, alors d2 '= 30. Si d1 = 31 ou le dernier jour de février, alors d1 '= 30, sinon d1' = d1. Si d1 '= 30 et d2 = 31, alors d2' = 30, sinon d2 '= d1.Les règles (R4) ACT / ACT, (W1) Réel / Réel ISDA, (W2) Réel / 365 Fixe sont également appelées «pratique anglaise».
Les règles (R2) ACT / 360 et (W3) Actual / 360 sont également appelées «pratiques françaises».
Les règles (R7) 30E / 360, (W9) 30E / 360 et (W10) 30E / 360 ISDA sont également appelées «pratique allemande» ou «pratique allemande».Ainsi, en tenant compte de l'intérêt exact et ordinaire, ainsi que du nombre exact et approximatif de jours pour le calcul de l'intérêt, nous obtenons quatre méthodes pour calculer l'intérêt simple (les noms des règles sont indiqués dans la pratique russophone):- Intérêt normal avec le nombre exact de jours (ACT / 360 - règle bancaire),
- Pourcentages exacts avec le nombre exact de jours (ACT / 365, ACT / ACT),
- Intérêt normal avec un nombre approximatif de jours (30/360),
- Pourcentages exacts avec un nombre approximatif de jours.
La première méthode la plus utilisée est la règle bancaire, moins souvent la deuxième et la troisième, et presque jamais la quatrième [1]. Et [4] dit: "... une option de calcul avec un intérêt exact et un nombre approximatif de jours de prêt n'a aucun sens et ne s'applique pas."Les calculs ci-dessus de la durée approximative des périodes en fractions d'année montrent la non-banalité et la variété des règles appliquées. Leur application (ainsi que leur origine) dépend du pays, de la devise, du type d'instrument financier, de l'association professionnelle, des accords. [1]
CONCLUSION:Comment compter 3% dans mon cas avec les services publics en Ukraine?Analyse de la pratique judiciaire d'application de l'art. 625 du Code civil de l'Ukraine indique que la méthode (R1) ACT / 365 [3] est généralement utilisée, mais qu'elle n'est pas clairement formulée. Je pense que vous devez toujours appliquer (R4) ACT / ACT, et voici pourquoi: si vous accumulez 3% pour une année bissextile complète en utilisant la méthode ACT / 365, le montant des intérêts sera égal à 3,008219%, ce qui correspond à la dette (ou à la taille de l'organisme de prêt) de 1 million d'unités monétaires donnera un excédent de 82,19 UM plus de 3%, qui sont stipulés par le taux d'intérêt annuel standardisé en vertu de la loi. Cela deviendra particulièrement important avec l'accumulation progressive des intérêts.J'apprécierais les commentaires, en particulier des employés de banque.Sources utilisées1) Bocharov, P.P., Kasimov, Yu.F. Mathématiques financières. Moscou: Gardariki, 20022) Convention de comptage des jours, en.wikipedia.org/wiki/Day_count_convention3) Analyse de l'application de l'art. 625 du Code civil de l'Ukraine dans les procédures civiles, zib.com.ua/ua/74602-analiz_praktiki_zastosuvannya_st_625_civilnogo_kodeksu_ukrai.html4) Chetyrkin E.M. Mathématiques financières. Moscou: cas, 20055) Conventions de calcul du nombre de jours et facteurs de cumul , docs.fincad.com/support/developerfunc/mathref/Daycount.htm6) Lettre d'information de la Cour suprême économique d'Ukraine n ° 01-06 / 928/2012 du 17.07.2012, zakon.rada.gov.ua/laws/show/v_928600-12Et maintenant un petit code sur Oracle Database:Voici le paquet que j'ai fait pour mon cas particulier - il calcule les coûts d'inflation et 3% par an pour l'Ukraine.Il n'y a pas de fonction d'agrégation dans Oracle Database qui multiplie les valeurs d'inflation. Par conséquent, j'utilise la somme des logarithmes.Texte masquéCREATE OR REPLACE TYPE DEBT_OVERHEAD_T as object (ID number, DEBT_DATE date, OVERHEAD_AMOUNT number); CREATE OR REPLACE TYPE DEBT_WITH_INF_AMOUNT_T as object (ID number, DEBT_DATE date, DEBT_AMOUNT number, PAYMENT_DATE date, INF_MONTH date, INF_RATE number, SKIP_INFLATION char (1), INF_RATE_ACCUMULATED number , INF_COEF_ACCUMULATED number, INF_AMOUNT_ACCUMULATED number, INF_AMOUNT_MONTH number); CREATE OR REPLACE TYPE DEBT_WITH_INF_T as object (ID number, DEBT_DATE date, DEBT_AMOUNT number, PAYMENT_DATE date, INF_MONTH date, INF_RATE number, SKIP_INFLATION char (1)); CREATE OR REPLACE TYPE DEBT_WITH_PCT_AMOUNT_T as object (ID number, DEBT_DATE date, DEBT_AMOUNT number, PAYMENT_DATE date, PCT_YEAR number, PCT_YEAR_DAYS number, PCT_YEAR_PCT_PER_DAY number, PCT_YEAR_BEGIN_DATE date , PCT_YEAR_END_DATE date, PCT_YEAR_DAYS_CALC number, PCT_YEAR_PCT_PER_YEAR number, PCT_AMOUNT_PER_YEAR number); CREATE OR REPLACE TYPE DEBT_OVERHEAD_LIST_T as table of DEBT_OVERHEAD_T; CREATE OR REPLACE TYPE DEBT_WITH_INF_AMOUNT_LIST_T as table of DEBT_WITH_INF_AMOUNT_T; CREATE OR REPLACE TYPE DEBT_WITH_INF_LIST_T as table of DEBT_WITH_INF_T; CREATE OR REPLACE TYPE DEBT_WITH_PCT_AMOUNT_LIST_T as table of DEBT_WITH_PCT_AMOUNT_T; CREATE OR REPLACE PACKAGE CALC_OVERHEADS_P is function GET_DEBT_WITH_INF (p_debt_date_begin date, p_debt_date_end date, p_last_collection_date date) return DEBT_WITH_INF_LIST_T; function GET_DEBT_WITH_INF_AMOUNT (p_debt_date_begin date, p_debt_date_end date, p_last_collection_date date) return DEBT_WITH_INF_AMOUNT_LIST_T; function GET_DEBT_WITH_INF_AMOUNT_TOTAL (p_debt_date_begin date, p_debt_date_end date, p_last_collection_date date) return DEBT_OVERHEAD_LIST_T; function GET_DEBT_WITH_PCT_AMOUNT (p_debt_date_begin date, p_debt_date_end date, p_last_collection_date date) return DEBT_WITH_PCT_AMOUNT_LIST_T; function GET_DEBT_WITH_PCT_AMOUNT_TOTAL (p_debt_date_begin date, p_debt_date_end date, p_last_collection_date date) return DEBT_OVERHEAD_LIST_T; end; / CREATE OR REPLACE PACKAGE BODY CALC_OVERHEADS_P is function GET_DEBT_WITH_INF (p_debt_date_begin date, p_debt_date_end date, p_last_collection_date date) return DEBT_WITH_INF_LIST_T is ret_value DEBT_WITH_INF_LIST_T; begin with T1 as (select a.ID, a.DEBT_DATE, a.DEBT_AMOUNT, a.PAYMENT_DATE, b.INF_MONTH, c.AVAL as INF_RATE from DEBTS a cross apply (select add_months (trunc (a.PAYMENT_DATE, 'month'), rownum - 1) as INF_MONTH from dual connect by level <= months_between (trunc (p_last_collection_date, 'month'), trunc (a.PAYMENT_DATE, 'month')) + 1) b left join INFLATION c on c.ADATE = b.INF_MONTH and c.TYP = 'M' where a.DEBT_DATE between p_debt_date_begin and p_debt_date_end ) , T2 as (select ID, DEBT_DATE, DEBT_AMOUNT, PAYMENT_DATE, INF_MONTH, INF_RATE , case when trunc (PAYMENT_DATE, 'month') = INF_MONTH and extract (day from PAYMENT_DATE) between 16 and 31 then 'Y' when trunc (p_last_collection_date, 'month') = INF_MONTH and extract (day from p_last_collection_date) between 1 and 15 then 'Y' end as SKIP_INFLATION from T1) select DEBT_WITH_INF_T (ID, DEBT_DATE, DEBT_AMOUNT, PAYMENT_DATE, INF_MONTH, INF_RATE, SKIP_INFLATION) bulk collect into ret_value from T2; return ret_value; end; function GET_DEBT_WITH_INF_AMOUNT (p_debt_date_begin date, p_debt_date_end date, p_last_collection_date date) return DEBT_WITH_INF_AMOUNT_LIST_T is ret_value DEBT_WITH_INF_AMOUNT_LIST_T; begin with T1 as (select ID, DEBT_DATE, DEBT_AMOUNT, PAYMENT_DATE, INF_MONTH, INF_RATE, SKIP_INFLATION , exp (sum (ln (case when SKIP_INFLATION = 'Y' or INF_RATE is null then 1 else INF_RATE / 100 end)) over (partition by ID order by INF_MONTH rows between unbounded preceding and current row)) * 100 as INF_RATE_ACCUMULATED from table (CALC_OVERHEADS_P.GET_DEBT_WITH_INF (p_debt_date_begin, p_debt_date_end, p_last_collection_date))) , T2 as (select ID, DEBT_DATE, DEBT_AMOUNT, PAYMENT_DATE, INF_MONTH, INF_RATE, SKIP_INFLATION, INF_RATE_ACCUMULATED , (INF_RATE_ACCUMULATED - 100) / 100 as INF_COEF_ACCUMULATED , round (((INF_RATE_ACCUMULATED - 100) / 100) * DEBT_AMOUNT, 2) as INF_AMOUNT_ACCUMULATED from T1) select DEBT_WITH_INF_AMOUNT_T (ID, DEBT_DATE, DEBT_AMOUNT, PAYMENT_DATE, INF_MONTH, INF_RATE, SKIP_INFLATION, INF_RATE_ACCUMULATED, INF_COEF_ACCUMULATED, INF_AMOUNT_ACCUMULATED , INF_AMOUNT_ACCUMULATED - lag (INF_AMOUNT_ACCUMULATED, 1, 0) over (partition by ID order by INF_MONTH)) bulk collect into ret_value from T2; return ret_value; end; function GET_DEBT_WITH_INF_AMOUNT_TOTAL (p_debt_date_begin date, p_debt_date_end date, p_last_collection_date date) return DEBT_OVERHEAD_LIST_T is ret_value DEBT_OVERHEAD_LIST_T; begin with T1 as (select ID , DEBT_DATE , round ((exp (sum (ln (case when SKIP_INFLATION = 'Y' then 1 else INF_RATE / 100 end))) - 1) * DEBT_AMOUNT, 2) as INF_AMOUNT from table (CALC_OVERHEADS_P.GET_DEBT_WITH_INF (p_debt_date_begin, p_debt_date_end, p_last_collection_date)) group by ID, DEBT_DATE, DEBT_AMOUNT) select DEBT_OVERHEAD_T (ID, DEBT_DATE, INF_AMOUNT) bulk collect into ret_value from T1; return ret_value; end; function GET_DEBT_WITH_PCT_AMOUNT (p_debt_date_begin date, p_debt_date_end date, p_last_collection_date date) return DEBT_WITH_PCT_AMOUNT_LIST_T is ret_value DEBT_WITH_PCT_AMOUNT_LIST_T; begin with T1 as (select * from DEBTS a cross apply (select extract (year from PAYMENT_DATE) + level - 1 as PCT_YEAR from dual connect by level <= extract (year from p_last_collection_date) - extract (year from PAYMENT_DATE) + 1) where DEBT_DATE between p_debt_date_begin and p_debt_date_end ) , T2 as (select ID, DEBT_DATE, DEBT_AMOUNT, PAYMENT_DATE, PCT_YEAR, to_date ('31.12.'||PCT_YEAR, 'DD.MM.YYYY') - to_date ('01.01.'||PCT_YEAR, 'DD.MM.YYYY') + 1 as PCT_YEAR_DAYS from T1) , T3 as (select ID, DEBT_DATE, DEBT_AMOUNT, PAYMENT_DATE, PCT_YEAR, PCT_YEAR_DAYS , 0.03 / PCT_YEAR_DAYS as PCT_YEAR_PCT_PER_DAY from T2) , T4 as (select ID, DEBT_DATE, DEBT_AMOUNT, PAYMENT_DATE, PCT_YEAR, PCT_YEAR_DAYS, PCT_YEAR_PCT_PER_DAY , greatest (PAYMENT_DATE + 1, to_date ('01.01.'||PCT_YEAR, 'DD-MM-YYYY')) as PCT_YEAR_BEGIN_DATE , least (to_date ('31.12.'||PCT_YEAR, 'DD-MM-YYYY'), p_last_collection_date) as PCT_YEAR_END_DATE from T3) , T5 as (select ID, DEBT_DATE, DEBT_AMOUNT, PAYMENT_DATE, PCT_YEAR, PCT_YEAR_DAYS, PCT_YEAR_PCT_PER_DAY, PCT_YEAR_BEGIN_DATE, PCT_YEAR_END_DATE , PCT_YEAR_END_DATE - PCT_YEAR_BEGIN_DATE + 1 as PCT_YEAR_DAYS_CALC , (PCT_YEAR_END_DATE - PCT_YEAR_BEGIN_DATE + 1) * PCT_YEAR_PCT_PER_DAY as PCT_YEAR_PCT_PER_YEAR , round ((PCT_YEAR_END_DATE - PCT_YEAR_BEGIN_DATE + 1) * PCT_YEAR_PCT_PER_DAY * DEBT_AMOUNT, 2) as PCT_AMOUNT_PER_YEAR from T4) select DEBT_WITH_PCT_AMOUNT_T (ID, DEBT_DATE, DEBT_AMOUNT, PAYMENT_DATE, PCT_YEAR, PCT_YEAR_DAYS, PCT_YEAR_PCT_PER_DAY, PCT_YEAR_BEGIN_DATE, PCT_YEAR_END_DATE, PCT_YEAR_DAYS_CALC, PCT_YEAR_PCT_PER_YEAR, PCT_AMOUNT_PER_YEAR) bulk collect into ret_value from T5; return ret_value; end; function GET_DEBT_WITH_PCT_AMOUNT_TOTAL (p_debt_date_begin date, p_debt_date_end date, p_last_collection_date date) return DEBT_OVERHEAD_LIST_T is ret_value DEBT_OVERHEAD_LIST_T; begin select DEBT_OVERHEAD_T (ID, DEBT_DATE, sum (PCT_AMOUNT_PER_YEAR)) bulk collect into ret_value from table (CALC_OVERHEADS_P.GET_DEBT_WITH_PCT_AMOUNT (p_debt_date_begin, p_debt_date_end, p_last_collection_date)) group by ID, DEBT_DATE; return ret_value; end; end;