Skip to content
Guides › Use cases: open the docs menu

Financial reporting use case

Month-end reporting involves mechanical work: pulling GL exports, matching formats across entities, calculating year-over-year and month-over-month variances, and formatting the results. This guide is for controllers and FP&A analysts. It shows how to automate that work in Mammoth.

What you will build: A recurring financial reporting pipeline that consolidates multi-entity GL data, computes period-over-period comparisons, and produces ready-to-share P&L and variance reports.

Mock P&L dashboard comparing March and February 2026: revenue, costs, net income, with dollar and percent variances.

The challenge of multi-entity month-end close

A typical monthly close workflow for a multi-entity company:

  1. Finance team pulls GL exports from an ERP (SAP, NetSuite, QuickBooks, and others), one per entity
  2. Each entity uses slightly different account code formats and naming conventions
  3. An analyst spends hours in Excel: vlookups, format fixes, manual variance calculations
  4. The final P&L goes to leadership days after the period closes

In Mammoth, steps 2 to 4 are automated. The only manual step is uploading the GL export, which a connector to your ERP or database can also automate.

Requirements

  • GL export files per entity (CSV or Excel), or a connector to your ERP or database
  • A chart of accounts mapping file (maps account codes to standardized names)
  • Mammoth workspace with at least one project

Step 1: Set up your data structure

Upload GL exports

  1. In your project's Data Library, click + New Dataset and upload a file
  2. Upload your GL export for the current period
  3. Repeat for each entity, naming datasets consistently: GL_EntityA_2026_03, GL_EntityB_2026_03

Tip: Append monthly files
If you do this monthly, use Add or Replace Data with Combine with older data to append new period files to the same dataset. See Batch management.

Upload the chart of accounts

  1. Click + New Dataset and upload your chart of accounts mapping file as a separate dataset
  2. This file should have at minimum: AccountCode, AccountName, Category (Revenue, COGS, OpEx, etc.), SubCategory

Step 2: Standardize account codes

Different ERP systems and entities export account codes in different formats. Normalize them before joining.

  1. Open your GL dataset in the Data Editor
  2. If account codes have inconsistent padding (e.g., "1000" vs "01000"), type in the Describe your transformation bar (the AI Prompt bar)
  3. Type: "Standardize AccountCode to 6-digit zero-padded format"
  4. Review the suggested task and apply
  5. Repeat for each entity dataset

Handle entity-specific naming:

  1. Add a Bulk Replace task on the AccountName column
  2. Map entity-specific names to the canonical names from your chart of accounts

Step 3: Consolidate entities

Join all entity GL files into a single consolidated dataset.

  1. In each entity dataset, add a Conditional Filter to scope to the current period
  2. Add an Entity column to each (Add column, then Label & Insert Values with the entity name). This preserves which rows belong to which entity after consolidation
  3. Create the consolidated dataset from Entity A, then for each other entity open Add or Replace Data on it, choose Select existing, pick the entity's dataset, and use Combine with older data

Step 4: Join chart of accounts

  1. Add a Lookup task
  2. Join on AccountCode (your GL dataset) → AccountCode (chart of accounts)
  3. Pull in: AccountName, Category, SubCategory, ReportingOrder

This gives every GL row a standardized category label, which you need for grouping in the P&L.


Step 5: Calculate period-over-period comparisons

To show current versus prior period variance, you need both periods in the same dataset.

Option A: Aggregated comparison (two Views joined)

  1. Add a Group & Pivot task: group by AccountCode, Category, SubCategory; sum Amount for current period
  2. Add a second aggregation task scoped to prior period using Conditional Filter + Group & Pivot
  3. Join the two aggregation outputs on AccountCode using Lookup
  4. Add a Math Function task to calculate:
    • Variance_Abs = "CurrentAmount" - "PriorAmount"
    • Variance_Pct = ("CurrentAmount" - "PriorAmount") / ABS("PriorAmount") * 100

Option B: Use Window function for rolling comparisons

For rolling 12-month or YTD comparisons:

  1. Use Window function with the Lag function to pull prior-period values within the same dataset
  2. Set Group by to AccountCode and Add Sort on PeriodDate

Step 6: Build the P&L view

  1. Add a Group & Pivot task: group by Category and SubCategory, enable pivot to reshape from long format (one row per period) to wide format (columns = months)
  2. In the Group & Pivot configuration, set the column to pivot on as PeriodDate and order the output columns chronologically

The resulting View is your automated P&L—ready for a dashboard or export.


Step 7: Build and share the dashboard

  1. Click + Create Dashboard from your P&L View
  2. Prompt: "Show a P&L table with current month, prior month, variance $, and variance %, and highlight negative variances in red"
  3. Add filters: entity, department, date range
  4. Click Publish & Share → set Access Type to Authenticated for internal finance team, or Public if you need to share with external auditors who do not have Mammoth accounts

Export options:

  • Download as Excel or CSV for auditors or leadership who prefer spreadsheets
  • Live Link: an auto-updating URL that reflects the latest data every time the pipeline runs
  • Export → a database or file destination: push to BigQuery, PostgreSQL, SQL Server, Redshift, or SFTP for use in Tableau or Power BI (see Send to destinations)

Step 8: Automate monthly close

  1. Open Automations in the project sidebar → New Automation → Dataset Refresh (if the GL comes from a connector)
  2. Or set up a Messaging automation to email the P&L View as a CSV attachment to your CFO and controller on a fixed day each month
  3. Configure: repeat every 1 Month on the 3rd at 7:00 AM (schedules run on a fixed day of the month, not on business days)
  4. Attach: the P&L View

Results to expect

Once the pipeline is in place:

  • Close prep is the review of the output, not the manual cleanup
  • The consolidated, multi-entity view updates as soon as new GL data is loaded
  • Leadership can open the published dashboard themselves instead of waiting on one analyst
  • The transformation tasks are recorded in the pipeline, so the same logic runs every period

Variations for budget, EBITDA and currency

Budget versus actuals
Upload your budget file as a separate dataset and join it to actuals on AccountCode + Period. Add Budget, Actual, and Variance columns.

EBITDA calculation
After consolidation, add a Math function task:
EBITDA = Net Income + Interest + Taxes + Depreciation + Amortization
Map your chart of accounts SubCategory values to the EBITDA components.

Multi-currency
Add a currency conversion lookup table and a Math function task to normalize all amounts to your reporting currency before aggregation.

Report an issue · support@mammoth.io