Skip to content

Repository files navigation

FP&A Performance & Analytics

A portfolio-ready Streamlit application that turns monthly accounting and planning data into management-focused financial analysis. It includes a fully synthetic demo company and file-import adapters for selected Standard, QuickBooks, and Xero exports. It is a focused portfolio project, not an enterprise EPM replacement.

Open Live Demo

Executive overview

Business Problem

Finance teams need a repeatable way to move from transaction and planning data to clear answers about performance, material variances, emerging trends, and the latest full-year outlook. This project demonstrates that workflow without relying on private company data or external APIs.

Major Capabilities

  • Executive KPIs for revenue, operating expenses, operating profit, margin, growth, and full-year outlook.
  • Actual, Budget, Forecast, and Prior-Year monthly trend analysis.
  • Favorable and unfavorable variance ranking with adjustable materiality thresholds.
  • Department, account, expense-mix, margin, run-rate, and forecast-reliability analysis.
  • Full-year latest estimate using Actual YTD plus remaining Forecast.
  • Interactive revenue, payroll, and other-opex scenario analysis.
  • Rule-based management commentary and downloadable Word management report.
  • Staged uploads that keep demo data active until the user explicitly confirms a custom dataset.

Screenshots

Data Source Workflow

Data source and upload workflow

Performance Trends

Monthly performance trends

Financial Analytics

Financial analytics

Variance Drivers

Variance driver analysis

Outlook and Scenarios

Full-year outlook and scenario analysis

Accounting Logic

  • Internal values use an account-normal convention: ordinary revenue and expenses are positive; refunds, credits, reversals, and contra activity remain negative.
  • Operating Profit = Revenue - Operating Expenses.
  • Operating Margin = Operating Profit / Revenue.
  • Revenue and profit are favorable when Actual exceeds Budget.
  • Expenses are favorable when Actual is below Budget.
  • Full-Year Outlook = Actual YTD + remaining Forecast.
  • Percentage calculations use safe division when the comparison value is zero.

Supported Imports

Source Expected fields Behavior
Standard Excel/CSV Date, Account, Account Category, Actual; optional Department, Budget, Forecast, Prior Year Actual Preserves supplied signs and planning values.
QuickBooks file adapter Date, Account, Account Type, Debit/Credit or Amount; optional Class and Location Translates common debit-positive General Ledger or P&L-detail exports into the internal sign convention.
Xero file adapter Date, Account, Account Type, Debit/Credit, Amount, Net, or Gross; optional Account Code and tracking fields Uses Debit/Credit first, followed by Amount, Net, and Gross; signed non-ledger values are preserved.

These are file-import adapters for selected common exports, not live QuickBooks or Xero integrations. The app removes obvious blank, heading, total, and subtotal rows; excludes recognized non-P&L account types; and blocks activation when material accounts cannot be classified reliably. Optional plan files warn about unmatched account, category, or department dimensions.

Representative CSV and XLSX files are available in sample_uploads/.

Technology

  • Python 3.12
  • Streamlit
  • pandas
  • Plotly
  • SQLite
  • openpyxl
  • pytest

Project Structure

fpa-budget-dashboard/
  app.py
  data/fpa_dashboard.sqlite
  docs/screenshots/
  sample_uploads/
  scripts/build_sample_excels.py
  src/
    calculations.py
    charts.py
    data_import.py
    database.py
    generate_data.py
    insights.py
    reporting.py
  tests/test_calculations.py
  LICENSE
  requirements.txt
  requirements-dev.txt

Run Locally

python -m venv .venv

Windows:

.venv\Scripts\activate

macOS or Linux:

source .venv/bin/activate

Install runtime dependencies, generate the synthetic demo database if required, and start Streamlit:

pip install -r requirements.txt
python -m src.generate_data
streamlit run app.py

Testing

pip install -r requirements-dev.txt
python -m pytest

The test suite covers FP&A calculations, zero denominators, YTD and forecast logic, account classification, source-specific signs, import cleanup, plan mismatches, sample workbooks, report generation, Streamlit startup, and demo-data staging.

Security and Data

  • All repository financial data is synthetic and represents the fictional Northstar Analytics Group.
  • No API credentials or live accounting-system connections are required.
  • Uploaded files are processed in the active Streamlit session and are not added to the repository.
  • Streamlit secrets, environment files, local environments, caches, generated outputs, logs, and archives are excluded by .gitignore.
  • Detailed Streamlit exception output is disabled in .streamlit/config.toml.

Limitations

  • Import support targets the documented transaction-level formats and common aliases, not every customized QuickBooks or Xero report.
  • QuickBooks and Xero samples contain actuals only; Budget and Forecast require separate Standard-format plan files.
  • Scenario analysis is a high-level sensitivity model, not a driver-based enterprise planning engine.
  • There is no authentication, multi-user workflow, approval process, live ERP connection, or cloud database.

License

This project is available under the MIT License.

About

Interactive FP&A dashboard for budget vs actual analysis, forecasting, variance investigation, scenario planning, and management reporting, built with Python and Streamlit.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages