Obliczenia opłaty za wymianę walut (agio)
W RamBase dostępne są dwa, opisane poniżej, procesy obliczania opłaty za wymianę walut. Pierwszy proces odbywa się podczas zamykania okresu przez użytkownika. Drugi jest wykonywany automatycznie przez RamBase podczas rejestracji płatności nabywców i dostawców.
[en] The behaviour of splitting agio into unrealised and realised is controlled by a system-level setting. Once activated, all foreign currency transactions follow this model, ensuring consistent accounting treatment of gains and losses.
[en] The company setting is called First accounting period for unrealized currency payments in reversal and import model.

[en] RamBase has two processes for calculation of agio, both are described below. The first process is done during period closure by the user. The second one is done automatically by RamBase when registering customer and supplier payments.
[en] Unrealized agio calculation from the Period Account Register (PAR)
[en] The calculation of the unrealized agio is performed in the Period Account Register (PAR). One of the procedures during period closure is to import the unrealized gain and losses to the general ledger.
[en] When closing an accounting period, the closing period's opening balance must be reversed, and the current period's balance must be imported. The import job will automatically split the unrealized gains and losses.
[en] General ledger account setup - unrealized
[en] General ledger accounts set up in Account Defaults (ACD) for Unrealized gains and Unrealized losses are used when agio is created during period closure in PAR.
[en] ACD/UNREALIZEDGAINS and ACD/UNREALISEDLOSSES

[en] Reverse the last period’s inventory balances and import the current inventory balances
[en] To open the Period Account Register (PAR) application, find Finance in the RamBase menu and then General ledger. Click Accounting periods to enter the PAR application.
[en] Highlight the relevant period and press ENTER.
[en] Select the Agio folder.

[en] Right click and choose menu option Create reverse and import agio.
[en] If everything is correct, the lines will now be marked with Status 4 with reference to a general ledger entry. Agio status in the upper right corner will be Status 4.
[en] Agio calculation in PAR will create 3 sets of documents:
[en] CUSBAL - Agio on Account Receivable (AR).
[en] SUPBAL - Agio on Account Payables (AP).
[en] ACCBAL - Agio on all other GL accounts (Not AR & AP).
[en] General ledger postings (ATR) documents for CUSBAL and SUPBAL will be calculated based on customer and supplier balances in foreign currencies. Each ATR item will have a reference to a Customer / Supplier Account and currency. The amount will be calculated based on:
[en] For all transactions (CAT & SAT) that are open by the end of current period but registered in an earlier or in the current period: Agio will be calculated using the transaction rate and the current period-end rate.
[en] ATR document with transaction type ACCBAL will handle all other GL accounts (Not AR & AP) and agio will be calculated this way:
[en] For all transactions (ATR items) that are registered in earlier or current period: Agio will be calculated using the transaction rate and the current period-end rate.

Przykład
Twoją walutą w systemie jest USD.
Masz CIN na 100 EUR.
W dniu zarejestrowania CIN (St:4) kurs wynosił 1,1. Oznacza to, że wartość tej CIN w walucie systemu wynosi (100 * 1,1) = 110 USD.
Rejestracja CIN generuje otwarte księgowanie w księdze należności na 110 USD.
W ostatnim dniu miesiąca kurs wynosił 1,2 (kurs okresu).
Na koniec miesiąca otwarte księgowanie zostało obliczone z uwzględnieniem agio na podstawie kursu okresu i kursu walutowego z dnia rejestracji. (100*1,2) - (100*1,1) = 10. Oznacza to zysk z tytułu opłaty za wymianę walut w wysokości 10 USD.
Jeśli CIN nie zostanie opłacona do końca następnego miesiąca, otwarte księgowanie zostanie obliczone z uwzględnieniem agio z poprzedniego kursu okresu względem nowego kursu okresu.
Nowy kurs okresu wynosi 1,4.
(100*1,4) - (100*1,2) = 20 Oznacza to zysk z tytułu opłaty za wymianę walut w wysokości 20 USD.
[en] When payment occurs, any unrealised agio is moved to realised agio. For example, if the invoice is paid at a rate of 1,5 EUR/USD, the difference between the payment rate and transaction rate is posted as realized agio on the payment.
Właściwy raport: FRP > ACCBAL > Salda konta KG z obliczeń AGIO.
[en] Realized agio calculation on Payment (PAY)
[en] For all invoices or credit notes linked to a payment, realized agio will be calculated using the transaction rate and the payment rate. This applies to all invoices or credit notes regardless of whether they are registered in an earlier period or in the same period as the payment. The realized agio is presented in the field Currency Adjustment on the payment.
[en] General ledger account setup - realized
[en] GL accounts set up in Account Defaults (ACD) for Realized gains and Realized losses are used when agio is created during registration of PAY.
[en] ACD/REALIZEDGAINS and ACD/REALISEDLOSSES - Currency deviations on payments.

[en] Currency deviations in payments
[en] GL account for Currency Deviations on Payments.
[en] Scenario Example:
[en] Payment Currency: NOK (Norwegian Krone)
[en] Invoice Currency: EUR (Euro)
[en] In this example:
[en] The sales invoice is for 1,250 EUR, registered on 2025.09.18 with an exchange rate (RATE) of 11.626.
[en] The payment has a CURDATE of 2025.10.18, with a RATE of 11.7293.

[en] Calculation of Currency Adjustment
[en] The Currency adjustment field reflects the currency deviation, calculated as follows:
[en] Determine the Payment Value in Local Currency (NOK): 1,250 EUR * 11.7293 (CURDATE RATE) = 14 661,63 NOK
[en] Determine the Invoice Value in Local Currency (NOK) Based on RATE from invoice: 1,250 EUR * 11.626 (2025.09.18 RATE) = 14 532,50 NOK
[en] Calculate the Currency Adjustment: 14 661,63 NOK – 14 532,50 NOK = 129,13 NOK
[en] The resulting currency adjustment of 129,13 NOK reflects the gain (or loss) due to exchange rate fluctuations between the invoice registration and payment dates.
[en] When payments are processed, unrealized agio from previous periods is automatically transitioned to realised agio and posted to the appropriate gain or loss account.
[en] Inspecting the Currency Adjustment Field
[en] The Currency Adjustment field includes an Inspect feature:
[en] Clicking this allows you to view a detailed report of the currency loss or gain for the selected invoice and any credit notes linked to the payment.
[en] This report helps trace and verify how the deviation was calculated.

[en] Explanation to the «Deviation amount»
[en] Differences due to different exchange rate in bank and RamBase. This is the difference between the value of the invoice based on RATE of the Currency date of the payment and what is received in bank. This deviation in «Deviation amount» could also contain of for example bank fees.
[en] Example Calculation:
[en] Invoice amount: 1 250 EUR
[en] Exchange rate on Currency date: 11.7293
[en] Invoice value in base currency: 1250 ×11.7293 = 14 661.63
[en] Amount received in the bank: 14 531
[en] Difference (Deviation Amount): 14 661.63−14 531=−130,63

[en] The user can decide how to post this deviation to the General Ledger (GL). This process is performed manually.
[en] To simplify reconciliation between system-calculated and bank-applied exchange rates, the user will also have the option to allocate these differences more directly.
[en] This option allows users to post remaining exchange rate differences to the realized exchange gain/loss account.
[en] The functionality mirrors the layout of the GL Account transactions pop-up, but only allows editing of the amount field (and, if needed, dimensions).
[en] The general ledger account is automatically selected based on the company’s exchange gain/loss configuration.

[en] ACD/EXCHANGE - Currency exchange

[en] GL account used when:
[en] When payment and invoices/credit notes have different currencies, additional posting is made to balance out the GL postings.
[en] When a payment has many invoices and credits with different exchange rates, GL postings may not balance because of round offs on calculated average exchange rates. Additional posting for exchange rate difference is then made, if this difference is less than given in CompanySetting "MaxPaymentCurrencyDeviationOnLedgerSpecification".
[en] Postings to the GL account in ACD/EXCHANGE:
[en] When the amounts in USD and EUR are exchanged to NOK, two EUR postings are created because of the currency posting.
[en] Typically, only minor round-offs are posted to this account due to rounding of exchange rates and two-decimal resolutions in GL.


[en] The effect on ACC/8060 for this payment will be:

[en] ACD/VATRATEADJ - Vat rate adjustment on Invoices and Credit Notes
[en] This GL account is used when VAT adjustments are needed due to differences between the VAT rate and the exchange rate on invoices or credit notes.
[en] Example Scenario:
[en] An inbound invoice (SIN) has a VAT rate (VATRATE) that differs from the exchange rate (RATE):
[en] RATE: 11.4258
[en] VATRATE: 11.2535
[en] VAT amount: 250 EUR
[en] Calculation:
[en] Convert VAT amount using RATE: 250 EUR×11.4258=2 856.45 NOK
[en] Convert VAT amount using VATRATE: 250 EUR×11.2535=2 813.375 NOK
[en] Difference: 2,856.45−2,813.375=43.08
[en] Accounting Impact:
[en] This difference of 43.08 NOK is posted to ACD/VATRATEADJ.


[en] The accounting will look like this:
