commit 2c44f9f8e6cfcefe488cd1eacf35fa4cda6eb18d Author: pogky_thunder Date: Sun Jul 12 15:08:13 2026 +0300 Add README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..3c455b8 --- /dev/null +++ b/README.md @@ -0,0 +1,88 @@ +# Revenue Analytics + +Desktop application for reconciling contract revenue against the general ledger, analysing month-over-month (MRR) movements, and tracking Professional Services backlog using Sage Intacct exports. + +The application reduces manual reconciliation work by importing Sage Intacct reports into a local SQLite database and providing interactive views for investigating revenue movements, categorising revenue changes, and analysing backlog. + +Designed for Revenue Operations, Billing, Revenue Accounting, and Finance teams using Sage Intacct. + +--- + +## Features + +- Import Contracts and General Ledger CSV exports from Sage Intacct. +- Build a local SQLite database—no server required. +- Reconcile contract revenue against general ledger activity. +- Automatically categorise recurring revenue movements. +- Assign uncategorised transactions to contracts. +- Persist user-defined contract mappings and movement categories for future imports. +- Drill down from summary figures to the underlying transactions. +- Analyse Professional Services backlog by comparing contract values with billed revenue. + +--- + +## Screenshots + +### Contracts View + +Displays contract revenue in a pivot table grouped by customer, contract, and revenue source (Projects, Monthly Revenue, Resell). + +image +--- + +### Ledger View + +Displays all General Ledger transactions, including manual journal entries and Order Entry invoices that are not linked to contracts. + +image +--- + +### MRR Summary + +Summarises Month-over-Month recurring revenue movements by category. + +Users can immediately identify: + +- New Business +- Expansion +- Contraction +- Churn +- Pricing changes +- Other revenue movements + + image + +### Automatic Transaction Categorisation + +Revenue movements are categorised automatically based on imported data. When automatic categorisation is not possible, users can assign categories manually. These mappings are stored locally and reused during future imports, reducing manual effort over time. + +image + +Result: +image + +### Revenue Movement Drill-down + +Double-clicking a Month-over-Month movement displays the customers and contracts responsible for that change. + + image + +Double-clicking a customer difference in the MRR Summary view displays the individual ledger entries contributing to that movement. + + image + + +### Professional Services Backlog + +Calculates remaining project backlog by subtracting billed revenue from the total contract value. + +Provides an up-to-date view of remaining Professional Services revenue still to be recognised. + + image + + +### Technology +- Python +- PySide6 (Qt) +- pandas +- SQLite