Studio Italica
← All work

Case study · Stock analysis

Inbestplanners

A system that screens 1,700+ stocks every night, issues signals with entry, target and stop, and publishes its results against the S&P 500.

Industry
Stock analysis · International
Our role
Design, development, hosting and maintenance
Year
2025
Inbestplanners homepage
01

The problem

Many stock-signal services only show their wins. Inbestplanners does the opposite: the rule is fixed before any results come in, and every signal goes on a public scoreboard against the S&P 500 — losers included.

02

What we did

Design

  • Signal pages with entry, target, stop and reward-to-risk
  • Public scoreboard and per-market pages
  • Interface in English and Spanish

Logic

  • Nightly screening of 1,700+ stocks across 15 markets
  • Signals with entry, target and stop
  • Every signal measured against the S&P 500 over the same days
  • Rankings

Infrastructure

  • Next.js 16 and React 19 with TypeScript, Tailwind 4, next-intl and Recharts charts
  • FastAPI with SQLAlchemy, Alembic and PostgreSQL 16
  • Redis for rate limiting and session revocation
  • Nightly Python analysis (pandas, NumPy, SciPy, scikit-learn) kept apart from the API and monitored with Sentry Crons
  • Nginx and Docker on Hetzner
03

Technical decisions

The rule comes before the results
The scoreboard was defined up front and compares every signal with the S&P 500, dividends included, over the same days.
Everything in the open, losses too
Every published signal is listed, including the losers and the ones that were never filled.
Nightly analysis kept apart from the site
The job that analyses the stocks runs separately from the API, so the site stays fast while it crunches numbers. Sentry Crons alerts us if a run fails or never starts.
Models trained on a long history
Two scoring models (logistic regression, 23 features each) trained on 160,000+ simulated trades over roughly 12 years of data.
04

Screenshots

Starbucks 360 Analysis with an overall score, a four-pillar radar against its sector and an active signal
360 Analysis. Every stock scored on quality, value, dividend and technicals, compared with its sector average.
Starbucks strengths, watch-outs and ranking against its sector
Strengths and watch-outs. The ratios where the company stands out or lags its sector, and where it ranks among 1,700+ stocks.
Signal page with entry, target and stop
Signal page. Entry, target, stop, market context and how similar signals behaved historically.
Public scoreboard against the S&P 500
Public scoreboard. High-conviction signals against the S&P 500, updated at every close.
S&P 500 market page with today’s signals
Market page. Today’s signals and the state of the index — here, the S&P 500.
Inbestplanners 360 Analysis on a phone

On the phone, too

The 360 Analysis, signals and scoreboard, designed to be checked on a phone.

05

Outcome

The product is live at inbestplanners.com and the scoreboard updates itself after every market close.

automated tests, including 600+ end-to-end
7,700+
simulated trades over ~12 years of history used to train the models
160,000+
signals published and tracked on the scoreboard since August 2026
1,700+
interface strings translated per language
8,000+

Figures checked against the code and production in November 2026.

Visit inbestplanners.com ↗

Stack: Next.js 16 · React 19 · TypeScript · Tailwind 4 · next-intl · NextAuth · TanStack Query · Recharts · FastAPI · SQLAlchemy · Alembic · PostgreSQL 16 · Redis · pandas · NumPy · SciPy · scikit-learn · Sentry Crons · Nginx · Docker · Hetzner

Need something like this?

Tell us about it in 20 minutes and we’ll tell you how we’d build it.