Email Pattern Detector

A handful of real addresses is enough to work out how a company writes its emails. Paste your samples below and this free tool infers the domain’s naming pattern — first.last, flast, firstlast and friends — shows how much of your data agrees, and builds a predicted address for a new name. Everything runs in your browser, so nothing you paste is uploaded or stored.

Free tool · nothing is uploaded

Find the domain’s email pattern

Paste sample contacts, get the pattern, the confidence behind it, every conflict, and a ready-to-use address for a new name.

  • 22 pattern formats
  • Confidence score
  • Conflicts shown, not hidden
  • Generates an address

Sample contacts

Best with a name attached: Name <email>, Name, email or email, Name all work. Bare addresses are counted but cannot prove a pattern. Up to 20,000 characters.

Also accepted

Detected pattern

Paste at least two named samples from one domain to detect its pattern.

0 confidence

—

—

for —

  • Samples 0
  • With a name 0
  • Agreement 0%
  • Conflicts 0

0 of 0 samples follow the top pattern

    Ranked patterns

    • No pattern detected yet.

    Each row shows how many named samples reproduce that format. A pattern only appears when a sample actually matched it.

    Sample check

    • Paste samples above to see each one checked line by line.

    Generate an address

    Uses the detected pattern and the domain with the most samples.

    Pick a different format if the samples disagree.

    Generated address

    Add a name to generate an address.

    What is an email pattern detector?

    An email pattern detector works out how one organisation writes the left-hand side of its email addresses. Given a few known contacts from the same domain — say [email protected], [email protected] and [email protected] — it shows that this domain uses {first}.{last}, and that a new person called Dana Whitfield would probably be [email protected].

    The useful part is not the guess itself. It is knowing how much evidence stands behind it. This tool separates the samples that can prove a format from the ones that cannot, counts how many named samples reproduce each format, and reports the winner with a confidence score and every conflicting sample visible.

    It is a pattern tool, not a mailbox checker. It never connects to a mail server, never sends a probe email, and cannot tell you whether a particular address exists.

    How to use this tool

    1. Paste two or more contacts from the same domain into the Sample contacts box. Attach a name to each address wherever you can.
    2. Read the Detected pattern panel: the dominant format, the domain it applies to, and the confidence ring.
    3. Open Ranked patterns to see every format that matched at least one sample, with counts and bars.
    4. Check Sample check. Each line is marked as a match, a different format, a role account, a duplicate, or a line with no name.
    5. Type a new name under Generate an address to see the address the winning format produces. Use the pattern menu to test a different format by hand.
    6. Use Copy address or Copy pattern to take the result with you. Load sample cycles through three worked datasets; Clear starts again.

    Accepted sample formats

    One contact per line. The parser finds the first email address on each line and uses the remaining text as the name.

    Line formatExampleWhat happens
    Name <email>Sarah Jones <[email protected]>Name and address are paired.
    Name, emailSarah Jones, [email protected]The comma after the name is ignored.
    email, Name[email protected], Sarah JonesThe comma before the name is ignored.
    Last, First <email>Jones, Sarah <[email protected]>The two name parts are swapped to first and last.
    email alone[email protected]Counted as a sample but not used to vote, because the name is unknown.
    Role account[email protected]Excluded from voting; shared inboxes do not follow a person’s name.
    Duplicate address[email protected] twiceThe second copy is skipped and reported.

    Leading titles (Mr, Mrs, Ms, Dr, Prof) and trailing suffixes (Jr, Sr, II, PhD, MBA) are removed before matching. Company names ending in Inc, LLC, Ltd, GmbH, Corp, Group or Agency are ignored as names.

    How the pattern is inferred

    For every sample with a usable name, the tool separates the local part (everything before the @) and builds the local part each supported format would produce from that name. The format counts only when its output equals the real local part.

    Names use the first token as the first name and the last token as the surname. Any tokens in between become the middle name, which matters only for the two middle-name formats. Diacritics are folded (José becomes jose), apostrophes are dropped (O’Brien becomes obrien), and remaining punctuation is removed.

    On the address side, a +tag is removed before matching, and a trailing number is tested both with and without the number. Matching ignores case. A local part that differs in any other way — an internal digit, a different separator, an extra segment — does not count.

    The 22 formats tested

    {first} is the first name, {last} the surname, {f} the first initial, {l} the surname initial, {middle} the full middle name and {m} its initial. Examples use Sarah Jones; the last two use Sarah Jane Jones.

    FormatExample
    {first}.{last}sarah.jones
    {f}{last}sjones
    {first}{last}sarahjones
    {f}.{last}s.jones
    {first}_{last}sarah_jones
    {first}-{last}sarah-jones
    {first}sarah
    {last}jones
    {last}.{first}jones.sarah
    {last}{first}jonessarah
    {f}_{last}s_jones
    {f}-{last}s-jones
    {first}{l}sarahj
    {first}.{l}sarah.j
    {last}{f}joness
    {last}.{f}jones.s
    {f}{l}sj
    {f}.{l}s.j
    {last}_{first}jones_sarah
    {last}-{first}jones-sarah
    {first}.{middle}.{last}sarah.jane.jones
    {f}.{m}.{last}s.j.jones

    The table order is also the tie-break order. If two formats reproduce the same number of samples, the one nearer the top is reported first; the other still appears in the ranked list.

    What is counted, and what is not

    • Samples counts unique valid addresses for the domain in the result.
    • Named samples counts the ones that can vote: a first and last name, not a role account, not a duplicate.
    • Bare addresses, role accounts and duplicates are shown in Sample check but do not vote.
    • Multi-domain lists are analysed separately. The ring and the generator use the domain with the most named samples; the other domains appear as pills with their own winning format and status.

    How confidence is calculated

    The ring is not a probability that an address exists. It is a measure of how much your samples support the winning format, scaled for how few samples you supplied:

    confidence = round(100 × (matching named samples ÷ named samples) × min(1, named samples ÷ 5))

    The first fraction is raw agreement. The second factor stops one lucky sample from reading as proof: one sample can reach at most 20, two at most 40, three at most 60, four at most 80, and five or more can reach 100.

    Named samples, all agreeingConfidenceStatus word
    120Weak
    240Mixed
    360Good
    480Strong
    5 or more100Strong

    Status thresholds are fixed: Strong at 80 and above, Good from 60 to 79, Mixed from 40 to 59, Weak from 1 to 39, and No match at 0. Colour and word always appear together.

    Why confidence and agreement differ

    Agreement is the raw share — 3 of 4 is 75%. Confidence applies the sample-size factor, so the same 3 of 4 reads as 60. Both are shown because they answer different questions: agreement tells you how clean this list is, confidence tells you how much to trust the format.

    Worked examples

    These rows come from running the tool on the inputs described. They are not benchmarks from real campaigns.

    InputTop formatConfidenceStatus
    Built-in sample 1: six first.last contacts plus info@{first}.{last}100Strong
    Built-in sample 2: three flast contacts and one first.last{f}{last}60Good
    Built-in sample 3: mixed case and formats across two domains{first}.{last}40Mixed
    One named sample{first}.{last}20Weak
    Two named samples, same format{first}.{last}40Mixed
    Three named samples, same format{first}.{last}60Good
    Four named samples, same format{first}.{last}80Strong

    Agreement was 100% for built-in sample 1, 75% for sample 2 and 50% for sample 3, across 6, 4 and 4 named samples respectively. Those raw shares are also shown in the tool’s Agreement and Conflicts tiles.

    Two lessons are visible. First, a perfect agreement score does not by itself mean high confidence: one sample is still one sample. Second, a real list with one exception still lands at Good, because 75% agreement across four named samples is useful evidence without being certainty.

    Reading the rest of the result

    • Conflicts counts named samples that did not follow the top format. They are not hidden; each one is tagged in Sample check.
    • Domain pills list the domains found, up to six, with a count if there are more. The highlighted pill is the one used for the ring and the generator.
    • Ranked patterns shows every format with at least one match, its count, and its share of named samples.
    • Case style is read from the matching samples. All-lowercase samples produce lowercase output, Capitalized samples produce Dana.Whitfield, and all-caps samples produce DANA.WHITFIELD. Mixed case falls back to lowercase and the generator hint says so.
    • Plus tags and trailing numbers are stripped for matching only. The generated address never invents a plus tag or a number.

    What the tool cannot do

    • Verify a mailbox. There is no SMTP handshake, DNS lookup or network request. A pattern match is not proof that the address is delivered, monitored or even exists.
    • Beat a catch-all domain. Some servers accept every address at the domain. Nothing short of a server-side check can distinguish a real mailbox there, and many providers deliberately make that impossible.
    • Recognise every format. The 22 formats cover common personal-name conventions. Department codes, ticket numbers, UUIDs, non-Latin transliterations and middle-name spellings outside these templates are reported as no match, not guessed.
    • Separate compound surnames. The final token is used as the surname, so van der Berg is treated as first van and surname berg. Hyphens are removed during normalisation, so an address that keeps a hyphen may not match.
    • Handle non-Latin names. Name tokens are reduced to Latin letters and digits. A name that leaves nothing behind is treated as having no usable name.
    • Read multiple addresses on one line. Only the first email address on a line is used. Put one contact per line for reliable results.
    • Guess from bare addresses. A bare address is counted but never votes, because the local part alone cannot tell a first name from a surname.

    If you need certainty, the only honest next step is a verification service that performs server-side checks and respects the provider’s rules. This page does not pretend to replace one.

    Using email patterns responsibly

    A guessed address is still an unsolicited contact. Email outreach is governed by rules that differ by country and by the recipient’s relationship with you — for example GDPR in the EU and UK, and CAN-SPAM in the United States. Keep a lawful basis for contacting business contacts, identify yourself, honour opt-outs, and do not use a pattern tool to build a list you have no right to mail. This paragraph is general information, not legal advice.

    Frequently asked questions

    What is the most common email pattern?

    There is no global standard. {first}.{last} and {f}{last} are familiar formats in B2B contact data, but organisations choose their own conventions and change them after mergers or rebrands. This tool ranks formats by what your samples show, not by worldwide popularity.

    Why is confidence low when every sample agrees?

    Because the score includes sample size. One agreeing sample can reach 20, two can reach 40, three 60, four 80, and five or more 100. That is deliberate: a single match cannot distinguish a real convention from a coincidence.

    Why did my samples match no format?

    Open Sample check. Common causes are a missing surname, a name that does not match the local part, an internal digit, a separator outside the supported set, a company name, or a role account. A line with no name is counted as a sample but cannot vote.

    Does this tool verify that an address exists?

    No. It only compares the text of your samples. It makes no network request, performs no DNS or SMTP check, and cannot see whether a mailbox is active.

    Can I paste only email addresses, without names?

    Yes, but the result will not contain a confirmed pattern. Bare addresses are counted in the Samples tile and listed in Sample check, and the result explains that a full name is needed to score a format.

    Why are some of my lines ignored?

    They are not silently dropped. A duplicate address is skipped and reported, a role account such as info@ is excluded from voting, and a line without a first and last name cannot vote. All of them still appear in Sample check with a tag.

    Can I use this on Gmail or another public provider?

    It will run, but the result describes the naming habits of those individual users, not a company convention. Treat a public-provider pattern as personal, not organisational.

    Is anything I paste uploaded or stored?

    No. The tool is HTML, CSS and JavaScript in the page. There is no server request, account, cookie or local storage, and no data leaves your browser.

    Related tools

    Next step

    Pattern guessing is one small step in a lead-generation system. If you are building outbound at scale, the rest — list quality, targeting, sequences and reporting — is what decides whether it works. See how we build B2B lead generation systems that start from clean data and end with booked calls.