Baru-baru ini, saya harus memeriksa perhitungan yang dibuat oleh utilitas publik kota saya. Ada masalah kontroversial, yang hanya bisa diselesaikan dengan melakukan perhitungan yang benar. Ke depan, saya akan mengatakan bahwa utilitas publik berpikir salah. Oleh karena itu, di sini kita akan mempertimbangkan bagaimana menghitung dengan benar biaya inflasi dan 3% per tahun untuk hutang untuk kewajiban, menurut Hukum Perdata Ukraina.
Bagian pertama menjelaskan perhitungan biaya inflasi, ini khusus untuk Ukraina.
Bagian kedua (lebih besar) akan dikhususkan untuk masalah menghitung 3% per tahun. Ini juga berlaku untuk Federasi Rusia, Belarus dan Kazakhstan, tetapi di negara-negara ini kurs tidak tetap, tetapi tergantung pada tingkat refinancing Bank Sentral. Seluruh negara tidak melihat.
Bagian kedua sangat dekat dengan menghitung bunga pada transaksi kredit biasa (pinjaman, pinjaman, pinjaman, dll).
Pertama teori, pada akhirnya sedikit kode.
Semua ini ada di bawah luka.
Jadi, saya mendapatkan sebuah dokumen dari utilitas publik "Pernyataan akrual biaya inflasi dan 3% per tahun." Saya sudah memeriksa, dan saya mengetahui bahwa itu dihitung menggunakan algoritma yang salah dan menarik, karena harus menerapkan persyaratan artikel dari Kode Sipil Ukraina.
Apa yang harus dipertimbangkan ditulis dalam KUH Perdata Ukraina:
Artikel 625 dari Kode Sipil Ukraina. “Tanggung jawab atas pelanggaran kewajiban moneter”
2. Seorang debitur yang telah menunda pemenuhan kewajiban moneter, atas permintaan kreditor, wajib membayar jumlah utang dengan memperhitungkan indeks inflasi yang telah ditetapkan untuk seluruh periode penundaan, serta 3% per tahun dari jumlah yang terlambat ...
Berdasarkan angka utang, utilitas publik menghitung biaya inflasi dan 3% per tahun.
Biaya inflasi
Selanjutnya saya akan berbicara tentang algoritma perhitungan, dan bukan tentang angka-angka tertentu.
Inflasi adalah proses yang ditandai dengan depresiasi mata uang, yaitu penurunan daya beli dan kenaikan harga secara umum. Tidak termasuk inflasi, hasil akhir dari perhitungan arus kas sangat sewenang-wenang.
Indeks Inflasi (II), atau Indeks Harga Konsumen (CPI), Indeks Harga Konsumen (CPI) - salah satu jenis indeks harga yang dibuat untuk mengukur tingkat harga rata-rata untuk barang dan jasa (keranjang konsumen) untuk periode tertentu dalam perekonomian.
AI adalah indikator yang mencirikan dinamika tingkat harga umum untuk barang dan jasa yang diperoleh populasi untuk konsumsi non-produktif. Ini adalah indeks pertumbuhan, yang menunjukkan berapa persen kenaikan harga rata-rata untuk periode yang ditinjau.
Di Ukraina, AI dan CPI sama artinya
Karena indeks harga adalah indeks berantai, untuk periode mengikuti satu demi satu, itu dihitung dengan mengalikan indikator, misalnya, 101% * 102% = (1,01 * 1,02) * 100% = 103,02%.
AI dihitung oleh Komite Statistik Negara Ukraina dan diterbitkan dalam majalah resmi. Angka-angka kunci ini dapat digunakan untuk menghitung ulang jumlah uang tunai.
Apa yang dipikirkan pekerja komunal?
Tanggal penyelesaian terakhir adalah 7 Desember 2016.
Mari kita lihat bagaimana pekerja komunal mendapat rasio biaya inflasi?
Dapat dilihat dengan mata telanjang bahwa pada kolom ketiga (dan kelima), bukannya bilangan bulat 1, harus ada bilangan bulat 0. Bagaimana mereka mendapatkan bagian pecahan?
September 2016. Bagian pecahan 0,028. Jangka waktu pembayaran untuk September adalah 20 Oktober 2016. Bagian pecahan sesuai dengan indeks inflasi yang diterbitkan oleh Komite Statistik Negara, untuk Oktober 2016 - 102,8%
Agustus 2016. Bagian pecahan 0,0465. Jangka waktu pembayaran untuk Agustus adalah 20 September 2016. Bagian pecahan sesuai dengan indeks inflasi untuk September dikalikan dengan II untuk Oktober: 101,8% * 102,8% = 104,65%, atau dalam bentuk saham, 1,018 * 1,028 = 1,046504. Utilitas publik dibulatkan menjadi 1,0465 dan mencetak nomor ini, meskipun unit harus diambil, karena pada kolom berikutnya mereka hanya mencetak jumlah biaya inflasi, dan bukan jumlah akumulasi.
Juli 2016 dan sebelumnya. Saya melakukan perhitungan ini dan mengembalikan algoritme. Utilitas publik menggandakan indeks inflasi, mulai dari bulan setelah bulan penyediaan layanan (bulan dari tanggal jatuh tempo), dan berakhir dengan Oktober 2016.
Titik awal hanya sebagian benar. Seperti yang akan saya tunjukkan nanti, dalam kasus umum, perhitungan benar-benar perlu dimulai dari bulan ini, tetapi dalam kasus khusus kami, bulan pertama harus dilewati (menyamakan AI hingga 100%).
Titik akhir dari perkalian. Karena hari terakhir perhitungan adalah pada bulan Desember, dan Anda harus menyelesaikan bulan Desember, pada umumnya demikian. Seperti yang akan saya tunjukkan nanti, dalam kasus khusus ini, Desember juga perlu dilewati (juga samakan AI hingga 100%). Dan pada 7 Desember, AI Desember tidak punya waktu untuk menerbitkan.
Mengapa November tidak diperhitungkan di mana pun? Saya pikir mereka hanya lupa untuk memasukkannya ke dalam sistem.
Sekarang mari kita lihat bagaimana cara menghitung indeks inflasi. Sebagaimana
diperlukan - dijelaskan dalam Surat Informasi Mahkamah Agung Ekonomi Ukraina No. 01-06 / 928/2012 tanggal 17.07.2012 [6].
Saya akan memberikan bagian dari paragraf:
Jumlah utang yang harus dibayar dari hari pertama hingga tanggal 15 bulan tersebut diindeks dengan memperhitungkan bulan ini, dan jika utang tersebut harus dibayar dari tanggal 16 hingga 31 pada bulan tersebut, perhitungan dimulai dari bulan berikutnya.
Demikian pula, jika utang telah dilunasi dari 1 hingga 15 hari dalam sebulan, biaya inflasi dihitung tanpa memperhitungkan bulan ini, dan jika dari 16 hingga 31 hari dalam sebulan, biaya inflasi dihitung dengan memperhitungkan bulan ini.
Dalam kasus kami, jangka waktu pembayaran adalah hari ke-20 pada bulan tersebut setelah bulan pemberian layanan, yaitu untuk penyediaan layanan pada bulan September, tanggal mulai penyelesaian adalah 21 Oktober 2016, dan batas waktunya adalah 7 Desember 2016.
Yaitu memang benar untuk mengatakan ini: untuk penyediaan layanan pada September 2016, pertimbangkan inflasi selama tiga bulan (lewati kursor atau siklus), dari Oktober hingga Desember, tetapi pada bulan pertama dan terakhir, ambil AI sama dengan 1 (100%), dan hanya memperhitungkan November.
Pada November 2016, AI sebesar 101,8%, yaitu koefisien harus 0,0180, bukan 0,0280. Saya menulis tentang unit pemimpin sebelumnya.
3% per tahun
Mari kita lihat bagaimana layanan komunal menerima koefisien dan jumlah akrual 3% per tahun? Ini adalah kolom kelima dalam tabel di atas.
Seperti yang saya tulis sebelumnya, seharusnya tidak ada unit yang memimpin, harus ada 0. Kita melihat bagian fraksional, dan perhatikan bahwa itu entah bagaimana bulat mencurigakan - setiap bulan sebelumnya adalah 0,0025 lebih dari bulan saat ini.
Dengan menggunakan perhitungan sederhana, dapat ditentukan bahwa utilitas publik, tanpa basa-basi lagi, dibagi 3% menjadi 12 bulan, menerima 0,0025, atau 0,25% per bulan, dan menghasilkan persentase ini untuk setiap bulan penundaan penuh dan tidak lengkap. Ya, jika Anda melihat pada Oktober 2016, batas waktu pembayaran yang datang pada 21 November, dan perhitungan dilakukan pada 7 Desember, maka untuk bulan yang tidak lengkap mereka menghitung 0,25% yang sama.
Pendekatan ini mengagumi keterusterangan brutal, tetapi, seperti yang akan saya tunjukkan nanti, matematika finansial tidak tahu algoritma seperti itu.
Undang-undang Ukraina dan matematika keuangan tidak memberikan jawaban yang jelas untuk pertanyaan tentang cara menagih 3% per tahun? Saya telah mencari beberapa buku tentang hal ini, tetapi buku-buku itu kuno, sejak tahun 2002. Oleh karena itu, algoritme dari buku-buku tersebut akan dilengkapi dengan fakta bahwa google dapat dibuat dari artikel yang lebih modern dan barat. [1] dicetak ulang pada tahun 2007, dan buku-buku berbahasa Rusia yang lebih baru tidak dapat ditemukan. Mungkin karena matematika keuangan, sebagai sains, berasal dari waktu yang sangat lama, jauh sebelum munculnya komputer, konsep-konsep seperti "kredit" dan "bunga kredit" muncul beberapa ratus tahun yang lalu. Dan algoritma tidak banyak berubah sejak tahun 2002.
Tetapi pandangan Barat tentang masalahnya berbeda dari yang dijelaskan dalam buku-buku berbahasa Rusia. Saya akan mengutip informasi pertama dari buku-buku berbahasa Rusia, dan kemudian dari artikel-artikel Barat, menunjukkan di mana mereka bertepatan.
Apa yang tertulis di bawah ini merujuk pada kasus spesifik yang timbul 3% per tahun karena tunggakan, tetapi dapat digeneralisasi dengan perhitungan bunga pada hubungan kredit lainnya jika bunga tersebut diperoleh berdasarkan bunga sederhana daripada skema bunga majemuk.
Menurut Art. 625 Hukum Perdata Ukraina perlu bertambah 3% per tahun sesuai dengan skema bunga sederhana. Untuk menghitung jumlah bunga, jumlah utang (atau badan pinjaman, dalam kasus umum) harus dikalikan dengan suku bunga tahunan yang dinormalisasi sebesar 3% dan dikalikan dengan fraksi tahun (durasi dalam tahun) dengan jumlah keterlambatan tersebut. Bagian ini mungkin lebih dari 1 jika penundaan lebih dari satu tahun.
Durasi penundaan dinyatakan dalam hari. Dalam kasus yang lebih umum, jangka waktu pinjaman
dapat dinyatakan dalam hari (situasi ketika jangka waktu pinjaman dinyatakan dalam bulan dan tahun tidak dipertimbangkan di sini). Dan tingkat tahunan 3% adalah tingkat normal bunga sederhana untuk tahun itu.
Oleh karena itu, Anda harus dapat membawa durasi keterlambatan (kredit) dalam hari ke durasi dalam tahun. Ini bukan tugas sepele, karena panjang tahun tergantung pada jumlahnya.Durasi dalam berhari-hari adalah ukuran yang didefinisikan secara unik dari durasi kesenjangan kalender, berbeda dengan durasi dalam tahun. Definisi yang terakhir membutuhkan klarifikasi dalam bentuk aturan untuk mengkonversi durasi dalam hitungan hari menjadi durasi dalam tahun. Sejumlah metode standar untuk mengkonversi durasi dalam hitungan hari menjadi durasi dalam tahun didasarkan pada membagi jumlah hari dengan apa yang disebut
"pembagi tahunan" . Nilai paling umum dari pembagi tahunan adalah 360 dan 365 hari. Dalam kasus yang paling sederhana, pembagi adalah angka konstan dan interval-independen. Jumlah hari dalam suatu periode selalu bertindak sebagai dividen (pembilang dari pecahan).
Dan Anda perlu memutuskan prosedur untuk menghitung persyaratan dalam beberapa hari. Mari kita perhatikan dua contoh yang tidak masuk akal:
- Klien menerima pinjaman jangka pendek dari bank dari 6 Desember 2018 hingga 7 Desember 2018. Apa jangka waktu kontrak dan berapa hari yang saya perlukan untuk memperoleh bunga? Jelas - 1 hari.
- Pelanggan memesan di muka layanan dari operator telekomunikasi, dengan masa berlaku di masa depan dari 6 Desember 2018 hingga 7 Desember 2018. Apa jalur penyediaan layanan dan untuk berapa hari saya harus mengambil biaya berlangganan untuk layanan ini? Jelas 2 hari.
Apa bedanya?
Faktanya adalah bahwa hari itu bukan titik pada timeline, tetapi suatu interval yang dapat ditulis dalam dua cara (saya ingat bahwa kurung siku pada batas interval berarti bahwa titik tersebut dalam interval, kurung adalah titik bukan dalam interval):
- [06.12.2018 00.00.00, 12/07/2018 00.00.00) - di sini batas kanan interval tidak termasuk dalam interval,
- [06/12/2018 00.00.00, 12/06/2018 23.59.59] - di sini batas kanan interval termasuk dalam interval.
Dalam kasus pertama (1), ketika interval waktu tidak diberikan secara eksplisit, tetapi dalam bentuk interval antara tanggal, jumlah hari yang tepat biasanya dihitung, termasuk hari pertama atau terakhir, tetapi tidak keduanya. [4] mengatakan hal yang sama dengan kata lain: "Hari pinjaman dikeluarkan dan hari pembayaran dianggap satu hari."
Metode ini menentukan waktu yang disebut tepat. Hal ini juga dapat dengan mudah ditentukan jika kedua tanggal merujuk pada tahun yang sama dan kalender tersedia yang menunjukkan nomor seri setiap hari dalam setahun. Maka itu cukup untuk mengurangkan nomor seri tanggal awal dari nomor seri tanggal akhir dan hasilnya akan memberikan durasi periode. Dalam Oracle Database, Anda cukup mengurangi tanggal (tipe DATE) yang terpotong menjadi satu hari (dengan waktu yang dibuang), satu dari yang lain, perbedaannya adalah jumlah hari bilangan bulat.
Dalam kasus kedua (2) kita berbicara tentang hari, jadi kita menghitung dua hari.
Selanjutnya, saya melanjutkan dari fakta bahwa jumlah hari yang telah Anda tentukan, misalnya, dalam kasus layanan komunal, ketika batas waktu pembayaran adalah 20 September (yaitu ini adalah hari pembayaran terakhir yang dapat diterima), dan dibayarkan pada tanggal 21 September, yaitu. jelas bahwa keterlambatan harus diambil sama dengan 1 hari. Jika Anda dihadapkan dengan indikasi interval tidak termasuk perbatasan kiri - hanya memindahkan perbatasan kiri satu hari ke kanan.
Bagaimana kita menghitung jumlah hari dan pembilang fraksi? Ada perhitungan yang tepat dan perkiraan perhitungan.
Penghitungan hari yang akurat
Latihan berbahasa Rusia
Teks selanjutnya didasarkan pada [1].
Pilihan jumlah hari yang tepat dalam suatu periode sebagai pembagi, dan dua aturan paling umum diberikan sebagai penyebut pembagi tahunan 360 atau 365:
Aturan (R1) ACT / 365. Untuk aturan ini, durasi dalam hari dibagi dengan angka 365. Saya perhatikan bahwa panjang tahun kabisat adalah 366/365 = 1,00274, yang lebih dari satu. Kesalahan aturan ACT / 365 akan menjadi lebih besar, lebih banyak tahun kabisat dalam suatu periode. Oleh karena itu, nilai 3% per tahun yang diakibatkan oleh aturan ini akan lebih dari 3%.
Aturan (R2) ACT / 360. Ini adalah apa yang disebut "Aturan Perbankan", yang menurutnya, durasi dalam hari dibagi dengan 360. Aturan ini semakin menambah panjang kesenjangan tahunan. Untuk tahun non-kabisat, panjangnya akan menjadi 365/360 = 1.01389, dan untuk tahun kabisat 366/360 = 1.01667. Secara alami, semakin lama periode, semakin besar tingkat "perpanjangan" dalam beberapa tahun. Aturan ini paling sering digunakan dalam perhitungan yang terkait dengan pasar uang, yaitu hutang jangka pendek pasar, seperti deposito dengan bank, tagihan, surat berharga, sertifikat deposito, dll. Nilai 3% per tahun untuk tahun tersebut akan lebih besar daripada ketika menggunakan aturan sebelumnya.
Dalam hal pembagi tahunan diterima sama dengan 360 hari, bunga yang diperoleh dengan menggunakan pembagi tersebut disebut
biasa , atau
komersial . Jika pembagi diambil sama dengan 365 atau, seperti yang akan saya tunjukkan nanti, 366 hari, bunga disebut tepat.
Jelas, persentase biasa lebih dari tepat.
Meskipun aturan pertama lebih akurat daripada yang kedua, keduanya tidak cukup akurat.
Untuk menghilangkan efek tahun kabisat pada hasil, ada dua aturan lain.
Aturan (R3) ACT / 365, Jepang. Perhitungan dilakukan dengan cara yang sama seperti untuk aturan ACT / 365, tetapi ketika menghitung durasi interval (pembilang fraksi), tanggal lompatan dikecualikan. Pembagi tahunan tetap tidak berubah.
Menurut Wiki:
Di banyak negara Eropa, hingga abad ke-18, tanggal 29 Februari dianggap sebagai hari yang tidak ada, tanggal yang tidak memiliki status hukum. Seringkali, transaksi tidak dilakukan hari itu, pembayaran tidak dilakukan, mereka tidak diberikan dalam hutang, dll, karena ada masalah dengan sisi formal masalah dan penyelesaian kasus di pengadilan.
Cara lain terkait dengan perubahan pembagi yang sebenarnya.
Aturan (R4) ACT / ACT dasar. Kami membagi periode yang diinginkan menjadi tiga bagian:
- bagian pertama, dari tanggal mulai hingga akhir tahun di mana tanggal mulai berada,
- bagian ketiga - dari awal tahun di mana tanggal akhir berada, hingga tanggal akhir,
- bagian kedua - 0 atau beberapa tahun kalender penuh antara bagian pertama dan ketiga.
Durasi bagian pertama dan ketiga diperoleh dengan membagi jumlah hari dengan pembagi tahunan 365 atau 366, tergantung pada apakah itu tahun kabisat? Durasi periode kedua terdiri dari jumlah integer tahun kalender penuh, menurut definisi, terlepas dari apakah mereka melompat atau tidak. Durasi dalam tahun dari seluruh periode diperoleh dengan menjumlahkan durasi dari tiga bagian, diwakili oleh tiga angka, di mana yang kedua adalah keseluruhan, dan yang pertama dan ketiga adalah fraksional.
Aturan (R5) ACT / ACT "pendek" modifikasi, untuk periode kurang dari setahun. Dalam hal ini, durasi dalam hari dibagi dengan pembagi tahunan 365 atau 366, tergantung pada apakah ada tanggal pada 29 Februari dalam periode pencarian? Keunikan aturan pendek ACT / ACT adalah bahwa jika interval tidak sesuai dengan tahun kalender (ujungnya menjadi tahun tetangga), maka penerapan aturan dasar dan pendek akan menghasilkan hasil yang berbeda.
Praktek Barat
Dalam praktik Barat, aturan dijelaskan secara berbeda. Seringkali aturan bahasa Rusia yang sama diberi nama yang berbeda, dan, lebih dari itu, tidak satu per satu.
Informasi selanjutnya berdasarkan [2]. Ini Vicki, saya memeriksa semua sumber dan menggunakan informasi google lainnya: dalam aturan dengan jumlah hari yang tepat, semuanya benar, tetapi dalam aturan dengan perkiraan jumlah hari ada interpretasi lain dari aturan, dan sering kali mereka berubah seiring waktu, oleh karena itu, untuk menerapkan aturan, perkiraan jumlah hari artikel ini tidak cukup.
Aturan (W1) Aktual / Aktual Aktual. Aturan ini memberikan hasil yang sama dengan (R4) "ACT / ACT basic", tetapi dirumuskan secara berbeda: interval dibagi menjadi tahun kabisat dan tanpa kabisat, terlepas dari apakah mereka penuh atau tidak lengkap, lebih lanjut, jumlah hari yang jatuh ke dalam tahun kabisat, dibagi dengan 365, dan jumlah hari dalam tahun kabisat dibagi dengan 366, kedua angka tersebut dijumlahkan.
Nama-nama lain dari aturan dalam praktik Barat: Aktual / Aktual, Act / Act, Actual / 365, Act / 365. Ya, nama belakang sama dengan aturan (R1), meskipun esensi aturan berbeda.
Aturan (W2) Aktual / 365 Diperbaiki. Aturan ini persis mengulangi aturan (R1) ACT / 365 - jumlah hari dibagi dengan 365.
Nama lain dari aturan dalam praktik Barat: Act / 365 Fixed, A / 365 Fixed, A / 365F, Bahasa Inggris.
Aturan (W3) Sebenarnya / 360. Aturan ini berulang (R2) ACT / 360 - jumlah hari yang tepat dibagi dengan 360.
Aturan (W4) Sebenarnya / 364. Jumlah hari dibagi 364. Tidak ada analog dalam praktik berbahasa Rusia.
Aturan (W5) Sebenarnya / 365L. Ini terdiri dari dua tweak:
- Untuk pembayaran tahunan. Jika tanggal 29 Februari dalam periode, maka jumlah hari dalam periode dibagi dengan pembagi tahunan 366, jika tidak, oleh 365. Dalam hal ini, itu bertepatan dengan aturan (R5) ACT / ACT “modifikasi singkat”.
- Jika frekuensi pembayaran berbeda dengan tahunan. Jika tanggal akhir adalah tahun kabisat (dan tidak harus sama dengan 29 Februari), maka pembagi tahunan adalah 366, jika tidak - 365. Dalam praktik berbahasa Rusia, ini tidak memiliki analog.
Nama lain adalah ISMA-Year.
Aturan (W6) AFB Aktual / Aktual. Ini terdiri dari dua tweak:
- Utama, untuk periode kurang dari setahun: Jika tanggalnya adalah 29 Februari dalam periode tersebut, maka jumlah hari dalam periode tersebut dibagi dengan pembagi tahunan 366, jika tidak - oleh 365. Dalam hal ini, itu juga bertepatan dengan aturan "modifikasi pendek" R / ACT / ACT .
- Diperpanjang, untuk periode lebih dari satu tahun: satu tahun penuh bilangan bulat dihitung kembali dari tanggal akhir hingga tanggal mulai. Untuk saldo kurang dari setahun, aturan utama berlaku. Jumlah tahun penuh dan bagian tahun di bawah aturan dasar dirangkum.
Ada nuansa yang terkait dengan hitung mundur tahun lalu, jika hitung mundur dilakukan pada 28 Februari, dan setelah seluruh tahun penuh yang lalu, tahun itu adalah tahun kabisat. Dalam hal ini, tanggal dan tahun yang lalu harus diadopsi pada tanggal 29 Februari. Saya menambahkan bahwa pertanyaan juga muncul jika penghitungan mundur dilakukan dari 29 Februari, dan jumlah tahun penuh yang lalu bukan kelipatan empat, dan karenanya tahun sebelumnya bukan tahun kabisat. Saya tidak masuk ke detail di sini. Tapi Anda bisa merujuk ke tautan dari [2].Dan "cherry on the cake," Aturan (W7) 1/1. Jumlah hari dibagi dengan pembagi tahunan 365,25. Digunakan untuk perhitungan yang berkaitan dengan inflasi.Perkiraan hari dihitung
Aturan yang tercantum di atas didasarkan pada durasi tepat dalam hari periode kalender. Namun, terkadang ada skema berdasarkan apa yang disebut penghitungan hari yang disederhanakan, atau perkiraan. Ide skema ini adalah untuk "menyamakan" durasi semua bulan hingga 30 hari. Dengan demikian, tahun akan terdiri dari 12 bulan 30 hari, yaitu dari 360 hari. Oleh karena itu, pembagi tahunan (penyebut fraksi) untuk aturan-aturan ini akan selalu 360, dan pembilangnya dihitung dengan cara khusus.Karena jumlah pasti hari pinjaman dalam kebanyakan kasus, tetapi tentu saja, tidak selalu, lebih besar dari nilai perkiraan (yang dapat dengan mudah diverifikasi dengan menentukan jumlah tahunan rata-rata hari dalam sebulan, yaitu 30,44), metode perhitungan bunga dengan jumlah hari pinjaman biasanya memberikan pertumbuhan lebih besar dari perkiraan. [4]Versi paling sederhana dari aturan ini, yang disebut Peraturan Dasar 30/360 , dijelaskan sebagai berikut (selanjutnya informasi pada buku [1] - praktik berbahasa Rusia):Aturan Dasar 30/360. Perkiraan jumlah hari antara tanggal adalah 360 * (y2 - y1) + 30 * (m2 - m1) + (d2 - d1),
di mana y, m, d - tahun, bulan dan hari pada tanggal kedua dan pertama.Aturan ini muncul sebelum penciptaan perangkat komputasi pertama dan secara signifikan menghemat biaya operasi komputasi dalam praktik keuangan. Meskipun sekarang kebutuhan untuk metode yang disederhanakan telah menghilang, namun, setelah mendapatkan pijakan dalam praktiknya, secara tradisional mereka kadang-kadang digunakan pada saat ini.Aturan berlaku dengan indikasi wajib modifikasi yang menunjukkan bagaimana menangani hari-hari terakhir bulan:Latihan berbahasa Rusia
Diberikan oleh [1].Aturan (R6) 30/360 ISDA. Jika d1 = 31, maka d1 '= 30, sebaliknya d1' = d1. Jika d2 = 31 dan d1 '= 30, maka d2' = 30, sebaliknya d2 '= d2.Aturan (R7) 30E / 360. Jika d1 = 31, maka d1 '= 30, sebaliknya d1' = d1. Jika d2 = 31, maka d2 '= 30, sebaliknya d2' = d2.Aturan ini adalah varian dari aturan ISDA 30/360, yang digunakan terutama di Eropa, karenanya label "E" atas nama aturan. Ini berbeda dari aturan ISDA 30/360 hanya ketika tanggal kedua juga tanggal 31. Versi Eropa selalu mengonversinya ke nomor 30, terlepas dari tanggal pertama.Aturan (R8) 30/360 PSA. Jika d1 = 31 atau d1 adalah hari terakhir bulan Februari, maka d1 '= 30, sebaliknya d1' = d1. Jika d2 = 31 dan d1 '= 30, maka d2' = 30, sebaliknya d2 '= d2.Deskripsi aturan SIA 30/360 di [1] kemungkinan besar merupakan kesalahan, jadi saya tidak akan memberikannya di sini.Praktek Barat
Diberikan sesuai dengan [2].Aturan (W8) 30/360 Dasar Obligasi. Sama seperti (R6) 30/360 ISDA. Nama lain: 30A / 360.Aturan (W9) 30E / 360. Sama seperti (R7) 30E / 360. Nama lain: 30/360 ICMA, 30S / 360, basis Eurobond (ISDA 2006), Bahasa Jerman Khusus.Aturan (W10) 30E / 360 ISDA. Jika d1 adalah hari terakhir dalam sebulan, maka d1 '= 30. Jika d2 adalah hari terakhir BUKAN Februari, maka d2 '= 30.Nama lain: 30E / 360 ISDA, basis Eurobond (ISDA 2000), Jerman.Aturan (W11) 30/360 SIA. Jika d1 adalah hari terakhir bulan Februari dan d2 adalah hari terakhir bulan Februari, maka d2 '= 30. Jika d1 = 31 atau hari terakhir bulan Februari, maka d1 '= 30, sebaliknya d1' = d1. Jika d1 '= 30 dan d2 = 31, maka d2' = 30, sebaliknya d2 '= d1.Aturan (R4) ACT / ACT, (W1) Aktual / Aktual ISDA, (W2) Aktual / 365 Tetap juga disebut "praktik bahasa Inggris."
Aturan (R2) ACT / 360 dan (W3) Actual / 360 juga disebut "praktik Prancis".
Peraturan (R7) 30E / 360, (W9) 30E / 360 dan (W10) 30E / 360 ISDA juga disebut "Praktek Jerman" atau "Praktek Jerman".Jadi, dengan memperhitungkan bunga yang tepat dan biasa, serta jumlah hari yang tepat dan perkiraan untuk menghitung bunga, kami mendapatkan empat metode untuk menghitung bunga sederhana (nama-nama aturan ditunjukkan dalam praktik berbahasa Rusia):- Bunga normal dengan jumlah hari persis (ACT / 360 - aturan perbankan),
- Persentase tepat dengan jumlah hari persis (ACT / 365, ACT / ACT),
- Bunga normal dengan perkiraan jumlah hari (30/360),
- Persentase yang tepat dengan perkiraan jumlah hari.
Metode pertama yang paling umum digunakan disebut aturan perbankan, lebih jarang yang kedua dan ketiga, dan hampir tidak pernah yang keempat [1]. Dan [4] mengatakan: "... pilihan perhitungan dengan bunga tepat dan perkiraan jumlah hari pinjaman tidak ada artinya dan tidak berlaku."Perhitungan di atas dari perkiraan durasi periode dalam pecahan tahun menunjukkan non-triviality dan variasi aturan yang diterapkan. Aplikasi mereka (dan juga asal) tergantung pada negara, mata uang, jenis instrumen keuangan, asosiasi profesional, perjanjian. [1]KESIMPULAN:Bagaimana saya menghitung 3% dalam kasus saya dengan utilitas publik di Ukraina?Analisis praktik peradilan penerapan Seni. 625 KUH Perdata Ukraina mengatakan bahwa metode (R1) ACT / 365 [3] biasanya digunakan, tetapi ini tidak dirumuskan dengan jelas. Saya pikir Anda masih perlu menerapkan (R4) ACT / ACT, dan inilah alasannya: jika Anda memperoleh 3% untuk tahun kabisat penuh menggunakan metode ACT / 365, maka jumlah bunga akan sama dengan 3,008219%, yang untuk utang (atau ukuran badan pinjaman) 1 juta unit moneter akan memberikan kelebihan CU 82,19 lebih dari 3%, yang ditentukan oleh tingkat bunga standar tahunan berdasarkan UU. Ini akan menjadi sangat penting dengan akrual bunga yang progresif.Saya akan sangat menghargai komentar, terutama dari karyawan bank.Sumber yang digunakan1) Bocharov, P.P., Kasimov, Yu.F. Matematika keuangan. Moskow: Gardariki, 20022) Konvensi penghitungan hari,en.wikipedia.org/wiki/Day_count_convention3) Analisis penerapan seni. 625 KUH Perdata Ukraina dalam proses perdata, zib.com.ua/ua/74602-analiz_praktiki_zastosuvannya_st_625_civilnogo_kodeksu_ukrai.html4) Chetyrkin E.M. Matematika finansial. Moskow: Case, 20055) Konvensi Penghitungan Hari dan Faktor Akrual, docs.fincad.com/support/developerfunc/mathref/Daycount.htm6) Surat informasi dari Mahkamah Ekonomi Agung Ukraina No. 01-06 / 928/2012 tanggal 17.07.2012, zakon.rada.gov.ua/laws/show/v_928600-12Dan sekarang kode kecil pada Oracle Database:Ini adalah paket yang saya buat untuk kasus khusus saya - ini menghitung biaya inflasi dan 3% per tahun untuk Ukraina.Tidak ada fungsi agregat di Oracle Database yang mengalikan nilai inflasi. Oleh karena itu, saya menggunakan penjumlahan dari logaritma.Teks tersembunyiCREATE 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;