A DCA bot open-deal inventory report should join confirmed fills, remaining asset quantity, allocated purchase cost and a timestamped valuation with realized results from closed and partly closed deals. Keep pending orders and future ladder budgets in separate columns. This makes it possible to reconcile what the bot has earned, what it still holds and what the exchange account actually contains.
A list of completed profitable deals can be accurate while the strategy's total result is negative. The missing information often sits in open inventory. A useful report must preserve that inventory through partial exits, paused bots and reporting cutoffs rather than waiting for every deal to finish.
Set one boundary for the report
This worksheet covers unleveraged, long spot purchases in one exchange account, valued in USDT. It uses a weighted-average operational cost convention within each deal. It does not prescribe tax treatment or apply directly to futures contracts, borrowing or short strategies.
Write these items above the report:
- Account, venue, instrument and bot/deal identifiers.
- Cutoff time and timezone, including the latest reconciled fill timestamp.
- Valuation price, its source and its timestamp.
- Cost convention, fee treatment and unresolved exceptions.
An exchange balance answers an account-level question; a deal ledger answers an attribution question. A wallet can contain coins bought manually or by another bot. Give unmatched holdings an “unassigned” row instead of distributing them among open deals until the totals look right.
For the broader distinction between booked results and remaining exposure, use the realized versus unrealized PnL guide. Here the task is to make those numbers traceable to inventory.
Build from fills, then attach deal status
The raw record needs venue, account, symbol, trade ID, order ID, execution time, side, filled quantity, quote amount, fee amount and fee asset. Attach each confirmed fill to a bot and deal. One order may produce several fills, so an order ID alone is not a fill identifier.
For example, Binance Spot's account trade records expose trade and order IDs, quantity, quote quantity, commission and commission asset. These are venue-specific fields to map into a ledger, not evidence of a KLINEO reporting feature.
For each deal, maintain two running balances:
Remaining quantity = opening quantity + confirmed acquisitions − confirmed disposals ± non-trade quantity adjustments
Remaining cost = opening allocated cost + acquisition cost − cost allocated to disposals ± documented cost adjustments
In this worksheet, quote-paid purchase fees enter acquisition cost, while quote-paid sale fees reduce sale proceeds. For a partial sale, allocate cost using the average unit cost immediately before that sale. Other explicit operational conventions can work, but mixing them across rows prevents a meaningful reconciliation.
Keep the lifecycle label beside those balances. “Open” does not mean there have been no realized sales, and “closed” should not silently make an unexplained residual quantity disappear.
A three-deal report with a partial exit
All prices, trades and charges below are hypothetical. Every fill has a flat 1 USDT charge paid in quote currency solely to make the arithmetic auditable. This is not an exchange fee schedule. There are no transfers, rebates or base-asset fees, and all deals begin with zero inventory.
The fill history is:
| Deal | Confirmed activity | Purchase cost including fees | Net sale proceeds |
|---|---|---|---|
| A | Buy 0.010 BTC at 60,000; sell all at 61,000 | 601.00 USDT | 609.00 USDT |
| B | Buy 0.010 at 60,000 and 0.010 at 50,000; sell 0.005 at 58,000 | 1,102.00 USDT | 289.00 USDT |
| C | Buy 0.010 at 50,000; no sale | 501.00 USDT | 0.00 USDT |
| Total | Four purchase fills and two sale fills | 2,204.00 USDT | 898.00 USDT |
Deal B's average cost before its sale is 1,102 ÷ 0.020 = 55,100 USDT per BTC. Its sale consumes 0.005 × 55,100 = 275.50 USDT of allocated cost. The realized result is 289 − 275.50 = 13.50 USDT, and the remaining 0.015 BTC carries 826.50 USDT of cost.
Assume the cutoff valuation is 52,000 USDT per BTC. The joined report becomes:
| Deal and state | Remaining BTC | Remaining cost | Realized result to date | Marked inventory value | Unrealized result |
|---|---|---|---|---|---|
| A, closed | 0 | 0.00 | +8.00 | 0.00 | 0.00 |
| B, open after partial sale | 0.015 | 826.50 | +13.50 | 780.00 | −46.50 |
| C, open | 0.010 | 501.00 | 0.00 | 520.00 | +19.00 |
| Total, USDT except quantity | 0.025 | 1,327.50 | +21.50 | 1,300.00 | −27.50 |
The combined result is 21.50 − 27.50 = −6.00 USDT. Reporting only the fully closed deal shows +8.00. Reporting all realized sales shows +21.50. Neither describes the whole strategy without the open-inventory column.
This marked result includes the fees already paid under the stated allocation convention. It excludes future selling charges and any execution difference from the valuation price. If you add an estimated liquidation-value column, label its assumed exit costs separately rather than presenting it as a confirmed receipt.
Prove the bridge in both directions
Two independent identities help find errors.
First, purchase cost must be either allocated to sold units or still attached to held units:
2,204.00 = 876.50 allocated cost of sales + 1,327.50 remaining cost
Second, compare the result with the cash-and-inventory view:
898.00 net sale proceeds + 1,300.00 marked holdings − 2,204.00 purchase cost = −6.00 USDT
With a hypothetical starting cash balance of 3,000 USDT, ending cash is 3,000 − 2,204 + 898 = 1,694. Add 1,300 of inventory for total marked assets of 2,994. The same 6 USDT reduction appears again.
Remaining cost is therefore not the same as net cash consumed. Here net cash consumed is 1,306 USDT, while remaining cost is 1,327.50; the 21.50 difference is realized gain. Substituting one figure for the other would erase that gain or count it twice.
Keep inventory separate from order commitments
An accepted purchase order can reserve quote cash without adding BTC. A partially filled order has both a filled inventory component and an unfilled instruction. Planned averaging orders that have not been placed belong in a future-budget field.
Binance Spot's account information response separates free and locked balances. Treat those as account balance buckets; do not add locked funds to total cash a second time. The DCA capital-requirements worksheet handles whether remaining instructions can be funded.
Likewise, a cancelled safety order changes an instruction, while inventory already acquired remains in the report. When a price jumps across the ladder, the price-gap and safety-order guide explains why crossed levels cannot substitute for execution evidence.
Turn mismatches into explicit exceptions
Use this small review sheet before accepting the totals:
| Exception | What to check | Reporting treatment until resolved |
|---|---|---|
| Deal quantity exceeds attributed wallet quantity | Missing sale, base-paid fee, transfer or other automation | Flag the shortfall; do not invent a fill |
| Wallet quantity exceeds all attributed holdings | Manual acquisition, deposit or missing purchase | Keep an unassigned quantity row |
| Same fill appears twice | Repeated import or overlapping history pages | Deduplicate by venue/account/symbol/trade identity |
| Bot and exchange snapshots disagree | Different cutoff times or a fill arriving during collection | Reconcile to one cutoff and label stale rows |
| Closed deal retains dust | Rounding, fee denomination or unfilled sale remainder | Retain residual quantity and cost explicitly |
A base-paid purchase fee reduces the quantity received. A fee paid with a third asset needs its own asset debit and a documented conversion convention for a common-currency report. The simple quote-fee example above cannot be copied unchanged.
Non-trade movements also matter. Binance's Spot user-data documentation distinguishes balance updates caused by deposits, withdrawals and account transfers from order updates. A transfer out changes the selected account's holdings; it is not automatically a strategy sale or a realized trading loss.
When a person adjusts or closes exposure outside the bot, reconcile that action before trusting the next summary. The manual-intervention guide covers that operational handoff. An unresolved difference should remain visible with its last verified timestamp, even when every completed-deal row is green.
Method and limits
This AI-assisted article uses primary Binance Spot documentation reviewed on 23 October 2026 and original hypothetical calculations. The report is an educational operational worksheet, not a claim that KLINEO provides this exact export. It does not establish tax cost basis, executable liquidation proceeds, or the completeness of any particular account history.
