Back to articles
producttools

Opponent profiles: track the players you face in poker

July 12, 2026·8 min read·By GrindLab Team

Opponent profiles: track the players you face in poker

You recognise the name before you even look at his cards. "Him again, third time this week, he calls everything." The problem is that this memory lives in your head, fades between sessions, and never surfaces at the moment you actually need it, the one where you have ten seconds to decide.

GrindLab has a Players page that does this work for you: one profile per opponent, built entirely from the hands you have personally played against him. You check it, set a TYPE, open the detail, and the next time you face him you already know who you're dealing with.

Opponent detail panel in GrindLab: TYPE pill, VPIP by position, hands-played grid and showdown bar


The Players page: an all-time aggregate, not a scan

The Players page shows one row per opponent you have actually faced, aggregated across your full history. Nothing is recomputed on the fly each time you open it: it's an all-time aggregate that updates as you import more hands.

Two ergonomics worth knowing:

  • List or grid. List view is compact, built to scan a lot of names at once. Grid view surfaces each player's TYPE pill, handy for visually spotting your fish and your nits ahead of an upcoming session.
  • Keyset (cursor) pagination. Whether you've crossed fifty opponents or five thousand, scrolling loads the next batch by cursor, not by offset. You never pay the price of a growing history.

The result: a list you can actually browse, not a table that slows down over time.


The TYPE pill: your read, locked in and editable

Under each opponent's name, a pill shows their player type: TAG, LAG, fish, nit, reg, or any other label you choose. It's not an automatically computed stat, it's your diagnosis, set manually and saved.

Why editable rather than automatic? Because typing a player stays a judgement call, not a formula. Two opponents can both show a VPIP of 30 for entirely different reasons (one varies his game by table, the other is mechanically loose). The pill lets you decide, and change your mind the day you sharpen your read or the player's game evolves.

The typical profiles, and how to exploit each

Before setting a TYPE, it helps to know what each label actually means in terms of preflop frequencies and adjustment. Here are the classic benchmarks:

TypeVPIPVPIP-PFR gapProfileExploit
Nit< 18smallUltra-tight range, plays little but strongSteal his blinds wide, fold to his rare aggression
TAG18-25tight (3-6 points)Tight-aggressive, healthy and balanced rangesLittle easy exploit, play solid and look for small edges
LAG25-35tight but high 3-BetLoose-aggressive, wide and applies pressureCall wider in position, don't 4-bet-bluff blindly
Fish / loose-passive> 35wide (15+ points)Enters a lot of pots, rarely raisesValue-bet thinner, cut your bluffs, he pays
Maniacvery highvery wide (VPIP and PFR both high)Hyper-aggressive on every streetLet him bluff, tighten your call-down range to value

These benchmarks line up exactly with what the Lab's villain tracker already shows seat by seat during a hand review: the TYPE pill on the opponent profile, meanwhile, banks that read over time so you don't have to redo it on every hand.


The detail panel: opening the full profile

Clicking an opponent opens a side panel with four blocks, from the most general to the most granular.

Header and summary strip

The pseudo, the editable TYPE pill, and a summary strip that gives you immediate context: this is the entry point of the profile, what you glance at in one second before digging deeper.

VPIP by position

A small bar chart that breaks down the opponent's VPIP position by position. It's the first thing to check after the global VPIP: a player showing 35 in early position and 35 on the button has no positional sense, a real exploitable leak. A normal player climbs progressively from UTG toward the button.

Hands played: the combo grid

A range-style grid showing the combos you've actually seen him play, with an occurrence count and a colour intensity proportional to it. This isn't a theoretical estimate, it's concrete: the most intense cells are the hands he's shown down or pushed most often against you. If you want to see how this combo-level read connects to combinatorics, the article on poker combinatorics breaks down the mechanics behind these cells.

Showdown composition bar

A bar that splits what the opponent has shown down: strong value, marginal hands, bluffs that didn't get there. It's the most actionable summary on the profile: if his bar skews heavily toward value, you know his aggressive lines aren't built to bluff.

Read the opponent from their stat line

Scenario 1
Villain: VPIP 44 / PFR 9 / 3-Bet 2, over 300 hands.
What profile, and what adjustment?
Scenario 2
Villain: VPIP 23 / PFR 19 / 3-Bet 8, over 1,200 hands.
What profile?
Scenario 3
Villain: VPIP 16 / PFR 5 / 3-Bet 1, over 250 hands.
How do you exploit him?

The point that matters: it's your data, and yours alone

One thing needs to be crystal clear, because the question comes up often: the opponent profile is not a shared datamining database. Nothing shown here comes from another player, from community scraping, or from a third-party feed bought somewhere.

Every number, every cell in the combo grid, every showdown bar is computed only from the hands you personally played against that opponent. If you've crossed him twelve times in a year, the profile reflects those twelve hands, not the thousand others he's played elsewhere against other players.

This distinction matters, both practically and legally. Practically, because it means your opponent profile is honest: it never claims to know more than what you actually lived through. Legally, because large-scale community datamining is banned by nearly every room, while your own hand history is yours to keep without restriction. GrindLab builds on what you're entitled to keep, much like the live HUD that also only shows stats pulled from your own tables.

It also means the profile can never over-promise. A player who has played a million hands online across a dozen sites might look completely unfamiliar to your opponent profile if you've only crossed him twice, and that's the correct behaviour: the fiche never fills in gaps with assumptions borrowed from elsewhere. What you see is exactly the size of your own experience against him, no more, no less. That honesty is part of what makes the read trustworthy at the table.

Calculate hand equity, pot odds, and compare ranges with GrindLab's free equity engine

Try it free →

How to type an opponent without getting it wrong

Three habits before locking in a TYPE pill:

  1. Check the hand count first. A 45 VPIP over eight hands means nothing. The same number over three hundred hands is a solid leak. The profile always shows the sample, read it before you conclude.
  2. Cross VPIP-by-position with the VPIP-PFR gap. VPIP alone roughly sorts loose from tight. The gap with PFR adds the aggressive/passive dimension, and the position breakdown reveals whether the player has a real positional strategy or just plays flat.
  3. Let the TYPE move. A player who was a fish six months ago may have improved. A TAG can tilt one session and turn temporarily loose. The pill isn't carved in stone, it re-adjusts.

Once the TYPE is set, the real value shows up when you translate it into a decision. That's the natural bridge to GTO vs exploitative play: the opponent profile gives you exactly the raw material to step away from a balanced default strategy and play against this specific player, not a theoretical one.


Fitting into the rest of the tracker

The opponent profile doesn't live in isolation. It complements two other pieces of the GrindLab tracker that share the same data philosophy: only your own hands, nothing external.

  • The Lab's villain tracker shows VPIP, PFR and 3-Bet right at the seat during a hand review, with a strict time filter (only hands played before the analysed spot). It's the "at decision time" version of the same data.
  • The live HUD informs you while you play, table by table.
  • Your own Stats page works as a mirror: it shows your own frequencies, while the opponent profile shows everyone else's.

Together these pieces form what the GrindLab tracker has been aiming at from the start: connecting what you observe at the table to what you can analyse afterward, without ever leaving the same product.


Conclusion

A player's memory of his opponents is one of the most under-exploited edges in online poker: you cross the same names dozens of times, but without a tool, that information leaks away between sessions. GrindLab's Players page banks it: an all-time row per opponent, a TYPE pill you set and adjust, a detail panel that goes from VPIP by position down to the combos you've actually seen him play.

The point to keep in mind: all of it comes from your own hands, scoped to your account. No shared database, no external datamining, just your personal read, built honestly.

Open the Players page, find an opponent you cross regularly, set his TYPE, and check his profile before your next session against him. Then go check a recent session against him in My Hands, or bring the profile straight into the Lab to put a number on the adjustment you're planning.

The method in 6 steps

  1. Open the Players page

    From the menu, go to the Players page. The all-time list loads, one row per villain you've already faced, with cursor-based pagination as you scroll.

  2. Switch between list and grid view

    Pick the layout that suits your browsing: a compact list to scan a lot of names, or a grid to spot profiles visually via their TYPE pill.

  3. Set or adjust an opponent's TYPE

    Click the TYPE pill on a row and choose TAG, LAG, fish, nit or reg based on your read. The tag is saved and stays visible the next time you cross that player.

  4. Open the detail panel

    Click on an opponent to open the side panel. You'll find the header, the summary strip, VPIP by position, the hands-played grid, and the showdown composition bar.

  5. Read the VPIP-by-position and the combo grid

    Check whether the opponent gets looser in late position (normal) or plays flat across every position (an exploitable leak). The combo grid shows you exactly which hands you've seen him show down or push.

  6. Translate the profile into a range in the Lab

    Once your read is set, open a hand against that player in the Lab and adjust his continuing range based on the TYPE and the tendencies read off his profile. The EV verdict recomputes on the range you set.

Frequently asked questions

What is the Players page in GrindLab?
An all-time list with one row per opponent you have actually faced, built from your own imported hands. You browse it as a list or a grid, with keyset (cursor) pagination: scrolling loads the next batch without ever reloading a full offset. No third-party database, only your own history.
What is the TYPE pill (TAG, LAG, fish, nit) for?
It's a manual label you place on each opponent to lock in your read. Unlike the automatically computed stats, TYPE is editable in one click and persists: you change it the day the player evolves or you sharpen your read. It's your player memory, externalised.
What does an opponent's detail panel show?
A header with the pseudo and the editable TYPE pill, a summary strip, a small VPIP-by-position bar chart, a grid of the combos you've actually seen him play (occurrence count and colour intensity), and a showdown composition bar. Everything is computed on the hands where you and he sat at the same table.
Do these stats come from a shared datamining database?
No, and that's the important point. Every number on the opponent profile is scoped to your account: only the hands YOU played against that player. It's not a community aggregate, not scraping, not a third-party feed. It's your personal read, honest and legal, built on your own history.
How is the opponent profile different from the live HUD or the Lab's villain tracker?
Same data philosophy (your history, nothing else), three different uses. The live HUD informs you at the table while you play. The Lab villain tracker shows VPIP/PFR/3-Bet right at the seat during a hand review. The Players page is the global view outside a hand: you check it to prep for a session or dig into a profile over time.
Do I need a large sample of hands for the profile to be useful?
As with any poker stat, the bigger the sample, the more reliable the VPIP-by-position and the combo grid get. On a player you rarely cross, the profile still exists but stays indicative. Always check the hand count before locking in a final TYPE.

Practice with GrindLab's Equity Calculator

Analyze any hand, see your exact equity in real time, and build the instincts to make faster decisions at the table.

Try It Free →