> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dualentry.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Flux Analysis

> Compare financial periods side by side, flag material variances against configurable thresholds, and annotate explanations for your monthly close.

## Overview

Flux Analysis is DualEntry's built-in variance reporting tool. It lets accounting and finance teams compare two financial periods side by side, flag lines that exceed a defined threshold, write or generate explanations, and export a fully annotated report, all without leaving the platform.

The feature is designed to replace the spreadsheet-driven variance analysis that most close teams do manually each month. By centralizing the numbers, explanations, and activity log in one place, Flux Analysis makes the monthly close transparent, auditable, and repeatable.

**Who uses it:**

* **Accountants** document explanations for unexpected balances or variances directly on the financial statement so their Controller and CFO understand the who, what, where, why, and how behind the numbers.
* **Controllers** review the team's analysis, add conclusions, and confirm all material variances are explained before financials are finalized.
* **CFOs** quickly read summarized explanations tied to report lines to assess results and ask informed questions.

**Where to find it:** Navigate to **Reports Center** in the left sidebar, then select **Flux Analysis**. You will see two reports listed: **Flux Income Statement** and **Flux Balance Sheet**.

***

## Available reports

### Flux income statement

Compares income statement activity across two periods. All revenue, COGS, and expense accounts are shown with variance columns.

**Filters you can apply:**

| Filter          | Description                                                 |
| --------------- | ----------------------------------------------------------- |
| Date Range      | Start and end date for the current (actual) period          |
| Company         | Single or multi-select; supports multi-entity organizations |
| Classifications | Filter by classification tags                               |
| Account         | Specific GL account                                         |
| Account Type    | Revenue, expense, COGS, etc.                                |
| Customer        | Filter by customer                                          |
| Vendor          | Filter by vendor                                            |
| Item            | Filter by item                                              |
| Currency        | Display amounts in the currency of the selected company     |

**Comparison column options** (you can add multiple, including the same type more than once for different date ranges):

| Comparison Type             | Logic                                                                                                                                                 |
| --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| Prior Period (MoM)          | Current date range vs the immediately preceding period of equal length. Example: Feb 2025 vs Jan 2025. For partial months, matches by number of days. |
| Same Period Last Year (YoY) | Current date range vs the same calendar range one year prior. Adjusts for leap years automatically.                                                   |
| Prior Quarter (QoQ)         | Current quarter vs the prior quarter.                                                                                                                 |
| YTD vs Prior YTD            | Year-to-date current period vs year-to-date prior year.                                                                                               |
| Rolling 12 (R12)            | Trailing 12 months current vs trailing 12 months prior.                                                                                               |

Each comparison column adds three data columns to the report: the prior period amount, the variance in dollars (\$), and the variance as a percentage (%).

**Dynamic Date Option:** Instead of a fixed date range, you can set a relative date like "Prior Month." The report automatically recalculates based on today's date every time it is opened. For example, if today is March 13, selecting Prior Month shows February 1 to February 28.

### Flux balance sheet

Compares balance sheet account balances across two periods.

**Supported comparisons:**

* Current date vs same date prior period
* Current date vs same date last year

***

## How variance is calculated

**Variance (\$):** Current Period Amount minus Prior Period Amount.

**Variance (%):** Current Period divided by Prior Period, minus 1. This is equivalent to Variance (\$) divided by Prior Period Amount.

**Important note on color coding:** The variance percentage formula is the same for all account types: income, COGS, and expenses. Because a negative variance does not automatically mean "bad" (for example, expenses going down is favorable), the report does not apply red or pink shading based on sign. Lines are flagged based on your configured threshold, not the direction of the variance.

***

## Variance threshold

The threshold setting controls which lines are flagged as requiring an explanation.

**To configure it:** Click **Manage Threshold** in the report header.

You can set a threshold by:

* **Percentage (%):** Any line where the absolute variance percentage exceeds this value is flagged. Example: set to 5% to flag anything that moved more than 5% period over period.
* **Dollar Amount (\$):** Any line where the absolute variance in dollars exceeds this value is flagged.
* **Both:** Both conditions must be met for a line to be flagged (AND logic). This prevents small-dollar, high-percentage noise from being flagged.

**Threshold indicator:** The header shows a badge like "11 of 33 rows reviewed, 22 pending." Hover over it to see the full count. Each time you add or edit an explanation, the count updates in real time.

**Lines below threshold:** These rows do not show the "Add explanation" prompt by default, but you can still click into any row to add a voluntary explanation. The row is simply not flagged as required.

***

## Writing and managing explanations

### Opening the explanation drawer

Click any row in the report to open the side drawer. The drawer shows:

* Account name and the report's current/prior period dates
* Current period balance, prior period balance, variance (\$), and variance (%)
* A trend chart showing the account's historical balances with the variance as a bar visual
* An explanation text area
* Activity log showing all changes made to that explanation (who made the change and when)

### AI generate

Click **AI Generate** to auto-populate an explanation based on statistical analysis of the account's historical data and the variance. The suggestion is generated in under 3 seconds. You can accept it as-is, edit it, or discard it. AI Generate is available line by line, not as a bulk operation.

Example of an AI-generated explanation:

> SBC expense increased by \$12,400 or 18% MoM as a result of additional new hires in R\&D, with headcount growing from 14 to 17 MoM, consistent with recent growth trends across the R\&D organization.

The current implementation uses statistical pattern-matching against account history.

### Manual explanations

Type directly in the explanation text area. There is no character limit. When you save, the activity log records your name and timestamp.

### Activity log

Every explanation action is tracked in the Activity tab of the drawer. This includes:

* Initial explanation added
* Explanation edited (shows what changed)
* Explanation cleared
* Explanation accepted from AI Generate

The activity log is permanent and cannot be deleted. This provides an audit trail for the close process.

***

## Searching and sorting

**Search:** The search bar in the report header filters rows by account name or account number. For example, typing "5001100" returns the row for that GL account.

**Sort:** Click any column header to sort ascending or descending. You can sort by current period amount, prior period amount, variance (\$), or variance (%).

**Filter by threshold status:** Filtering the row list to show only lines that require an explanation is not yet supported.

***

## Column options and display settings

**Show Total Column:** The Total column is hidden by default. To show it, open display settings in the report toolbar and toggle "Show Total Column" on. The Total column is hidden by default because, unlike a standard income statement, flux reports are comparison-focused and the total adds visual noise for most workflows.

**Multiple comparison columns:** You can add more than one comparison column to a single report. Example: add "Same Period Last Year" for July 2025 and also add "Same Period Last Year" for January to July 2025 YTD, creating a side-by-side MoM vs YTD view in one report.

**Column ordering for comparison type selector:** Comparison types appear in this order: Year over Year, Quarter over Quarter, Month over Month, Week over Week, Day over Day.

***

## Exporting

### Export to Excel

Click **Export** in the toolbar and choose:

* **With explanations:** Exports the full report including the explanation text for each row that has one. Explanation text appears in a dedicated column. Row wrapping is off by default; recipients can enable wrap in Excel if needed.
* **Without explanations:** Exports the report data only (current period, prior period, variance \$, variance %). Useful when sharing a clean variance view with stakeholders who do not need the annotations.

**Currency formatting in exports:** The variance column header reflects the currency of the report (for example, "Variance (EUR)" when the selected company reports in euros, not "Variance (\$)").

### Export to PDF

PDF export is supported. Explanation text wraps automatically within the PDF layout.

***

## Saving and report packages

### Save as custom report

After setting your filters, comparison types, and threshold, click **Save** to save the report as a named custom report. Saved reports retain all your parameter selections.

### Include in report packages

Flux Analysis reports can be added to Report Packages alongside standard reports (Income Statement, Balance Sheet, General Ledger). When a package runs, the custom report uses the parameter selections saved at the time the report was created. Dates, companies, and comparison types do not change when the package is run unless you edit and re-save the report first.

***

## Multi-entity support

When multiple companies are selected:

* Amounts are shown in the reporting currency of each company, or in a consolidated view if your organization uses a functional currency consolidation.
* The currency symbol in column headers updates to match the selected company or entity group.

***

## Workflow: Step-by-step

This is the intended monthly close workflow for Flux Analysis.

**Step 1: Configure threshold.** Open Flux Income Statement or Flux Balance Sheet. Click Manage Threshold. Set your percentage and/or dollar threshold. These settings persist for the next time you open the report.

**Step 2: Select your date range and comparison type.** Choose the period you are closing (for example, April 1 to April 30). Add a comparison column (for example, Prior Period to compare April vs March). Click Run.

**Step 3: Review flagged lines.** Rows that exceed the threshold are flagged with a red indicator. The header badge shows how many are pending. Work through the list from top to bottom.

**Step 4: Write or generate explanations.** Click each flagged row to open the drawer. Click AI Generate for a starting point, then edit as needed, or type your own explanation from scratch. Save each one.

**Step 5: Refresh GL data if needed.** If journal entries are posted after you start your review, use the Refresh button to pull the latest balances. Any row whose balance changed after you wrote an explanation will be re-flagged for review so you can confirm the explanation still holds.

**Step 6: Export.** When all required explanations are complete, export to Excel or PDF with explanations included. Attach to your close package or distribute to stakeholders.

***

## Edge cases and common questions

**What if I select a partial month?** The comparison period is calculated by matching the number of days. For example, February 15 to March 15 compares against January 15 to February 14. The system does not assume full months unless you select full calendar months.

**What if the prior period balance is zero?** Variance (%) cannot be calculated when the prior period is zero (division by zero). The percentage column will show a dash or N/A in this case.

**What if the variance is negative for an income account?** A negative variance on revenue means current period revenue is lower than prior period. The report flags this if it exceeds the threshold, but does not color-code it as "bad" since the formula is consistent across all account types.

**What if I need to compare a month vs its year-to-date?** Add two comparison columns: one for the prior period month, and one using the YTD range. Both columns appear side by side in the same report.

**Can I add explanations to rows that are not flagged?** Yes. Click any row to open the drawer and add an explanation regardless of whether it is flagged as required.

**Does Flux Analysis affect the general ledger?** No. Flux Analysis is a reporting and annotation layer. It has no GL impact. No journal entries are created, modified, or deleted.

**Can I pivot the report by company?** Pivoting columns (for example, showing each company as a separate column) is not currently supported on Flux reports. Standard report pivoting is available on the Comparative Income Statement. Use company filters to scope the Flux report to one entity at a time, or use multi-entity selection to see consolidated figures.

**Are explanations saved per report or per account?** Explanations are saved using a unique key that combines the report type, account, and date period. This means an explanation for "Rent Expense" in the March vs February comparison is separate from the explanation for "Rent Expense" in the Q1 vs Q1 prior year comparison.

**Are explanations carried forward to the next month?** Manual carryover of prior-period explanations is not yet supported. Each new period starts with a blank explanation for every account.

**Who can see and edit explanations?** Access to Flux Analysis reports follows your organization's standard report permissions. User-level permissioning on individual explanation rows is not yet available.

***

## Copilot integration

The DualEntry Copilot can answer Flux Analysis questions at the account level. For example: "Tell me about travel expenses between this quarter and last quarter." The Copilot explains what drove the change using GL transaction data. This works for both income statement accounts and balance sheet accounts.

To use it, open the Copilot panel and ask a natural language question about a specific account and time period. The Copilot response includes the variance amount, the percentage change, and a narrative explanation based on the underlying transactions.

**Current limitation:** The Copilot flux skill defaults to the current period. Specifying a custom date range ("last month vs the month before") is not yet supported. Use the Flux Analysis reports directly for custom period comparisons.

***

## Frequently asked questions for AI

The following context is provided to help AI assistants answer questions accurately about this feature.

**Q: Where is Flux Analysis in the app?**
A: Reports Center, left sidebar, under the Flux Analysis section. Two sub-reports are listed: Flux Income Statement and Flux Balance Sheet.

**Q: What comparison periods are supported?**
A: Prior Period (MoM), Same Period Last Year (YoY), Prior Quarter (QoQ), YTD vs Prior YTD, and Rolling 12 (R12). Multiple comparison columns can be added to one report.

**Q: How does the variance percentage formula work?**
A: Variance (%) = (Current Period / Prior Period) - 1. This is the same formula for income, COGS, and expense accounts. Negative does not mean unfavorable because DualEntry treats variance direction neutrally.

**Q: What does the threshold setting do?**
A: It determines which rows are flagged as requiring an explanation. Can be set by percentage, dollar amount, or both. Rows below threshold can still receive explanations voluntarily.

**Q: Can I export with explanations?**
A: Yes. Export to Excel or PDF. Choose "with explanations" to include the annotation column. Choose "without explanations" for a clean variance-only export.

**Q: Does Flux Analysis create journal entries?**
A: No. It is a reporting and annotation tool only. No GL impact.

**Q: How is the explanation key unique?**
A: Each explanation is stored against a unique hash of report type + account + date range. Explanations for the same account in different comparison periods are stored separately.

**Q: What is the AI Generate button?**
A: It generates a draft explanation using statistical analysis of the account's historical data. The explanation is generated in under 3 seconds. You can edit or discard it.

**Q: Can Flux reports be added to report packages?**
A: Yes. Save the Flux report as a custom report, then add it to a report package. When the package runs, it uses the saved parameters.

**Q: Is year-over-year comparison supported?**
A: Yes. YoY, YTD vs PYTD, PYTD, and R12 are all available as comparison types on both the Flux Income Statement and Flux Balance Sheet.

***

## Related pages

* [How to Generate Flux Reports](./flux-reporting) - step-by-step workflow for configuring and running flux reports
* [Standard Financial Statements](./standard-financial-statements) - the income statement and balance sheet reports that flux analysis compares
* [Exporting and Report Groups](./exporting-and-report-groups) - bundling reports into packages and export options
