# GL-001 General Ledger ## 1 Objective Provide the detailed list of accounting entries for selected accounts over a defined period. The report is used for: - accounting control; - account reconciliation; - audit review; - period-end closing analysis. --- ## 2 Users - accounting department; - auditors; - financial controlling; - finance management. --- ## 3 Frequency - daily; - monthly closing; - year-end closing; - ad hoc audit requests. --- ## 4 Parameters Standard parameters: - `date_from` - `date_to` - `account` - `currency` (transaction currency) - `journal` - `entity` (current TradOn company context for the first implementation) Additional filter parameters out of scope for this report: - `counterparty` - `analytic_account` - `profit_center` --- ## 5 Filters - posting date between `date_from` and `date_to`; - account or account range; - transaction currency; - journal; - entity through the current TradOn company context; - document number or voucher number, if available. --- ## 6 Sorting Default sorting should follow the common reporting standards: 1. `account` 2. `transaction_currency` 3. `posting_date` 4. `document_number` Secondary sorting: - `journal` - `journal_entry_number` - `voucher_number` --- ## 7 Grouping Default grouping: - `account` - `transaction_currency` Totals should be displayed by: - account; - transaction currency; - base currency; - report total. Out of scope grouping: - journal; - entity; - counterparty; - analytic account; - profit center. Balance presentation: - initial and ending balances should be displayed as rolling balances on each transaction line by account and transaction currency; - initial and ending balances should be shown in transaction currency and base currency; - transaction-line initial balances should represent the balance immediately before the transaction line; - transaction-line ending balances should represent the balance immediately after the transaction line. --- ## 8 Output Structure Required columns: | Column | Description | | --- | --- | | `entity` | Legal entity or company code | | `account` | General ledger account code | | `account_name` | General ledger account name | | `transaction_currency` | Original transaction currency, defaulting to `base_currency` when no distinct transaction currency is stored | | `base_currency` | Functional or company base currency | | `posting_date` | Accounting posting date | | `document_date` | Source document date | | `journal` | Accounting journal | | `journal_entry_number` | Journal entry sequence or identifier | | `document_number` | Accounting document number | | `document_type` | Accounting document type | | `posting_status` | Posted, non-posted or other ERP posting status, when exposed by the ERP | | `supplier_invoice_number` | Supplier invoice number for AP-related entries, when available | | `counterparty` | Customer, supplier, broker or other party | | `voucher_number` | Voucher or internal accounting reference | | `description` | Entry description | | `reference` | External or source reference | | `payable_qty` | Payable quantity for commodity-related postings only | | `uom` | Unit of measure for payable quantity | | `initial_balance_transaction_currency` | Rolling balance of the account and transaction currency immediately before the transaction line | | `debit_transaction_currency` | Debit amount in transaction currency | | `credit_transaction_currency` | Credit amount in transaction currency | | `ending_balance_transaction_currency` | Rolling balance in transaction currency immediately after the transaction line | | `currency_rate` | FX rate of the transaction | | `initial_balance_base_currency` | Rolling balance in base currency immediately before the transaction line | | `debit_base_currency` | Debit amount in base currency | | `credit_base_currency` | Credit amount in base currency | | `ending_balance_base_currency` | Rolling balance in base currency immediately after the transaction line | | `entered_date` | Entry creation date | | `entered_by` | User who created the entry | | `modified_date` | Last modification date | | `modified_by` | User who last modified the entry | The report should display individual accounts only. Account hierarchy levels are out of scope for this report unless requested later. `document_number` is the mandatory accounting audit reference. For AP-related entries, `supplier_invoice_number` should be displayed when available to identify the supplier invoice. `voucher_number` and `reference` are informational references. Amount sign convention for this report: - debit amounts are displayed as positive amounts; - credit amounts are displayed as positive amounts, following the current Tryton convention; - ending balances are calculated using this debit-positive and credit-positive convention; - `ending_balance_transaction_currency` equals `initial_balance_transaction_currency` plus `debit_transaction_currency` minus `credit_transaction_currency`; - `ending_balance_base_currency` equals `initial_balance_base_currency` plus `debit_base_currency` minus `credit_base_currency`. Initial balance convention: - for the first transaction line in each account and transaction-currency group, the initial balance date is the day before `date_from`; - for balance sheet accounts, the first line initial balance should equal the account balance up to and including the day before `date_from`; - for profit and loss accounts, the first line initial balance should equal the movement balance from the start of the fiscal year up to and including the day before `date_from`; - balance sheet versus profit and loss classification should use the Tryton / TradOn account classification; - for subsequent transaction lines, the initial balance should equal the previous transaction line's ending balance in the same account and transaction-currency group. FX rate presentation for this report: - `currency_rate` should display the stored accounting move line rate used to convert transaction-currency amounts into base-currency amounts; - when the stored accounting rate is expressed as `1 accounting currency = x transaction currency`, `currency_rate` should display that rate; - when the stored accounting rate is expressed as `x accounting currency = 1 transaction currency`, `currency_rate` should display the reverse stored accounting rate; - for same-currency transactions, `currency_rate` should be either `1.000000` or blank according to the confirmed ERP export convention; - the rate date and precision remain to be confirmed during mapping. --- ## 9 Estimated volume High. The report may contain a large number of accounting lines and should support export and filtering before generation. --- ## 10 Export formats - CSV - XLSX Out of scope for the first implementation: - PDF export --- ## 11 Controls / reconciliation rules - Total debit and credit amounts should reconcile by selected period, account and transaction currency. - For each account and transaction currency grouping, first-line initial balance plus cumulative movements should reconcile to the final line ending balance. - The report total in base currency should reconcile with the trial balance for the same entity, period and account selection. - For non-base-currency lines, transaction-currency amounts, `currency_rate` and base-currency amounts should reconcile within the agreed rounding tolerance. - Each line should retain enough audit references to trace back to the accounting document and source document where available. - AP-related entries should be identifiable by both `document_number` and `supplier_invoice_number` when the supplier invoice number is available. - Debit, credit, initial balance and ending balance signs should follow the GL-specific convention defined in this report. --- ## 12 Open questions - Which source should be used for `document_number`, `journal_entry_number`, `voucher_number` and `reference` when several accounting or source-document references are available? - Which source origin models should feed `document_date`, `document_type` and `supplier_invoice_number` in the first implementation? - Should `posting_status` be displayed in the first implementation? This depends on the target ERP capabilities. - Are `payable_qty` and `uom` mandatory for the GL-001 launch, or can they remain optional commodity extensions? - Should the document or voucher number filter search only `document_number` and `voucher_number`, or also `journal_entry_number`, `reference` and `supplier_invoice_number`?