Inspiration: My teammate's dad has been a professional stockbroker for years, and he constantly complains about how hard it is to analyse markets because of over saturation of data. With hundreds of tickers, financial metrics, ESG scores, earnings reports, and macro signals streaming in constantly, separating meaningful signal from noise has become nearly impossible, even for a seasoned professional whose livelihood depends on getting it right. We wanted to build something meaningful and personal: a bespoke tool shaped around how an actual working analyst thinks, decides, and needs information delivered, fast, filtered, and defensible, rather than another generic stock screener.

What it does: Semaphore is a bespoke stock analysis dashboard that cuts through data overload for professional analysts. It runs two complementary models on a stock or portfolio: one that explains what is driving returns right now, and one that predicts where returns are headed next period, then distills the results into clear buy, hold, or sell style signals. Instead of raw spreadsheets and regression tables, users get a focused view of current drivers (like profitability) versus forward-looking predictors (like R&D intensity), with the model's confidence and limitations shown transparently rather than buried in fine print.

How we built it: We approached the problem the way our supporting coursework research did: pulling multi-year fundamental and market data (returns, gross margin, R&D expense, liquidity/bid-ask spread, ESG scores, and firm size) and running two regression models, one explaining contemporaneous returns and one forecasting next-period returns. We translated this dual-model logic into a personalized dashboard where current-period drivers surface "why a stock is moving now," while forward-looking predictors like R&D trends surface "where it might be headed." This let us design a tool that mirrors how a broker actually triages opportunities, without manually cross-referencing spreadsheets.

Challenges we ran into: The biggest technical challenge mirrored what we found in our own regression work: with limited annual observations per firm, coefficient estimates can look statistically strong while actually being fragile, and correlated predictors like R&D, ESG, and market cap make it hard to isolate the true drivers of returns. On the product side, the challenge was balancing rigor with usability. A professional broker does not want raw regression output; he wants clear, decision-ready signals without hiding the uncertainty behind them, so we spent significant effort designing how model confidence and limitations were communicated in the UI.

Accomplishments that we're proud of: We are proud that Semaphore moves beyond a generic screener into something genuinely bespoke, built around a real professional's daily pain point rather than a hypothetical user. We also successfully operationalized a rigorous two-model approach, separating explanatory drivers from predictive signals, into an interface that a non-technical (but highly experienced) end user can act on quickly and confidently.

What we learned: We learned that explanatory power and predictive power are not the same thing: current profitability, via gross margin, explains today's returns, while R&D intensity is a much stronger forward-looking predictor of tomorrow's. We also learned firsthand how multicollinearity between variables like R&D spend, ESG score, and market capitalization can quietly distort a model's interpretability even when the overall fit R square looks strong, reinforcing the importance of communicating uncertainty honestly to end users.

+ 10 more
Share this project:

Updates