Skip to content

krnCode/FinReconciler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FinReconciler

A portfolio project demonstrating financial reconciliation and variance analysis using SQL, dbt, and Python.

Python DuckDB dbt Streamlit Status


📋 Overview

FinReconciler is a work-in-progress financial reconciliation pipeline that reconciles Accounts Payable (AP) invoices against General Ledger (GL) postings, identifies variance, and surfaces unmatched items for investigation.

Goal: Showcase SQL proficiency, scalable data architecture, and test automation for a portfolio.

Data: Uses realistic mock data generated with Polars that simulates real-world financial scenarios, including intentional mismatches and variance patterns to test reconciliation logic.


✅ What's Done

  • Project folder structure
  • Dependencies configured (DuckDB, Polars, Streamlit, Altair)
  • Project documentation (CLAUDE.md, TASKS.md, skills.md)
  • dbt setup
  • Test data generation
  • SQL models (staging → intermediate → marts)
  • dbt tests
  • Streamlit dashboard

🚀 Next Steps

  1. dbt Setup — Add dbt to dependencies, configure profiles.yml
  2. Data Generation — Create 100K realistic records (AP, AR, GL) with intentional mismatches
  3. SQL Models — Build staging, intermediate, and mart models
  4. Tests — Add dbt tests for data quality
  5. Streamlit Dashboard — Visualize reconciliation findings

🛠️ Tech Stack

Component Tech Purpose
Database DuckDB Columnar OLAP for fast aggregations
Data Generation Polars Create realistic test data
Transformation dbt + SQL Data pipeline (staging → marts)
Frontend Streamlit Interactive dashboard
Visualization Altair Charts and graphs

📦 Setup (Local Development)

Prerequisites

  • Python 3.13+
  • uv (dependency manager)

Installation

# Clone and navigate
git clone <repo>
cd finreconciler

# Install dependencies
uv sync

Project Structure

finreconciler/
├── finreconciler_dbt/      → dbt project (models, tests, macros)
├── scripts/                → Python scripts (data generation, init)
├── streamlit_app/          → Streamlit dashboard
├── data/                   → Raw data and seeds
└── docs/                   → Documentation

📚 Documentation


📝 Notes

This is a learning project for portfolio purposes. It will be updated regularly as features are added.

Releases

No releases published

Packages

 
 
 

Contributors

Languages