Inspiration

PennyAhead started with a conversation. While working with ChatGPT on my own investment strategy, I explored Roth IRAs and the Bogleheads approach to investing. What made that experience valuable wasn’t just getting information—it was being able to ask questions, work through the options, and turn an intimidating subject into an understandable plan.

That sparked an idea: what if that kind of guidance became an everyday companion, helping people connect the money they have today with the future they want to build?

I wanted PennyAhead to feel encouraging rather than overwhelming. Its personality draws from the optimism of Carousel of Progress: a brighter tomorrow built through small steps today. The friendly robot represents that spirit—not a machine promising to make you rich, but a guide helping you move forward.

What it does

PennyAhead helps answer a practical question: “How much can I save and invest without leaving myself short?”

It brings together account balances, upcoming bills, reviewed spending needs, and personal goals. The planner reserves money for everyday expenses and a checking buffer before suggesting amounts for savings and a Roth IRA. A separate investment preview shows an illustrative allocation across U.S. stocks, international stocks, and bonds, based on reviewed preferences. The AI assistant explains those same calculations in plain English.

The prototype uses synthetic scenarios and optional Plaid Sandbox test data. Users can also practice contributing to a fictional Roth and purchasing investments with test money. Planning previews and practice actions do not move real money or place brokerage orders.

How we built it

PennyAhead is built with Next.js, React, TypeScript, Tailwind CSS, and shadcn/ui. Its backend calculates forecasts and allocations, while SQLite stores the synthetic monitoring and transfer state. Plaid Sandbox provides an optional source of provider-generated test balances and transactions.

The assistant uses the Strands Agents SDK, with locally verified Amazon Bedrock tool calls, an implemented OpenAI adapter, and a clearly labeled mock mode for running without credentials. Its tools are read-only: the model can inspect current information and explain a plan, but cannot approve transfers, change financial inputs, or place trades.

A central design decision was to keep financial calculations outside the language model. Backend code determines the amounts; the dashboard and assistant use the same results. Automated backend and browser tests cover scenarios such as shortages, stale observations, failed simulations, and desktop/mobile behavior.

Challenges we ran into

One challenge was making the assistant understandable without letting it reinterpret financial facts. Live-model testing exposed incorrect scaling of amounts supplied in cents. The solution was to keep calculations in integer cents while formatting tool results into explicit dollar values before the model explained them.

Another challenge was distinguishing money that is available now from money that might arrive later. Pending transactions, estimated paychecks, incomplete spending history, and stale balances all affect what the app can responsibly suggest. Those uncertainties needed visible review states—not confident guesses.

Provider integration also introduced real boundaries. Brokerage Sandbox access did not automatically enable Roth account creation. Rather than presenting an unfinished integration as operational, I built an explicitly local practice flow that demonstrates contributions and purchases without claiming provider execution.

Accomplishments that we're proud of

I’m proud of turning a personal learning experience into a working prototype that connects everyday cash decisions with longer-term goals.

The project brings together a savings and retirement planner, bill forecasting, provider-returned Plaid Sandbox data, and a locally verified Bedrock-powered assistant. It also includes a complete test-money practice flow with contribution and purchase success/failure paths, supported by automated tests.

Most importantly, the assistant’s boundaries are part of the architecture, not just its instructions. It explains backend-calculated recommendations through read-only tools; it has no money-movement capability. That separation is one of the project’s most important achievements.

What we learned

The biggest lesson was that a useful financial agent does not need unlimited autonomy. Its value can come from helping someone understand a decision, see the assumptions behind it, and recognize what needs review.

Building PennyAhead also reinforced how much clarity depends on separating concepts that can sound interchangeable: a savings plan is not a transfer, a proposed contribution is not available brokerage cash, and an investment preview is not an executed order. The implementation keeps those stages distinct.

For me, the goal became less about making finance look effortless and more about making the next step understandable.

What's next for PennyAhead

The next priorities are to validate the hosted experience, gather feedback from people who are new to saving and investing, and improve onboarding so users understand the assumptions behind their plans.

On the technical side, I want to expand supported planning scenarios and progress toward verified brokerage Sandbox integration. Contribution and trading capabilities would come only after account authorization, explicit user approval, available-funds checks, and reliable transaction-status handling are in place. Those execution paths are not connected today.

The long-term vision is a companion that helps people build consistent habits—not chase the market or promise a particular return, but make thoughtful progress toward a brighter tomorrow.

A little saved. A future built.

Built With

Share this project:

Updates

Submission history