Skip to content

feat: auto-detect subscriptions from recurring charges#700

Open
shaidshark wants to merge 2 commits intorohitdash08:mainfrom
shaidshark:feat/auto-detect-subscriptions
Open

feat: auto-detect subscriptions from recurring charges#700
shaidshark wants to merge 2 commits intorohitdash08:mainfrom
shaidshark:feat/auto-detect-subscriptions

Conversation

@shaidshark
Copy link
Copy Markdown

Fixes #109

Summary

This PR implements automatic subscription detection from recurring charges in transaction history.

Features

  • Automatic Detection: Analyzes expense history to find recurring patterns (weekly, monthly, yearly)
  • Confidence Scoring: Each detected subscription has a confidence score (0.00-1.00) based on pattern consistency
  • User Confirmation: Users can confirm or dismiss detected subscriptions
  • Amount Variance Tolerance: Handles slight price changes (up to 10% variance)

API Endpoints

  • GET /subscriptions - List detected subscriptions
  • POST /subscriptions/detect - Run detection
  • GET /subscriptions/{id} - Get specific subscription
  • POST /subscriptions/{id}/confirm - Confirm subscription
  • DELETE /subscriptions/{id} - Dismiss subscription

Implementation

  • Model: DetectedSubscription with confidence scoring and cadence detection
  • Service: SubscriptionDetector analyzes expense patterns
  • Routes: Full REST API for subscription management
  • Tests: Comprehensive test suite (16 tests)
  • Documentation: Complete feature documentation

Testing

Tests require Redis to be running. The test suite covers:

  • Detection of weekly, monthly, and yearly patterns
  • Confidence scoring
  • User confirmation and dismissal
  • User isolation
  • Idempotent detection

Checklist

  • Code follows project conventions
  • Model added to database schema
  • API endpoints implemented
  • Tests written (infrastructure dependency: Redis)
  • Documentation added

@shaidshark shaidshark requested a review from rohitdash08 as a code owner April 2, 2026 17:16
- Add Subscription model with DETECTED/CONFIRMED/DISMISSED status
- Implement pattern detection for weekly/monthly/yearly cycles
- Add confidence scoring based on regularity and amount consistency
- Add GET /subscriptions, POST /subscriptions/detect, POST /subscriptions/{id}/confirm, POST /subscriptions/{id}/dismiss, DELETE /subscriptions/{id}
- Add refresh predictions endpoint
- Include comprehensive tests for detection, confirmation, dismissal

Fixes rohitdash08#109
@shaidshark shaidshark force-pushed the feat/auto-detect-subscriptions branch from 39ba317 to 6dbd0ab Compare April 2, 2026 17:18
- Patch redis.Redis.from_url before app modules import
- Add comprehensive test suite for subscription detection
- All 9 tests passing
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Auto-detect subscriptions from recurring charges

1 participant