Σ
λ
[]

Power Theft Detection

Flask dashboard for heuristic electricity-risk scoring and investigation prioritization. It defaults to simulated data and can sample the first 1,000 rows of the documented 2015 dataset.

PythonFlaskHeuristic ScoringPandaspytestDockerGunicornRender
SYSTEM METRICS & ABSTRACTION LAYERS
Backend Layer
Flask Audit API
Telemetry Pipe
Pandas Dataframes
ML Classifier
Heuristic Scoring
Deployment
Docker Containerized
CI/CD Pipeline
GitHub Actions
01 / Challenge

The smart grid monitoring gap

Smart-meter monitoring systems often use statistical, heuristic, or machine-learning approaches to prioritize suspicious consumption patterns for analyst review.

Power Theft Detection focuses on transparent heuristic ranking workflow, data-quality reporting, and Flask monitoring dashboard.

02 / Goals

Project Objectives

01

Develop an explainable Flask-based risk analysis platform

02

Provide interpretable feature-level risk explanations

03

Provide data-quality reporting for incomplete and imbalanced datasets

04

Implement smart grid domain knowledge — consumption patterns and theft signatures

05

Design Flask dashboard for operational monitoring use cases

06

Validate behavior with automated tests for loading, API endpoints, and categories

03 / Architecture

System Design

CSV Dataset
Reads smart-meter csv records or falls back to synthetic logs
Cleaning
Flags records with missing values or invalid formats
Feature Extraction
Computes historical customer averages for comparison
Heuristic Engine
Calculates standard deviations & actual-to-expected ratio
Risk Score
Computes multi-factor risk scoring and clamps values
Priority
Sorts records into High, Medium, or Low risk groups
Dashboard
Exposes risk ranking and daily graphs inside a Flask template

Data Pipeline

  • Simulated mode by default
  • First 1,000 real-data rows
  • 2015 daily readings
  • Missing-value handling

Risk Engine

  • Actual-to-expected ratio
  • Transparent thresholds
  • Risk-score clamp
  • Priority categories

Validation

  • 30 automated tests
  • API route coverage
  • Real-data sampling
  • Docker build validation

Dashboard

  • Heuristic risk scoring
  • Customer prioritization
  • Consumption summaries
  • Analyst review workflow
04 / Pipeline

Data Flow Steps

01

Data Loading

Reads smart-meter csv records or falls back to synthetic consumption logs

02

Quality Scanning

Flags records with missing values or invalid consumption formats

03

Baseline Calculation

Computes historical customer averages for comparison

04

Heuristic Scoring

Calculates standard deviations, actual-to-expected consumption, and clamps priority

05

Category Assignment

Sorts records into High, Medium, or Low risk groups

06

Analyst Dashboard

Exposes risk ranking and daily graphs inside a Flask template

05 / Simulator

Risk Score Simulator

Risk Score Simulator

Run heuristic scoring pipeline on target consumption profiles

Customer Consumption620 kWh
Historical Average320 kWh

Configured Thresholds

• Expected Range: 288 kWh – 358 kWh

• Anomaly Threshold: > 480 kWh (1.5x expected)

Click "Run Risk Analysis" to start simulation.
06 / Benchmarks

2015 Customer Dataset

The repository documents 9,957 customer rows and 365 daily columns; runtime real-data mode samples the first 1,000 rows.

0
Customer Records
0
Daily Consumption Features
0
Sampled Runtime Records
0
Dataset Year

Heuristic thresholds manually tuned - not learned from data.

07 / Evaluation

Error Analysis

01

False Positive Risk: High consumption variance during seasonal shifts or holidays can trigger false anomalies; mitigated by baseline adjustments.

02

Threshold Sensitivity: Fixed standard deviation filters (e.g., >2.0 std) can miss low-profile, gradual thefts; offset by rolling baseline monitoring.

03

Dataset Completeness: Missing daily readings (up to 1.6% in 2015 CSV) require linear interpolation to prevent baseline skew.

04

Feature Importance: Comparing actual vs expected consumption ratios yields the highest weight in final anomaly priority scoring.

08 / Rationale

Key Decisions

Transparent scoring over complex black-box model

Heuristics are easier to trace and explain to operations teams, making decision boundaries highly transparent

Data-quality warnings

Exposing gaps in the underlying dataset ensures analysts understand data completeness limits before drawing conclusions

Docker configuration

A standardized Docker environment handles pandas/scipy installation consistently and guarantees runtime execution

Lightweight Flask service architecture

Flask enables lightweight, decoupled microservices suited for processing analytics workloads without the overhead of heavy enterprise frameworks

Explainable heuristic formulas

Heuristics provide explainable, deterministic thresholds crucial for regulatory compliance and audit trails, avoiding black-box decision making in energy theft accusations

Simulated runtime sandbox

Simulated mode enables developers to run, test, and validate the pipeline in sandbox environments without exposing sensitive client smart-meter profiles

09 / Screenshots

Visual Showcase

Login
fig.01 — Secure analyst authentication portalLOGIN
Dashboard Home
fig.02 — Analytics dashboard overview with risk metricsDASHBOARD
Detection Results
fig.03 — Heuristics-based consumption anomalies ranking tableDETECTIONS
Consumption Visualizer
fig.04 — Interactive consumption graphs and patternsCHARTS
Theft Trends
fig.05 — Aggregated historical theft signatures and trendsTRENDS
System Alerts
fig.06 — Real-time operational grid alerts panelALERTS
Feature Exploration
fig.07 — Customer feature selection and parameter analysisFEATURES
Threshold Calibration
fig.08 — Configurable standard deviation scoring thresholdsTHRESHOLDS
Grid Consumption
fig.09 — Regional grid load and distribution analyticsGRID
Quality Scanning
fig.10 — Missing values and data completeness reportsQUALITY
Investigation Queue
fig.11 — Priority queue for high-risk customer field auditsQUEUE
10 / Complexity

Engineering Challenges

01

Designing interpretable risk scoring without ML

Problem

Creating multi-factor risk algorithms that balance transparency with mathematical rigor, ensuring analyst auditability.

Solution

Developed a weighted multi-factor heuristic framework (Z-score variations, rolling median deviation, seasonal baselines).

Result

Allowed utility analysts to trace any alert directly back to the underlying consumption mathematical deviations.

02

Balancing sensitivity vs false positives

Problem

Calibrating detection thresholds to flag genuine consumption deviations without overwhelming analyst review queues.

Solution

Implemented dynamic standard deviation bounds that adapt threshold sensitivity using the past 30 days of client baseline noise.

Result

Alert count remained stable under 3% of total accounts while maintaining high capture rate of actual consumption drops.

03

Handling missing smart-meter readings

Problem

Designing linear interpolation and historical scaling policies to prevent data gaps from distorting anomaly flags.

Solution

Designed a fallback interpolation pipeline that estimates missing meter readings using a customer's historical average.

Result

Prevented missing values from triggering false anomalies, maintaining baseline validity.

04

Building reusable threshold-based scoring

Problem

Structuring the codebase with configurable rulesets that can adapt to different local grid regions without code changes.

Solution

Externalized detection metrics and threshold parameters into separate, structured JSON configuration profiles.

Result

Allowed grid operators to change detection rules dynamically without modifying or redeploying backend Python code.

05

Presenting analyst-friendly dashboards

Problem

Crafting responsive visualization paradigms to help ops teams isolate spikes and trace risk scores to specific daily features.

Solution

Developed interactive time-series plots with color-coded risk flags overlaying consumption spikes.

Result

Reduced target anomaly review time from minutes to a few seconds, improving operational efficiency.

11 / Limits & Takeaways

Boundaries & Learnings

Limitations

  • Runtime defaults to simulated data; the included 2015 dataset has unverified source and licensing
  • No live data ingestion — dashboard uses pre-computed results
  • No trained theft-classification model or reproducible ML evaluation is included
  • Heuristic thresholds manually tuned — not learned from data
  • No real-time alerting system or notification pipeline

Key Learnings

  • Transparent consumption-feature and threshold analysis
  • Data-quality reporting for incomplete and imbalanced datasets
  • Smart grid domain knowledge — consumption patterns and theft signatures
  • Flask dashboard design for operational monitoring use cases
  • Testing data loading, API behavior, and risk-category boundaries