Crypto Trading Journal Spreadsheet: A Free Template, and Where It Breaks

A complete spreadsheet template for journaling crypto trades: the columns, the formulas, and an honest look at where spreadsheets stop working.

Most traders' first journal is a spreadsheet, and that is a reasonable place to start. It costs nothing, you control it, and building it forces you to think about what you actually want to measure. This post gives you a complete template you can copy into Google Sheets or Excel today, and then an honest account of where it will start to fail you, because it will, and it is better to know the failure points in advance.

The columns

One row per completed trade (not per fill; more on that problem later). These 16 columns cover what you need for real review:

ColumnWhat goes in it
Date openedUTC, or you will regret it the first time you trade across midnight
Date closedUTC again
ExchangeBinance, Bybit, wherever the trade lived
MarketBTCUSDT, ETHUSD perp, and note linear or inverse
DirectionLong or short
EntryAverage entry price across all entry fills
ExitAverage exit price across all exit fills
SizePosition size, and be consistent about coin vs contracts
Planned stopWhere your stop was when you entered
Risk ($)What you stood to lose at the planned stop. This is your 1R
FeesTotal, converted to your account currency
FundingNet funding paid or received while the position was open
Net PnLAfter fees and funding, not before
R-multipleNet PnL divided by Risk
SetupA short tag: breakout, sweep, news fade. Keep the list under ten
NotesWhy you entered, in one or two honest sentences, written at entry time

The two columns people skip are Risk and Funding. Skipping Risk means you can never compute R-multiples, which means a $900 win on reckless size looks better than a $400 win on disciplined size. Skipping Funding means your perp trades are quietly misstated, sometimes by more than the price move.

The formulas

Three summary cells turn the log into a review tool. With Net PnL in column M and R-multiple in column N:

Win rate     = COUNTIF(M:M, ">0") / COUNT(M:M)
Profit factor = SUMIF(M:M, ">0") / ABS(SUMIF(M:M, "<0"))
Expectancy (R) = AVERAGE(N:N)

Win rate tells you how often you are right. Profit factor tells you whether being right is paying for being wrong. Expectancy tells you what your average trade earns in units of risk. If you only look at one, look at expectancy.

Add a pivot table on the Setup column and you have per-setup expectancy, which is the single most useful report a journal produces: it tells you which of your setups deserve your capital and which are habits.

Where the spreadsheet breaks

Now the honest part. We built a journaling product, so discount our view accordingly, but these failure points are real and you can verify each one against your own experience.

One trade is many fills. Exchanges report fills, and a single scalp can be six entry fills and four exit fills with fees in two currencies. Turning that into one row with correct average entry, average exit, and total fees is manual work, per trade, forever. Most spreadsheet journals die right here, in the data entry, long before the analysis has a chance to pay for the effort.

Inverse contracts break the formulas. If you trade coin-margined perps, PnL is reciprocal, settles in the coin, and does not equal size times price change. The standard spreadsheet formula is simply wrong for these markets, and wrong in a way that looks plausible.

Funding arrives as its own event stream. Funding hits every eight hours per position, not per trade. To fill the Funding column honestly you have to export a separate funding history and allocate rows to trades by hand.

Multiple exchanges never add up. Each venue exports a different CSV format with different timestamp conventions, fee currencies, and symbol names. The consolidation work grows with every account you open, and the total (the number you actually care about) is always one import behind.

Upkeep loses to a green week. The spreadsheet asks for effort right after a trade closes, when you are either pleased or annoyed and in no mood for clerical work. Most manual journals last about four days. The template above only produces insight if it is complete, and completeness is exactly what manual entry cannot promise.

When the spreadsheet is the right tool

To be fair to it: if you take a few trades a week, on one exchange, in linear or spot markets only, the spreadsheet above will genuinely serve you well, and you should use it. The discipline of writing the Notes column at entry time is worth more than any tool. Plenty of profitable traders never move past this stage, because their volume never makes the data entry painful.

The template stops being the right tool when the fills outrun your patience: more trades, more venues, perps with funding, or inverse markets. That threshold arrives sooner than most people expect.

The alternative is not a fancier spreadsheet

When traders hit that wall, the usual next move is more spreadsheet engineering: scripts, macros, half-automated importers. Some of those work for a while. But the underlying job (pull every fill from every exchange, rebuild round-trip trades, get the crypto math right, keep it current without willpower) is a full software product, and a weekend of formulas will not cover it.

That is the job Viktury does. It connects to your exchanges with read-only API keys or CSV imports, rebuilds your fills into trades with fees and funding attached, and computes every column in the template above automatically, including the R-multiples and per-setup expectancy. The review ritual stays yours; the data entry stops being your job.

Copy the template first. If it holds up for your trading, keep it. If the data entry starts eating your Sundays, the trial is free.