// m1 import

Your M1 Trading Journal

Journal your M1 Finance trades without re-typing them. Download the Activity export, drop the CSV in, and it's recognized on upload — every fractional fill priced from the cash it actually moved, and every cash row booked as what it is.

One file in · stocks & ETFs, fractional · 100% free

// how-to-export

From your M1 activity to your journal

Four steps, about two minutes.

  1. 01

    Download your Activity export

    In M1, open your account activity and export it. You get a CSV named Activity with the date in the filename — the transaction history the platform hands out, and the one you want.

  2. 02

    Take the whole period

    M1 fills pies in small slices, so a month is many rows. Export the full range rather than a sample — the more complete the file, the more exactly your positions reconstruct.

  3. 03

    Drop the file into the Import Wizard

    Settings → Import Data, drag the file in. It's identified as M1 automatically from its columns and their contents — no mapping step, no cleanup.

  4. 04

    Preview & commit

    See every trade before anything is saved. Duplicates are flagged, anything the file can't answer for is itemized, then trades post to the double-entry ledger.

// auto-detected

Small slices, added up exactly.

An M1 Activity export is mostly fractional fills, mixed in with six kinds of cash. The tricky part is the amount column: it's signed one way on trades and the other way on cash. TickerScribe re-emits every row on one convention, so a buy never books as money coming in.

Activity.csvM1 · auto-detected
Date,Posted Date,Symbol,Description,Transaction Type,Amount,Units,Unit Type,Unit Price,Security Id,Security Id Typecolumns mapped
"Jun 3, 2026",…,VTI,4.28150 shares of VTI purchased.,PURCHASED,$1240.00,4.28150,SHARES,$289.62,…stock · buy
"Jun 9, 2026",…,VTI,1.10000 shares of VTI sold.,SOLD,-$322.19,-1.10000,SHARES,$292.90,…stock · sell
"Jun 11, 2026",…,SCHD,Dividend of … $6.41 received.,DIVIDEND,$6.41,--,CURRENCY,--,…cash · dividend
"Jun 12, 2026",…,,ACH deposit of $900 completed.,TRANSFER,$900.00,--,CURRENCY,--,,cash · deposit
"Jun 15, 2026",…,,M1 Platform Fee,SRVCHG,-$3.00,--,CURRENCY,--,,cash · fee

Stocks & ETFs·The per-share price comes from the cash divided by the units, not the rounded price column.

What comes acrossFrom one file

Fractional fills, at five decimals

M1 is a pie and auto-invest platform, so nearly every fill is a fractional notional order. Quantities carry five decimal places and land at that precision, which is what lets a position built from dozens of tiny buys reconstruct exactly rather than approximately.

One sign convention, across the whole file

M1's amount column is signed like the shares on a trade row and like the cash flow on a cash row — so a buy reads positive and a deposit reads positive, meaning opposite things. Hand that to a generic mapper and every trade books inverted. Each row is re-emitted on one convention instead.

The exact price, from the cash

The stated unit price is rounded to two decimals and isn't a rounding of the cash divided by the units. Since quantities carry five decimals, dividing the amount by the units gives the exact per-share price — so cost basis matches the money that actually moved.

The ticker, not the CUSIP

M1 carries both, and the dividend text quotes the CUSIP too. Reading the wrong one splits a single holding into two securities from one upload. The ticker column is the only one read, so a symbol stays a symbol.

Cash, sorted six ways

Deposits and withdrawals, dividends, margin interest, the platform fee, transfer legs, and securities-lending interest each land as what they are. A reversed dividend keeps its sign rather than posting as income, and withholding tax doesn't become a withdrawal.

Transferred-in holdings, flagged not fudged

The export records the cash legs of an incoming ACAT transfer but never the shares received, so those holdings have sells with no opening lot in the file. Those surface as ordinary needs-position warnings that name the cause, and you can add the opening basis yourself.

Two minutes, one CSV

Your whole M1 history, in one place

No credit card required. Download the Activity export, drop it in — every fractional fill comes across at the price it actually paid.

Frequently Asked Questions

Is TickerScribe really free?
Yes — completely free, no credit card, no trade caps. Import your full M1 activity history, journal every fill including the fractional ones, and keep ledger-accurate P&L without paying anything.
Which M1 export do I need?
The Activity export — the transaction history you download from your M1 account. It arrives as a single-table CSV with the header on the first row. Drop it in as-is and TickerScribe recognizes the layout and maps every column for you.
Do fractional shares import correctly?
Yes, and they're the normal case here. M1 is a pie and auto-invest platform, so nearly every fill is a fractional notional order. Quantities carry five decimal places and come across at that precision, so a position built from dozens of small buys reconstructs exactly.
Does M1 support options?
M1 doesn't offer options, so its Activity export contains equities and cash only — share fills, dividends, transfers, interest, and fees. If you trade options at another broker, import those separately; the journal keeps both in one account.
Why are some of my sells flagged as having no position?
Because M1's export records the cash legs of an incoming ACAT transfer but never the shares received. A holding that arrived that way has sells in the file with no opening lot behind them. The preview names the cause, and you can add the opening position with its transferred basis.
Why don't I see commissions on my M1 trades?
M1 charges nothing per fill and bills its platform fee as a separate cash row, which imports as a fee. Nothing is written to the commission field, because "the file states no fee for this fill" and "this fill was free" are different claims and the journal shouldn't conflate them.