To track poker like a pro, build one spreadsheet with three layers: a Session log (profit, fees, stakes), an optional Hands/Rounds log (tagged events), and a Dashboard that auto-calculates ROI, running P/L, moving averages, and losing-streak length. This works in Excel or Google Sheets and stays reliable if you standardize naming, IDs, and validation.
Core metrics to capture every session
- Session ID (unique, stable key used across sheets)
- Date/time + timezone (start/end, or a single timestamp)
- Game type + format (cash/tournament, NLH/PLO, online/live)
- Stakes / buy-in / entries (one consistent definition per format)
- Net result (profit after fees, tracked separately from rake/tips)
- Hours played (for hourly rate and volume sanity checks)
- Tags (tilt, table quality, travel, fatigue, experimental lines)
Spreadsheet blueprint: columns, granularity and naming conventions
This setup suits intermediate players who want consistent ROI and streak tracking without relying on a paid โปรแกรมติดตามผลโป๊กเกอร์ ROI. Skip a hand-level spreadsheet if you play very high volume online and already have a tracker export; you'll waste time duplicating data and reduce accuracy.
- Granularity recommendation: always log sessions; log hands/rounds only when you review, not during play.
- Naming conventions: use stable codes (e.g.,
FMT,GAME,STAKE) and data validation lists to avoid spelling variants. - Sheets: Sessions, Hands (optional), Lists (drop-down values), Dashboard.
Compact structure you can copy
| Sheet | Column | Type | Example | Notes / formula idea |
|---|---|---|---|---|
| Sessions | SessionID | Text | 2026-06-21-LIVE-001 | Primary key; never edit once created |
| Sessions | StartTime / EndTime | DateTime | 2026-06-21 19:10 | Hours = (End-Start)*24 |
| Sessions | Format | List | Cash | Validated list (Cash, MTT, SNG) |
| Sessions | BuyIn | Number | 2000 | Cash: bankroll in; MTT: entry fee+prize pool portion (define once) |
| Sessions | Fees | Number | 200 | Rake, tips, travel, app fees-keep separate |
| Sessions | CashOut / Winnings | Number | 2600 | Cash: cash out; MTT: payout |
| Sessions | NetProfit | Formula | 400 | Cash: =CashOut-BuyIn-Fees (adapt per format) |
| Hands (opt.) | HandID | Text | 2026-06-21-LIVE-001-H012 | Stable ID for review notes and filters |
| Hands (opt.) | Tag | List | River call | Tags enable later analysis without long text |
If you're searching for a ตารางบันทึกมือโป๊กเกอร์ ดาวน์โหลด, treat this table as your template: paste the headers into a new file, then adapt the definitions (especially BuyIn/Fees) to your games.
Automated formulas: ROI, expectancy and running P/L
You need a spreadsheet app (Excel or Google Sheets), a consistent currency setting, and permission to use basic functions (SUMIFS, FILTER, QUERY, IFERROR). If you also use a ซอฟต์แวร์วิเคราะห์สถิติโป๊กเกอร์, keep this sheet as the "source of truth" for bankroll movement and fees.
- Running P/L (cumulative): a column in Sessions that sums NetProfit up to the current row (sort by StartTime first).
- ROI per session (generic):
ROI = NetProfit / Cost, where Cost is clearly defined:- Cash: many players use average bankroll at risk (hard), so prefer hourly and bb/100 equivalent in a tracker; for spreadsheets, keep ROI optional.
- Tournaments: Cost = BuyIn + Fees is straightforward.
- Expectancy (EV proxy): in a spreadsheet without hand equity, use average NetProfit and moving averages as operational expectancy. Keep it labeled as "observed" not "true EV".
Formula patterns (tool-agnostic)
- Total Profit:
=SUM(Sessions!NetProfit) - Total Cost (MTT-style):
=SUM(Sessions!BuyIn)+SUM(Sessions!Fees) - Overall ROI (MTT-style):
=IFERROR(TotalProfit/TotalCost,0) - Profit by tag (Sessions):
=SUMIFS(NetProfit, Tag, "Tilt")(or a cell reference) - Last N sessions average (moving average): average of the last N NetProfit values using FILTER/TAKE (Google Sheets) or OFFSET (Excel)
Recording hands/rounds: timestamps, identifiers and tagging
-
Create validated drop-down lists first.
Make a Lists sheet with allowed values for Format, Game, Stakes, Venue, and Tags. This prevents silent data fragmentation (e.g., "MTT", "Mtt", "Tournament").
- Keep Tags short: 1-3 words (e.g., "3bet pot", "Missed value", "Table soft").
- Add a "ReviewPriority" list: Low/Med/High.
-
Generate stable IDs you never re-use.
SessionID should be unique and human-readable. HandID should be derived from SessionID plus a running index, so you can filter all hands from a session instantly.
- Example SessionID:
YYYY-MM-DD-ONLINE-###orYYYY-MM-DD-LIVE-###. - Example HandID:
{SessionID}-H001,-H002...
- Example SessionID:
-
Log the session immediately after play.
Enter StartTime, EndTime, BuyIn, Fees, CashOut/Winnings, and 1-3 Tags while details are fresh. Avoid editing later; instead add a "CorrectionNote" if needed.
-
Capture only review-worthy hands/rounds.
In the Hands sheet, record timestamp (approx is fine), position, stack depth, action summary, and a single decision point you want to study. Don't try to recreate every hand; you want quality signals, not noise.
- Use Tag + Street (Pre/Flop/Turn/River) + OpponentType (Reg/Rec/Unknown).
- Add "Confidence" (High/Medium/Low) to separate facts from memory.
-
Reconcile money fields with a quick control.
Before you close the file, confirm NetProfit matches your real bankroll movement for that session. If you use cash, reconcile to wallet/cashbox; if online, reconcile to cashier history.
Fast mode
- Session only: log Start/End, BuyIn, Fees, CashOut/Winnings, NetProfit.
- Tag quickly: choose up to 2 Tags + ReviewPriority.
- Auto metrics: let the sheet compute Running P/L and ROI (if applicable).
- One highlight: add at most 1 Hand note when something feels unclear.
Quantifying losing streaks: moving averages and run-length analysis
- Sessions are sorted by StartTime ascending (no gaps from wrong timezone or text dates).
- NetProfit uses one consistent sign convention: wins positive, losses negative.
- Fees are not mixed into BuyIn or CashOut; they are separate and included in NetProfit.
- A "WinFlag" exists (e.g., 1 if NetProfit > 0, else 0) to support streak logic.
- A "LossFlag" exists (e.g., 1 if NetProfit < 0, else 0) so breakeven doesn't inflate streaks.
- Current losing streak updates correctly when a win occurs (streak resets to 0 or 1 by your chosen definition).
- Moving average window (e.g., last N sessions) is fixed and documented on the Dashboard.
- Dashboard totals match simple manual spot-checks on a small date range.
Visualization: conditional formatting, sparkline tables and summary charts
- Mixing currencies or stake units (THB vs another currency, or cash vs tournament costs) makes ROI meaningless-separate dashboards per currency/format.
- Charting unsorted data creates misleading "zigzags" that look like volatility; sort by time before plotting.
- Using color without rules (manual coloring) breaks later; use conditional formatting tied to NetProfit and streak length.
- Over-tagging (too many custom tags) reduces signal; keep a small controlled vocabulary and retire unused tags.
- Counting breakeven as a loss without deciding it explicitly; define how 0 should behave in streak logic.
- Plotting ROI for cash sessions with inconsistent "cost" definitions; prefer hourly + running P/L for cash.
- Letting notes columns grow unchecked; long text slows filtering-use short tags plus a separate "Review" note field.
Workflow: data entry, validation, backups and iterative improvement
If you want alternatives to a pure spreadsheet, choose based on your volume and whether you need automatic hand import. These can complement (not replace) your bankroll sheet-especially for เครื่องมือจัดการแบงค์โป๊กเกอร์ และคำนวณ ROI needs.
- Spreadsheet + weekly review ritual: best when you play live or mixed formats and want full control over definitions and fees.
- Tracker software for hands + spreadsheet for bankroll: ideal for high-volume online; the tracker analyzes hands, the sheet stays clean for bankroll and ROI consistency.
- Simple notes app during play + later transcription: good when you can't open a spreadsheet; capture HandID-style markers and tags, then enter data at home.
- Shared sheet with a backer/partner (view-only dashboard): useful if you need accountability; lock raw logs and only allow edits in an "Intake" tab.
Technical clarifications and common edge cases
How should I define ROI for cash games in a spreadsheet?
Cash "cost" is ambiguous, so ROI is easy to mislead. Prefer hourly profit and running P/L for cash; use ROI mainly for tournaments where cost is clearly BuyIn+Fees.
What if I rebuy or add-on multiple times in one session?
Record each entry as a separate "Cost" line item or sum into BuyIn with a "Entries" count. The key is that NetProfit reconciles to your real bankroll change.
Do I need to record every hand to measure a losing streak?
No. Losing streaks are session-level outcomes; hands are only for learning. Track streak length using the ordered NetProfit series.
How do I treat breakeven sessions in streak calculations?

Decide one rule and keep it consistent: either treat 0 as neutral (streak unchanged) or as non-win (streak increases). Document the rule on the Dashboard.
My timestamps are messy (live sessions, travel, late-night play). What's the safe approach?
Use a single timezone and store StartTime/EndTime as true datetime values, not text. When unsure, record the date plus an approximate time and add a note.
Can I combine live and online results in one chart?

Yes for running P/L if currency matches, but keep separate filters for Format/Venue. For analysis like ROI, split by format to avoid mixing incompatible cost structures.
Is a Thai-language sheet name or tags okay?
Yes; just keep the controlled lists consistent to avoid duplicates. It's fine to label the file as สเปรดชีตบันทึกผลโป๊กเกอร์ and keep Tags bilingual if that helps your review flow.


