Inspiration

When someone we care about has trouble with a banking app or gets an unfamiliar payment request, it’s easy to offer to handle it for them. But being able to manage their own money is part of their independence. We wanted to find a way to offer support while keeping them in control.

For elders on a fixed income, deciding when to pay a bill can take some thought. Paying today might leave too little for groceries or medication before the next deposit. An unexpected charge can make that decision even harder, especially if they’re unsure whether it’s legitimate.

That’s where Steady started. We wanted a companion that reaches out about upcoming bills, explains what paying them would mean, and lets the person decide. A trusted caregiver can review the payment before it goes through, so they have someone to check with without handing over their finances.

What it does

Steady proactively helps elders manage bills through a familiar WhatsApp conversation, powered by Twilio.

Instead of waiting for the user to check an account, Steady identifies an upcoming bill and sends the payment details. The user can respond YES to proceed or NO to decline.

A yes begins a second checkpoint. Steady emails the designated caregiver with the payee, amount, and proposed payment date. The payment remains on hold until the required approval is received.

Our prototype combines:

  • Proactive bill messages: Bring upcoming payments to the user’s attention.
  • Cash-flow checks: Consider available funds, upcoming obligations, and expected income while protecting a cash buffer.
  • Caregiver approval: Give a trusted person an opportunity to review the transaction before execution.
  • History-based alerts: Flag duplicate charges, increases in recurring bills, and activity that could leave too little for upcoming expenses.
  • External payment simulation: Submit an approved payment to an independent demo utility and receive a receipt.

Capital One’s Nessie API provides synthetic banking data. Our separate utility API provides fictional invoices and records simulated payments. The HTTP requests and updates to the utility’s records are real; no real money moves, and Nessie’s balance is not debited.

How we built it

We built Steady with Python and Flask, Twilio’s WhatsApp API for messaging, Gemini API for understanding replies, and Capital One’s Nessie API for synthetic banking data.

The AI handles conversations with elders, while code checks payment amounts, dates, balances, and approvals. After approval, Steady sends an HTTP request to our demo utility company, which records the simulated payment and returns a receipt.

PostgreSQL and TigerData support transaction history and analysis so Steady can compare new bills with past activity. And we implemented anomaly detection based on data points stored.

Challenges we ran into

Making the interaction simple for the user meant handling more complexity behind the scenes. A reply like “yes” needs to refer to a specific bill. We had to keep the payee, amount, and date connected to the approval, even if messages arrived late or the user changed their mind.

We also had to think about what happens when a request succeeds but its response gets lost. Retrying a payment without checking could pay the same bill twice. We used persistent payment identifiers and receipt lookup so Steady can recover without creating another payment.

Security became a bigger focus after feedback from reviewers. Having a caregiver approve a transaction is useful, but it does not prove the bill is legitimate or that either person’s account is secure. That feedback helped us identify where the prototype needs stronger verification.

Another challenge was deciding what an alert should mean. An expensive bill might be real, and a familiar-looking charge might be a duplicate. We need to give people a reason to review something without claiming that every unusual transaction is fraud.

Accomplishments that we're proud of

Built a complete simulated payment flow, from a proactive WhatsApp message to caregiver approval and a receipt from an independent demo utility.

Added balance checks, protected cash buffers, cancellation, and duplicate payment prevention to handle more than just the successful payment scenario.

Used transaction history to recognize changes such as duplicate charges and increasing bills, giving elders more context before they make a decision.

Kept the experience conversational so elders can stay involved in managing their money without learning another banking app.

What we learned

How to connect banking data, WhatsApp messages, caregiver emails, and an external utility API into one working flow.

Why payment calculations and approval rules belong in deterministic code, even when AI handles the conversation.

How delayed replies, failed connections, and repeated requests can affect a payment, and why the system needs to remember what has already happened.

That security takes more than an approval button. We need to consider who is approving, what they are approving, and whether the request has changed.

What's next for Steady

Strengthening identity verification, payee validation, and approval link security before expanding payment capabilities.

Improving anomaly detection with transaction history so warnings explain what changed and why it might deserve attention.

Testing with elders and caregivers to understand whether the messages are clear and whether the approval process feels helpful or adds unnecessary work.

Adding voice calls to make Steady useful for elders who are less comfortable typing

Built With

Share this project:

Updates

Submission history