Inspiration
I noticed that household subscriptions and recurring bills are easy to forget about. People may continue paying for services they rarely use, miss price increases, overlook upcoming renewals, or unknowingly maintain overlapping subscriptions. I wanted to build something that goes beyond simply showing users their spending.
BillShield was inspired by the idea of an AI agent that actively protects a household's recurring expenses by finding problems, recommending what to do, taking authorized action, and verifying the result.
What it does
BillShield is an AI-powered household bill and subscription agent that analyzes recurring expenses and identifies potential problems. It detects potentially unused subscriptions, unexpected price increases, upcoming renewals, and potential overlaps, then prioritizes opportunities based on their financial impact and urgency.
The agent can prepare actions such as subscription cancellations, but consequential financial actions always require explicit human approval. Once an action is approved, it is executed and verified. BillShield then updates the current subscription state and distinguishes between potential savings and verified savings.
The system follows:
Discover → Detect → Analyze → Prioritize → Recommend → Ask Approval → Act → Verify → Report
How I built it
I built BillShield using Python, the Strands Agents SDK, REST APIs, SQLite, and a web dashboard.
I deliberately separated deterministic financial processing from AI reasoning. Python services handle transaction processing, recurring-payment detection, price-change calculations, inactivity analysis, renewal detection, overlap detection, and savings calculations. The Strands agent handles natural-language interaction, reasoning, tool selection, prioritization, and workflow orchestration.
I used SQLite to persist action states, subscription status, scan information, and other application state. I also built a web dashboard with subscription insights, opportunity cards, human approval interfaces, savings visualization, agent chat, and activity monitoring.
I implemented a state-driven action workflow:
DETECTED → RECOMMENDED → AWAITING_APPROVAL → APPROVED → EXECUTING → VERIFYING → VERIFIED
with failure paths leading to human review.
I developed the project progressively, starting with a deterministic financial analysis engine, then adding the agentic workflow, and finally productizing it into a complete dashboard and protection system.
Challenges I ran into
One of the biggest challenges I faced was allowing the agent to perform real actions safely without making it unnecessarily autonomous. I needed to ensure that a request such as "Cancel FitnessPro" could initiate the correct workflow while still requiring explicit approval before execution.
Another challenge was maintaining consistent financial and subscription state across the agent, backend, database, and dashboard. Historical transactions cannot simply be deleted when a subscription is cancelled, so I had to distinguish historical financial data from the subscription's current state.
I also had to solve idempotency. A user should not be able to accidentally cancel the same subscription multiple times or have the same savings counted repeatedly.
Finally, I found that backend correctness alone was not enough. I had to test how a normal person would actually talk to the agent, including casual language, follow-up questions, typos, ambiguous requests, repeated actions, and changing their mind.
Accomplishments that I'm proud of
I am particularly proud that I developed BillShield into a complete agentic workflow rather than a conventional chatbot.
The system can:
- Discover recurring household expenses.
- Detect multiple types of subscription problems.
- Calculate potential savings deterministically.
- Prioritize important opportunities.
- Explain why an opportunity was flagged.
- Ask for human approval before consequential actions.
- Execute authorized actions.
- Verify that actions actually succeeded.
- Persist action and subscription state.
- Prevent repeated actions and double-counted savings.
- Distinguish potential savings from savings that have actually been secured.
- Provide a dashboard showing the complete protection lifecycle.
- Continue monitoring for new or changed issues.
I am also proud of the testing foundation I built, covering the financial engine, agent workflows, APIs, persistence, security, dashboard behavior, failure handling, and human-like conversational interactions.
What I learned
I learned that building an effective AI agent is much more than connecting an LLM to a set of tools.
I learned that deterministic systems should handle tasks where accuracy is critical, while the agent should focus on reasoning, communication, and orchestration.
I also learned that human-in-the-loop design is essential for consequential actions. An agent should be capable of doing real work, but it should know when it needs the user's authorization.
Another important lesson was that verification matters as much as execution. It is not enough for the agent to say that an action was completed; the system needs to verify the outcome before treating the savings as real.
Finally, I learned that conversational reliability requires testing the way people actually speak. Users don't always provide perfectly structured commands—they use shorthand, follow-up questions, typos, and references such as "cancel that one." Building a reliable agent means handling those situations while still maintaining strict safety boundaries.
What's next for BillShield — Household Bill & Subscription Agent
My next goal for BillShield is to move from a strong hackathon prototype toward a continuously operating household protection agent.
I would like to add real financial-data integrations, secure provider integrations for subscription management, more sophisticated recurring-expense detection, configurable user preferences, proactive notifications, and deployment through Amazon Bedrock AgentCore.
I also want to make BillShield better at identifying which alerts are genuinely important to an individual household while maintaining strict approval boundaries for consequential actions.
Ultimately, my vision is:
BillShield shouldn't just tell people where their money is going. It should continuously watch recurring expenses, identify what deserves attention, help make the decision, take authorized action, verify the outcome, and keep protecting the household's spending.
Log in or sign up for Devpost to join the conversation.