DividendSteps

SCHD DRIP worksheet · Multiple-fill arithmetic

The average price must reconcile total cash and total shares.

DividendSteps Team · October 26, 2026 · All fill amounts and prices below are hypothetical

Assumed purchases of $100 at $20 and $100 at $25 buy 5 + 4 = 9 shares. Their combined price is $200 ÷ 9 = $22.222222… per share, not the simple $22.50 average of the two prices. This is a two-fill reconstruction before fees or rounding, not a real SCHD execution or a promise of your credited share count.

The cash-to-shares audit separates issuer distributions from account cash and execution price. This worksheet focuses on the price denominator when more than one hypothetical purchase contributes to the same aggregate. No account is accessed and no market quote is substituted for a fill.

Build shares row by row before averaging

Fill A spends $100 at $20 per share and therefore buys 100 ÷ 20 = 5 shares. Fill B spends $100 at $25 and buys 100 ÷ 25 = 4 shares. Total cash is $200 and total shares are 9. Dividing the totals gives the exact fraction 200/9 dollars per share. Multiplying that fraction by 9 recovers the original $200 exactly.

The same result follows from weighting prices by shares: (5 × $20 + 4 × $25) ÷ (5 + 4) = $200 ÷ 9. Averaging the two price labels equally gives ($20 + $25) ÷ 2 = $22.50 instead. Dividing $200 by $22.50 produces 80/9 shares, about 8.888889, which is 1/9 share below the 9 actually specified by the fixture.

Two assumed100-dollar purchases at20 and25 buy5 and4 shares; total200 divided by9 gives the weighted price.
Original synthetic fill ledger. Prices and cash amounts are chosen assumptions.

Equal cash is not equal share weight

With equal cash invested at different prices, the lower-price row buys more shares. The equivalent harmonic expression is 2 ÷ (1/20 + 1/25) = 200/9. That identity applies to this equal-cash case; it is not a license to use the same two-price formula when the cash amounts differ.

For contrast, choose 5 shares at each price. The required cash amounts become $100 and $125, totaling $225 for 10 shares. The aggregate price is then $225 ÷ 10 = $22.50. The simple average works in this second fixture because share weights are equal. It did not become correct for the original equal-cash fixture.

Splitting a row must not change the result

Replace Fill A with two rows at the same $20 price, spending $40 and $60. They buy 2 and 3 shares. Together with Fill B's 4 shares, the total remains 9 shares for $200 and the weighted price remains 200/9. A price average based on row count would wrongly change merely because one fill was represented by two records.

Reversing the original two rows also preserves the totals. Adding a zero-cash row with a valid $100 price adds zero shares and does not change the weighted price. The test checks that a valid aggregate lies between the lowest and highest positive-cash fill prices; the zero-cash row receives no weight.

Reproducible zero and missing-fill checks

CaseTotal sharesExact USD/share or state
equal_cash9200/9
reversed9200/9
split_first_fill9200/9
equal_shares1045/2
one_fill520
zero_cash0no_purchases
zero_extra9200/9
missing_priceUnknownunknown_input
missing_cashUnknownunknown_input
zero_priceUnknowninvalid_input

Download the hypothetical fill rows · Download exact totals and boundary results

One $100 fill at $20 produces 5 shares and an average price of $20. Two zero-cash rows at valid positive prices produce zero total shares, but no defined purchase average: the price would require division by zero. An empty input list has the same no-purchases status. Neither case is reported as an average price of $0.

A positive cash row with a missing price has an unknown share count, so the aggregate remains unknown. A missing cash amount also remains unknown; omitting that row would change the expected scope. Negative cash or a zero price is rejected by this nonnegative-purchase schema. Signed corrections and sales need a separately specified ledger.

Do not round the price before checking the identity

The exact average 200/9 has a repeating decimal. Displaying it as $22.2222 and multiplying by 9 gives $199.9998, leaving a $0.0002 display residual. Using only $22.22 gives $199.98, a $0.02 residual. Those residuals are caused by shortening the displayed price in this fixture; they do not prove a cash charge or brokerage mistake. The CSV retains exact fractions alongside decimal renderings.

What does the broker agreement establish?

The Schwab One Account Agreement, StockBuilder sections 4–6, describes a weighted purchase price when several purchases are needed, partial-share calculations to four decimal places, and transaction confirmation on account statements. That documents the program's framework. It does not supply the fill prices, quantities, fees or allocations for a particular investor. This worksheet's unrounded nine shares are synthetic.

Can this recover my actual SCHD purchase price?

Only if you have a compatible cash-and-share record with a known scope. A public DRIP pricing question asks where to find the price paid for reinvestment. The account's confirmation is the evidence to obtain; a quote seen later cannot identify the execution. This worksheet explains an arithmetic reconciliation and does not authenticate any reader's transaction.

Evidence and limits

Agreement and public reader discussion read October 26, 2026. The two $100 cash amounts, $20 and $25 prices, alternative $125 amount and split rows are chosen inputs. Exact fractions and decimal counterchecks reproduce the outputs. The bounded comparison uses freshly read bodies from the three locked calculator sites; their market values are not inputs. The independently calculated fill matrix is an addition within that sample, not a whole-web originality claim.