Can You Make $1,000 a Day Day Trading?
Can you make $1,000 a day day trading? The return each account size needs, set against the daily ranges SPY, QQQ, NVDA and TSLA offered from 2021 to 2025.
Can you make $1,000 a day day trading? As arithmetic, it depends on one number: the account behind the trade. $1,000 on each of the roughly 250 sessions in a year is about $250,000, which means 4% a day on $25,000, 1% on $100,000 and 0.1% on $1,000,000. The panels below set that required return against what SPY, QQQ, NVDA and TSLA actually moved in a session between 2021 and 2025, so the question becomes a measurement rather than a test of discipline.
Can you make $1,000 a day on a $25,000 account?
The $25,000 figure was the minimum equity the pattern day trader rule set for a margin account making four or more day trades in five business days, and for two decades it doubled as the default answer to "how much do I need to start." The framework that replaced the PDT rule moved the floor and left the division untouched: $1,000 divided by the account is the return each session has to produce, and the panel runs that division at six account sizes.
| account_size | daily_return_needed_pct |
|---|---|
| $25,000 | 4 |
| $50,000 | 2 |
| $100,000 | 1 |
| $250,000 | 0.4 |
| $1,000,000 | 0.1 |
| $10,000,000 | 0.01 |
The exact SQL behind every number
SELECT
tupleElement(tier, 1) AS account_size,
round(1000 / tupleElement(tier, 2) * 100, 2) AS daily_return_needed_pct
FROM
(
SELECT arrayJoin([
('$25,000', 25000),
('$50,000', 50000),
('$100,000', 100000),
('$250,000', 250000),
('$1,000,000', 1000000),
('$10,000,000', 10000000)
]) AS tier
)
ORDER BY tupleElement(tier, 2)On $25,000 the requirement is 4% a day; on $100,000 it is 1%, on $1,000,000 0.1% and on $10,000,000 0.01%. Compounding is left out on purpose: a target repeated 250 times stays a daily target. The table also assumes the whole account sits in one position all day, with nothing idle. Margin changes the size of the position rather than the size of the move: a 2:1 account chasing 4% still needs the stock to travel 2%, and takes a doubled hit, plus interest, on the sessions that go the other way.
What does the market offer in a single day?
The most a trade in one stock can capture in one session is the intraday range: the day's high minus its low, divided by the open. Nobody captures all of it, so it is a ceiling rather than an expectation. The panel measures that ceiling over every session from 2021 through 2025 for two index funds, SPY (S&P 500) and QQQ (Nasdaq-100), and two heavily traded single stocks, NVDA and TSLA. The median is a typical day; the 75th and 90th percentiles are the ranges exceeded on one session in four and one in ten.
| ticker | median_range_pct | p75_range_pct | p90_range_pct | session_count |
|---|---|---|---|---|
| SPY | 0.99 | 1.45 | 2.15 | 1255 |
| QQQ | 1.37 | 1.96 | 2.72 | 1255 |
| NVDA | 3.43 | 4.64 | 6.29 | 1255 |
| TSLA | 4.07 | 5.46 | 7.14 | 1255 |
The exact SQL behind every number
SELECT
ticker,
round(quantileExact(0.5)(range_pct), 2) AS median_range_pct,
round(quantileExact(0.75)(range_pct), 2) AS p75_range_pct,
round(quantileExact(0.9)(range_pct), 2) AS p90_range_pct,
count() AS session_count
FROM
(
SELECT
ticker,
date,
(toFloat64(argMax(high, _ingest_time)) - toFloat64(argMax(low, _ingest_time)))
/ toFloat64(argMax(open, _ingest_time)) * 100 AS range_pct
FROM global_markets.stocks_daily_aggs
WHERE ticker IN ('SPY', 'QQQ', 'NVDA', 'TSLA')
AND date >= '2021-01-01'
AND date < '2026-01-01'
GROUP BY ticker, date
HAVING toFloat64(argMax(open, _ingest_time)) > 0
)
GROUP BY ticker
ORDER BY indexOf(['SPY', 'QQQ', 'NVDA', 'TSLA'], ticker)Across 1255 SPY sessions, the median intraday range was 0.99%, the 75th percentile 1.45% and the 90th percentile 2.15%. All three sit below the 4% a $25,000 account needs, so a perfect low-to-high capture on the entire account still falls short of $1,000 on nine SPY sessions in ten. QQQ's median was 1.37%, with a 90th percentile of 2.72%. The single stocks live on a different scale: NVDA's median range was 3.43% and TSLA's 4.07%, with 90th percentiles of 6.29% and 7.14%. A median NVDA or TSLA day offers a range SPY reaches only on its wildest sessions.
How often does a stock move 4% in a day?
Percentiles describe the middle of the distribution. The $25,000 question lives in the tail, so this panel counts the share of sessions on which each name's intraday range reached 1%, 2% and 4%, the last being the full-range capture that account needs.
| ticker | share_range_over_1_pct | share_range_over_2_pct | share_range_over_4_pct |
|---|---|---|---|
| SPY | 49.6 | 12.4 | 0.6 |
| QQQ | 74.3 | 23.3 | 2.3 |
| NVDA | 99.8 | 88.4 | 35.9 |
| TSLA | 99.9 | 95 | 51.6 |
The exact SQL behind every number
SELECT
ticker,
round(countIf(range_pct >= 1) / count() * 100, 1) AS share_range_over_1_pct,
round(countIf(range_pct >= 2) / count() * 100, 1) AS share_range_over_2_pct,
round(countIf(range_pct >= 4) / count() * 100, 1) AS share_range_over_4_pct
FROM
(
SELECT
ticker,
date,
(toFloat64(argMax(high, _ingest_time)) - toFloat64(argMax(low, _ingest_time)))
/ toFloat64(argMax(open, _ingest_time)) * 100 AS range_pct
FROM global_markets.stocks_daily_aggs
WHERE ticker IN ('SPY', 'QQQ', 'NVDA', 'TSLA')
AND date >= '2021-01-01'
AND date < '2026-01-01'
GROUP BY ticker, date
HAVING toFloat64(argMax(open, _ingest_time)) > 0
)
GROUP BY ticker
ORDER BY indexOf(['SPY', 'QQQ', 'NVDA', 'TSLA'], ticker)SPY's range reached 2% on 12.4% of sessions and 4% on 0.6%. QQQ offered a 4% range on 2.3% of days. NVDA cleared 4% on 35.9% of sessions and TSLA on 51.6%. In the index funds, a day that could deliver $1,000 on $25,000 through a perfect trade is a rare event. In the single stocks it is routine, and the same range is open to the downside on every one of those days: a stock that travels 4% in a session travels 4% against whoever is on the wrong side of it.
How big is a normal close-to-close move?
Range is what the day offered between its extremes. The close-to-close move, today's close against yesterday's, is nearer to what a position experiences with ordinary timing, and it is the move anyone holding overnight lives with. This panel measures the absolute close-to-close move, direction removed, over the same five years, skipping each name's stock-split dates, where a raw close-to-close comparison is meaningless.
| ticker | median_move_pct | p75_move_pct | p90_move_pct | share_move_over_4_pct |
|---|---|---|---|---|
| SPY | 0.57 | 1.07 | 1.65 | 0.6 |
| QQQ | 0.77 | 1.47 | 2.31 | 1.3 |
| NVDA | 1.88 | 3.39 | 5.14 | 18 |
| TSLA | 2.08 | 3.93 | 6.05 | 24.4 |
The exact SQL behind every number
WITH
bars AS
(
SELECT
ticker,
date,
toFloat64(argMax(close, _ingest_time)) AS close_px
FROM global_markets.stocks_daily_aggs
WHERE ticker IN ('SPY', 'QQQ', 'NVDA', 'TSLA')
AND date >= '2020-12-01'
AND date < '2026-01-01'
GROUP BY ticker, date
),
moves AS
(
SELECT
ticker,
date,
close_px,
lagInFrame(close_px, 1) OVER (PARTITION BY ticker ORDER BY date ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS prev_close_px
FROM bars
)
SELECT
ticker,
round(quantileExact(0.5)(abs_move_pct), 2) AS median_move_pct,
round(quantileExact(0.75)(abs_move_pct), 2) AS p75_move_pct,
round(quantileExact(0.9)(abs_move_pct), 2) AS p90_move_pct,
round(countIf(abs_move_pct >= 4) / count() * 100, 1) AS share_move_over_4_pct
FROM
(
SELECT
ticker,
date,
abs(close_px / prev_close_px - 1) * 100 AS abs_move_pct
FROM moves
WHERE prev_close_px > 0
AND date >= '2021-01-01'
AND (toString(ticker), toDate(date)) NOT IN
(
SELECT toString(ticker), toDate(execution_date)
FROM global_markets.stocks_splits
)
)
GROUP BY ticker
ORDER BY indexOf(['SPY', 'QQQ', 'NVDA', 'TSLA'], ticker)SPY's median absolute move was 0.57% and its 90th percentile 1.65%; a move of 4% or more in either direction occurred on 0.6% of sessions. NVDA's median move was 1.88% and TSLA's 2.08%, and they moved 4% or more on 18% and 24.4% of days. Set these against the first panel: the $100,000 account's 1% target sits between SPY's median and 90th-percentile move, inside the band an ordinary index day covers, while the $25,000 account's 4% sits beyond SPY's 90th percentile, out in a tail the index rarely visits.
What does each day cost before the $1,000 is counted?
The $1,000 is a net figure, and the costs stack between gross and net. Every round trip crosses the bid-ask spread, the gap between the best price to buy and the best price to sell, and a day trader crosses it many times a session. On the most liquid names it is a cent or two a share; on a thin name it can be a meaningful slice of the day's range, as the measured spreads in what it costs to trade a stock show. Commissions are near zero at most retail brokers as of 2026; margin interest and per-contract options fees are not.
Taxes cut deepest. Profit on a position held a year or less is a short-term capital gain, taxed as ordinary income rather than at the lower long-term rate. As a hypothetical, a trader at a 32% marginal federal rate keeps $680 of a $1,000 day before state tax. To bank $1,000 net, the gross target rises to about $1,470 a day, and every percentage in the first panel scales with it.
How long does a losing streak last?
The first panel assumes every session delivers. Real trading arrives in streaks. A method that wins 55% of its trades loses five in a row with probability 0.45 to the fifth power, about 1.8% for any five-trade stretch; across a few hundred trades a year, that streak arrives on schedule. Five losing sessions at the full 4% each is a drawdown of about 18%, and holding the $1,000-a-day pace from the smaller balance then takes nearly 5%. Streak lengths by win rate are worked through in how long a losing streak is normal, and the Kelly criterion turns a win rate and a payoff ratio into the largest fraction of capital a single trade can carry before streaks compound into ruin. Every version of that formula points the same direction: the daily target is a small fraction of the account, and the account is the variable that has to move.
At what account size does $1,000 a day become a small target?
Turn the question around. Instead of asking what return an account needs, fix $1,000 as a fraction of a median day's range and back out the capital. If $1,000 is the entire median range, a trade has to catch the exact low and high of an ordinary day. If it is a tenth, an ordinary day contains ten of them. If it is a hundredth, the target is noise inside a normal session, which is how professional desks frame a daily result against the instrument they trade.
| ticker | median_range_pct | capital_whole_range | capital_whole_range_millions | capital_tenth_of_range_millions | capital_hundredth_of_range_millions |
|---|---|---|---|---|---|
| SPY | 0.99 | $101,000 | 0.101 | 1.01 | 10.1 |
| QQQ | 1.37 | $73,000 | 0.073 | 0.73 | 7.3 |
| NVDA | 3.43 | $29,000 | 0.029 | 0.29 | 2.9 |
| TSLA | 4.07 | $25,000 | 0.025 | 0.25 | 2.5 |
The exact SQL behind every number
SELECT
ticker,
round(median_raw, 2) AS median_range_pct,
concat('$', toString(toUInt32(round(100 / median_raw))), ',000') AS capital_whole_range,
round(0.1 / median_raw, 3) AS capital_whole_range_millions,
round(1 / median_raw, 2) AS capital_tenth_of_range_millions,
round(10 / median_raw, 1) AS capital_hundredth_of_range_millions
FROM
(
SELECT
ticker,
quantileExact(0.5)(range_pct) AS median_raw
FROM
(
SELECT
ticker,
date,
(toFloat64(argMax(high, _ingest_time)) - toFloat64(argMax(low, _ingest_time)))
/ toFloat64(argMax(open, _ingest_time)) * 100 AS range_pct
FROM global_markets.stocks_daily_aggs
WHERE ticker IN ('SPY', 'QQQ', 'NVDA', 'TSLA')
AND date >= '2021-01-01'
AND date < '2026-01-01'
GROUP BY ticker, date
HAVING toFloat64(argMax(open, _ingest_time)) > 0
)
GROUP BY ticker
)
ORDER BY indexOf(['SPY', 'QQQ', 'NVDA', 'TSLA'], ticker)On SPY, $1,000 is the whole median range at roughly $101,000 of deployed capital, a tenth of it at $1.01 million and a hundredth at $10.1 million. Wider ranges lower each threshold: on NVDA the hundredth-of-range level is $2.9 million, and on TSLA $1,000 equals the entire median range at about $25,000, near the old PDT floor itself.
That is the conditional answer. Where $1,000 is a hundredth of the day's range, the market offers the target many times over in every session, and the difficulty shifts to capturing a sliver of it consistently while paying spreads and taxes on every trade. Where the target exceeds the median range, as 4% does against SPY's 0.99%, a typical day does not contain the move at all, and the outcome rests on whether the tail shows up. Desks size from the range inward: fix the target as a fraction of the ordinary day, and the capital follows.
FAQ
Can you make $1,000 a day day trading with $25,000?
$1,000 on $25,000 is a 4% return every session. Between 2021 and 2025, SPY's median intraday range was 0.99% and its range reached 4% on only 0.6% of sessions, so on an index fund the typical day does not contain the move even for a perfect trade. Single stocks such as NVDA and TSLA offer 4% ranges far more often, in both directions.
How much money do you need to make $1,000 a day?
It depends on the return per day the trading captures: at 1% a day the account is $100,000, and at 0.1% it is $1,000,000. Measured against SPY's median range from 2021 to 2025, $1,000 becomes one hundredth of an ordinary day's range at about $10.1 million of deployed capital.
Is $1,000 a day realistic for a day trader?
As a repeated daily result it requires either a large account or a per-day return larger than the index funds offered on most sessions between 2021 and 2025. The data above describes what the market made available and how often; it says nothing about any individual's skill, and the answer changes more with account size than with anything else.
How much is $1,000 a day per year?
About $250,000 across the roughly 250 sessions in a trading year, before trading costs and taxes. Short-term gains are taxed as ordinary income; at a 32% marginal federal rate the after-tax figure is nearer $170,000, before state tax.
Every panel above ships with the SQL that produced it. Swap the tickers or the years and rerun it on the Strasmore terminal to measure any name's daily range against an account size of your choosing.