Brennen Slaney
  • Home
  • Books
  • Blog
  • Resume
  • Stock Competition
    • 2026
    • 2025
  • About
  • Testimonials
  • Complaints

On this page

  • 1 Final Standings
    • 1.1 Leaderboard
    • 1.2 Performance Over Time
  • 2 Background
  • 3 Selections
    • 3.1 Market-Timer Mike
    • 3.2 Raw Iron Ryan
    • 3.3 The Benjamin
    • 3.4 Real Slim Slaney
  • 4 Appendix
    • 4.1 Full Dataset

Stock Competition 2025

Published

December 31, 2025

FINAL RESULTS: competition ended 2025-12-31
AUTHOR: Brennen Slaney 
GITHUB: @realslimslaney

1 Final Standings

1.1 Leaderboard

Final Results (Feb 21 - Dec 31, 2025)
Name Ticker Return Start Date End Date Start Price End Price Dividends End Value
Mike AG+ 200.98% 2025-02-21 2025-12-31 $5.53 $16.64 $0.01 $16.65
Ryan NVDA+ 38.80% 2025-02-21 2025-12-31 $134.23 $186.27 $0.04 $186.31
Brennen SD+ 27.07% 2025-02-21 2025-12-31 $11.40 $14.03 $0.46 $14.49
Ben CINF+ 26.30% 2025-02-21 2025-12-31 $130.60 $161.48 $3.48 $164.96
Benchmarks
Name Ticker Return Start Date End Date Start Price End Price Dividends End Value
S&P 500 ^SPX+ 13.84% 2025-02-21 2025-12-31 $6,013.13 $6,845.50 $0.00 $6,845.50
Bitcoin BTC-USD+ −8.96% 2025-02-21 2025-12-31 $96,125.55 $87,508.83 $0.00 $87,508.83

1.2 Performance Over Time

Code
chart_df = (
    df.join(
        df.rename({"close": "start_price"})
        .filter(pl.col("date") == start_date)
        .select(["ticker", "start_price"]),
        on="ticker",
        how="left",
    )
    .with_columns(
        pl.col("close")
        .add(pl.col("dividend").fill_null(0.0).cum_sum().over(pl.col("ticker")))
        .alias("Accumulated Value")
    )
    .with_columns(
        (
            pl.col("factor")
            * (pl.col("Accumulated Value").truediv(pl.col("start_price")) - pl.lit(1))
        ).alias("Return"),
        pl.when(pl.col("factor") == 1)
        .then(pl.col("ticker") + "+")
        .otherwise(pl.col("ticker") + "-")
        .alias("position"),
    )
)

fig = px.line(
    chart_df,
    x="date",
    y="Return",
    color="position",
    line_group="position",
    labels={"Return": "Return", "date": "Date"},
    category_orders={"position": position_order},
    color_discrete_map=position_color_map,
)
for trace in fig.data:
    if trace.name in benchmark_positions:
        trace.line.dash = "dash"
        trace.line.color = "#888"
        trace.line.width = 1.8
    else:
        trace.line.width = 2.5
fig.add_hline(y=0, line_dash="dot", line_color="#999", line_width=1)
fig.update_traces(
    hovertemplate="<b>%{fullData.name}</b><br>%{x|%b %d, %Y}<br>Return: %{y:.2%}<extra></extra>"
)
fig.update_layout(
    title="Total Return by Company",
    legend_title="Ticker",
    yaxis=dict(tickformat=".1%"),
    template="plotly_white",
    hovermode="x unified",
)
fig.show()
Code
fig = px.line(
    df.sort(["ticker", "date"]),
    x="date",
    y="close",
    color="ticker",
    facet_col="ticker",
    facet_col_wrap=2,
    labels={"close": "Stock Price", "date": "Date"},
    category_orders={"ticker": ticker_order},
    color_discrete_map=ticker_color_map,
)
fig.update_layout(
    title="Stock Prices",
    template="plotly_white",
    showlegend=False,
    height=700,
)
fig.update_yaxes(matches=None, showticklabels=True)
fig.update_xaxes(matches=None, showticklabels=True)
fig.for_each_annotation(lambda a: a.update(text=a.text.split("=")[-1]))
fig.update_traces(
    line_width=2,
    hovertemplate="%{x|%b %d, %Y}<br>$%{y:.2f}<extra></extra>",
)
fig.show()

2 Background

Four ambitious gentlemen met in Cleveland on the morning of February 22, 2025 for a colossal inter-industry summoning of the minds. Following hours of deliberation and intense research, the four heads of their respective divisions proposed their leading stock selections for the remainder of the 2025 calendar year.

3 Selections

3.1 Market-Timer Mike

After thorough review of X (formerly Twitter), Market-Timer Mike had an epiphany that it was finally Silver’s time to shine and selected $AG

3.2 Raw Iron Ryan

Ryan put down the weights for a brief minute to check the pulse of his biceps and the market. He knows a chip on a shoulder when he sees one and selected $NVDA

3.3 The Benjamin

What more can we say about this individual other than Company Man? Nothing. Nothing at all. The consummate professional backed his own employer with a selection of $CINF

3.4 Real Slim Slaney

After multiple late nights of research spanning many websites, Brennen knew his selection of $SD was love at first sight because nothing can beat THE POWER OF US.

Selections
Name Ticker factor
Ben CINF 1
Brennen SD 1
Mike AG 1
Ryan NVDA 1
S&P 500 ^SPX 1
Bitcoin BTC-USD 1

4 Appendix

4.1 Full Dataset

Loading ITables v2.8.1 from the internet... (need help?)
 

© 2026 Brennen Slaney · Built with Quarto