Inspiration

Every day Nifty, Sensex, or a stock like ICICI Bank moves 2-3%, and most retail investors in India have no quick way to know why. News apps dump headlines at you, but nothing connects "this stock moved X%" to "here's the news that likely caused it." I wanted something that closes that gap in one glance.

What it does

MoveWhy tracks Nifty, Bank Nifty, Sensex, and major large-cap stocks. When one makes a significant move, it pulls recent news headlines and uses an LLM to generate a short, hedged explanation of what likely drove the move, along with a confidence level. It's explicitly informational: past-move explanations, not predictions or buy/sell recommendations, and it says so directly in the app.

How we built it

  • Frontend: Unity (C#), TextMeshPro for the UI, a card-based feed showing each instrument's price, percent move, and AI explanation.
  • Backend: Python/FastAPI, polling live price data and checking for moves above a threshold. On a detected move, it fetches recent headlines from financial news RSS feeds and calls an LLM to generate a hedged explanation with strict JSON output.
  • LLM: Groq's free-tier inference for fast, low-cost explanation generation, with rate-limit-aware batching across symbols.
  • Monetization: RevenueCat, using its Ads SDK integration with AdMob for rewarded ads that unlock stock-level detail beyond the index cards.
  • Hosting: Backend deployed on Render, caching explanations so the app stays fast and doesn't hit the LLM on every request.

Challenges we ran into

  • A Groq model deprecation mid-build forced a same-day model switch and reasoning-token tuning to avoid free-tier rate limits.
  • Getting Unity's TextMeshPro layout and RevenueCat's Android SDK working together cleanly, including a minimum SDK version conflict between Unity's default and RevenueCat's library requirement.
  • Building the entire stack on free-tier services only, end to end, while keeping it reliable enough to demo.

Accomplishments that we're proud of

  • A working end-to-end pipeline: live price data to news matching to AI explanation to mobile UI, running on entirely free infrastructure.
  • Explanations that stay honest about uncertainty (hedged language, confidence levels) instead of overclaiming causation.
  • Shipping a real RevenueCat integration (Ads/AdMob) solo, under a hard deadline, while debugging live production issues (rate limits, model deprecations) as they happened.

What we learned

How to design an AI feature that's useful in a few seconds without overstating what it actually knows, and how much infrastructure judgment (rate limits, model lifecycles, free-tier constraints) goes into something that looks simple on the surface.

What's next for MoveWhy

Expanding beyond index/large-cap stocks, adding historical move search, and improving explanation accuracy with better headline ranking.

Built With

Share this project:

Updates

Submission history