Acumatica Consolidation Reporting
April 15, 2024
•
13 min read
Introduction
Consolidation reporting in Acumatica enables organizations to combine financial data from multiple subsidiaries into unified financial statements. This is essential for multi-entity organizations requiring consolidated reporting.
Consolidation Setup
POST /api/data/GL103000
Content-Type: application/json
{
"ConsolidationGroupID": { "value": "CORP-GROUP" },
"Description": { "value": "Corporate Consolidation Group" },
"ConsolidationMethod": { "value": "Full" },
"IncludeInConsolidation": { "value": true }
}
Data Collection
async function collectEntityData(entities, period) {
const consolidatedData = {
period: period,
entities: []
};
for (const entity of entities) {
const entityData = await getEntityGLData(entity, period);
consolidatedData.entities.push(entityData);
}
return consolidatedData;
}
Eliminations
async function processEliminations(period) {
const intercompanyBalances = await getIntercompanyBalances(period);
const eliminations = [];
for (const ic of intercompanyBalances) {
const elimination = {
Account: { value: getEliminationAccount(ic.type) },
Subaccount: { value: ic.subaccount },
Amount: { value: -ic.balance },
Description: { value: `IC Elim - ${ic.entity}` }
};
eliminations.push(elimination);
}
return eliminations;
}
Consolidated Reports
async function generateConsolidatedReport(period, entities) {
const consolidated = await collectEntityData(entities, period);
const eliminations = await processEliminations(period);
const report = {
BalanceSheet: await generateConsolidatedBalanceSheet(consolidated, eliminations),
IncomeStatement: await generateConsolidatedIncome(consolidated, eliminations),
CashFlow: await generateConsolidatedCashFlow(consolidated)
};
return report;
}
Complete Implementation
class ConsolidationReporter {
constructor(acumaticaConfig) {
this.client = new AcumaticaClient(acumaticaConfig);
}
async runConsolidation(period, groupId) {
const entities = await this.getGroupEntities(groupId);
await this.collectAllEntityData(entities, period);
await this.applyEliminations(period);
return await this.generateReports(period);
}
async generateReports(period) {
return {
consolidatedBalanceSheet: await this.getBalanceSheet(period),
consolidatedIncome: await this.getIncomeStatement(period),
consolidatedCashFlow: await this.getCashFlow(period)
};
}
}
Summary
Consolidation reporting in Acumatica enables accurate financial reporting across multiple entities. By implementing data collection, elimination entries, and consolidated reports, organizations can maintain accurate group financial statements.
For more information, check out our other tutorials on Intercompany Transactions and Revenue Recognition.