> ## Documentation Index
> Fetch the complete documentation index at: https://help.pipelime.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Smart Daily Limit: how your sending limit is calculated

> Where the number in Daily Usage comes from, the order it is worked out in, and every state the Smart Limit panel can show.

export const Screenshot = ({id, alt, caption, frame = 'browser', url, marks = [], lang = 'en', workspace = 'northwind-outbound'}) => {
  const src = `/images/screenshots/${lang}/${id}.png`;
  const chrome = url ? `app.pipelime.ai/${workspace}${url}` : 'app.pipelime.ai';
  return <figure className={`pl-shot pl-shot--${frame} not-prose`}>
      <div className="pl-shot__frame">
        {frame !== 'bare' && <div className="pl-shot__bar">
            <span className="pl-shot__dots">
              <span className="pl-shot__dot" />
              <span className="pl-shot__dot" />
              <span className="pl-shot__dot" />
            </span>
            <span className="pl-shot__url">{chrome}</span>
          </div>}
        <div className="pl-shot__media">
          <img src={src} alt={alt} loading="lazy" />
          {marks.map(mark => <span key={mark.n} className="pl-shot__mark" style={{
    left: `${mark.x}%`,
    top: `${mark.y}%`
  }} aria-hidden="true">
              {mark.n}
            </span>)}
        </div>
      </div>
      {caption && <figcaption className="pl-shot__caption">{caption}</figcaption>}
    </figure>;
};

Smart Daily Limit sets each mailbox's daily send limit for you (from how long the account has been
here, the deliverability its warm-up reports, and how far into its ramp it is) instead of a fixed
number you type in. An hourly pass revisits that number for every account with a warm-up linked.

<div className="pl-availability">
  <div className="pl-availability__row">
    <div className="pl-availability__label">Where</div>
    <div className="pl-availability__value"><span className="pl-path">Integrations<span className="pl-path__sep">→</span>Integrations<span className="pl-path__sep">→</span>Email Accounts</span></div>
  </div>

  <div className="pl-availability__row">
    <div className="pl-availability__label">Your role needs</div>
    <div className="pl-availability__value">Read access to Email Accounts <code>read-senders</code>. Admin, Member and Viewer have it by default.</div>
  </div>

  <div className="pl-availability__row">
    <div className="pl-availability__label">To create or change</div>
    <div className="pl-availability__value"><code>create-senders</code> to add one, <code>update-senders</code> to change one, on top of the permission above.</div>
  </div>

  <div className="pl-availability__note">If you cannot find this in your sidebar, your workspace may have a custom menu configuration. Contact support and we will check it for you.</div>
</div>

That number is the right-hand half of the **Daily Usage** column on Email Accounts: today's sent
count over the current limit. The lightning icon beside it opens **Smart Limit Status**, the panel
that explains where the limit came from. On a narrow screen the breakdown opens in a small dialog in
the middle of the screen, with a close button in its heading, rather than in a panel anchored to the
icon. Hovering the icon says whether the feature is on for that account: **Smart Daily Limit
Active** or **Smart Daily Limit Disabled**.

<Screenshot id="email-accounts/smart-daily-limit--active" frame="bare" alt="The Smart Limit Status panel: a chip reading Active beside the title, the current daily limit, two deliverability tiles for Gmail and Outlook, the matched rule with its base limit, a ramp-up bar labelled with a week number, and the calculated limit in green" caption="Every box in the panel is one step of the calculation, in the order the engine runs them." marks={[{ n: 1, x: 86, y: 5 }, { n: 2, x: 50, y: 36 }, { n: 3, x: 50, y: 68 }]} />

The chip (1) names the step the calculation reached. The deliverability tiles (2) are what the
warm-up network reports for this mailbox, and they are what chooses the rule. The green figure (3)
is what the engine arrived at: the account's stored limit only catches up on the next hourly pass.

## How it behaves

### The engine stops at the first step that applies

For one mailbox, in this order:

1. Smart Limit is off for this account. Nothing is calculated, and the stored limit is left alone.
2. The account is still in quarantine. The limit is 0: no campaign email at all.
3. The account has no warm-up linked. Nothing is calculated.
4. The deliverability scores cannot be read. Nothing is calculated.
5. No rule matches the scores. Nothing is calculated.
6. A rule matches. Its limit is put through the ramp, then the day's variation, and that is the
   number.

Only steps 2 and 6 produce a figure. At every other step the engine stops where it is and the
stored limit stays exactly as it was, which is why an account can sit at a number for weeks
without anything being wrong with it. The panel always names the step it stopped at.

### A new mailbox sends nothing at all for its first 30 days

Quarantine is checked before deliverability, before the rules, before everything except the on/off
switch. While an account is inside it the calculated limit is exactly 0, and the panel replaces the
body with **Quarantine Period**: a progress bar, how many of the days are done, how many are left,
and the line that the daily limit is 0 during quarantine.

The clock is the age of the account here (the day you connected it), not the age of the mailbox at
its provider and not the day its warm-up started. A mailbox you have owned for years starts its 30
days from the day you add it. [Quarantine and ramp-up](/en/email-accounts/quarantine-and-ramp-up)
covers that window on its own.

When an account finally leaves quarantine and gets a limit above 0, the workspace gets a
notification and an entry in the activity feed. You do not have to watch for it.

### Deliverability picks the rung

Once out of quarantine, the engine asks the warm-up network how this mailbox is delivering and gets
back two figures, shown in the panel as **Deliverability Scores** under **Gmail** and **Outlook**.
Some warm-up sources report a single overall figure rather than one per provider; where that is the
case both tiles show the same number, which is correct rather than a display fault.

Those two scores are then matched against a ladder of rules. Each rule is a band (a floor or a
ceiling on the lower of the two scores, the higher of the two, or both), and it carries one daily
limit. The ladder is walked in priority order and the first rule that matches wins; the panel names
it under **Matched Rule** and prints its base limit. Today the top of the ladder is 14 emails a day,
so a mailbox delivering well everywhere is not going to be given a number in the hundreds.

Two things about that box are worth knowing. The rule names are written for the people who maintain
the ladder, so they read like `A1 - Both providers >= 90%` and stay in English. And the ladder
itself (every band, every limit, every priority) is set for the whole platform, not by your
workspace: there is no screen in the app where you can edit it.

### The ramp releases that number over the first weeks

The rule's limit is not handed over all at once. The first week out of quarantine runs at 25% of it,
and each further week adds another 25%, so the fourth week is the first at the full amount. The
panel shows this as **Ramp-up Progress** with the week number and the percentage, and it reads
**Ramp-up complete** once the account is at 100%.

The multiplied figure is rounded down, which is why a low rung early in the ramp can still work out
at nothing.

### The last step is a small day-to-day variation

After the ramp, the number can be nudged by a percentage so that a mailbox does not send exactly the
same count every single day. The nudge is fixed for a given account for the whole day, so the limit
does not wander while you watch it. It can never lift a limit of 0, so a quarantined account cannot
be nudged into sending. And the size of the variation is a platform setting, off unless PipeLime
turns it on.

### It is recalculated every hour, not when you look at it

A scheduled pass runs once an hour and writes the new limits. It only runs at all while warm-up is
switched on for the platform, and it does not look at every account. Three kinds are left out before
anything is calculated: archived accounts, accounts with Smart Limit off, and accounts with no
warm-up linked. That third one is the one to remember, because a mailbox with no warm-up is the
ordinary case: the hourly pass never loads it, so its limit is never moved by this feature at all.

Of the accounts it does load, it writes only the ones the engine produced a figure for. A breakdown
that stops at a failed deliverability read or at no matching rule produces nothing, and nothing is
written. When the recalculated number is the same as the stored one (which is the usual case for a
settled account), nothing is written either, so the limit does not churn during the day.

The panel is the exception: opening it works the number out there and then instead of reading the
stored one. That is why **Calculated Limit** can differ from **Current Daily Limit** for up to an
hour after something changes. The two agreeing is the normal state; the two disagreeing means the
hourly pass has not caught up yet.

### Turning it off freezes the number and hands it to you

An account you connect starts with Smart Limit on, so this is a decision you make later, if at all.

The switch at the bottom of the panel reads **Disable Smart Limit** while the feature is on and
**Enable Smart Limit** while it is off. Turning it off does not change the limit: it stops the
hourly pass from changing it, so the account keeps whatever number it was last given until you set
one yourself. Turning it back on lets the next pass move it again.

Two details catch people out. The panel does not redraw when you flip the switch: the switch itself
moves and a confirmation appears, but the chip and the boxes above it still show the reading taken
when you opened the panel. Close it and open it again for the new state. And the switch is only
there for a role that can change email accounts: a read-only role sees the whole breakdown with no
control under it.

Once Smart Limit is off, the number is yours to set: on one account through **Edit**, or on several
at once through **Edit Limits** on the selection bar, where **Smart Daily Limit** and
**Daily Email Limit** sit in the same dialog. While the smart toggle is on there, the limit field is
disabled and reads **Automatically managed by Smart Daily Limit**, and the dialog sends no limit at
all. The same bar carries **Enable Smart Limit** and **Disable Smart Limit** for doing it to many
accounts without opening each panel.

Turn Smart Limit off first, in either place. A number you type into **Edit** while the feature is
still on is overwritten as soon as the engine has a figure to write: the first hourly pass in which
a rule matches for that account, or in which the account is still inside quarantine and the figure is
0\. In the states where the engine produces nothing, including the common no-warm-up one, the pass
leaves the account alone and your number stays. Turning Smart Limit off takes the account out of the
hourly pass altogether, so you do not have to work out which of those you are in.

Whatever the limit is, warm-up email does not count against it. The limit governs campaign email.

### On, but not doing anything

The most common state on a real workspace is not a calculation at all: Smart Limit is on, and there
is nothing for it to work from. The panel says so in an amber banner above the breakdown (Smart
Limit is enabled but not taking effect), and the chip reads **No Warmup**.

<Screenshot id="email-accounts/smart-daily-limit--no-warmup" frame="bare" alt="The Smart Limit Status panel with a No Warmup chip and an amber banner saying Smart Limit is enabled but not taking effect, and a line saying this account has no active warm-up" caption="Nothing is wrong with the account. There is simply no deliverability to calculate from." />

The banner has two versions, and they mean different things. One says the account has no warm-up at
all; the other says its warm-up is paused or expired. The second can appear next to an **Active**
chip: the engine still gets scores and still produces a number, but the warm-up behind them has
stopped, so the number is running on stale ground. Either way the fix is the same: start or resume a
[warm-up](/en/email-accounts/email-warm-up) for that mailbox.

### What each chip means

The chip in the top right is the whole state in one word.

| Chip              | What it means                                                                                                    |
| ----------------- | ---------------------------------------------------------------------------------------------------------------- |
| **Active**        | A rule matched and the engine produced a number. The panel shows the full breakdown.                             |
| **In Quarantine** | The account is too new. The limit is 0 until the window closes.                                                  |
| **Disabled**      | Smart Limit is off for this account, so the limit is whatever you set.                                           |
| **No Warmup**     | Smart Limit is on but the account is not linked to a warm-up, so there is nothing to calculate from.             |
| **Fetch Error**   | The deliverability scores could not be read this time. Usually temporary; the limit is left alone.               |
| **No Rule Match** | The scores came back but fell outside every band on the ladder. The panel prints both scores so you can see why. |

Two more panels have no chip of their own. If the request for the breakdown itself fails, the panel
shows only **Could Not Fetch Data**. And **No Rule Matched** is the body that goes with the
**No Rule Match** chip, naming the two scores that matched nothing.

In every state that has a chip, two things are always there: **Current Daily Limit** at the top
(the number the account is actually running on, in **emails/day**) and **View capacity timeline** at
the bottom, which opens [this account's capacity timeline](/en/email-accounts/capacity-timeline).

<Screenshot id="email-accounts/smart-daily-limit--disabled" frame="bare" alt="The Smart Limit Status panel with a Disabled chip, the current daily limit, a grey box headed Smart Limit Disabled explaining that the daily limit is managed manually, and the Enable Smart Limit switch at the bottom" caption="With Smart Limit off the panel calculates nothing at all. It only reports the number you are running on." />

## Limits

|                                                                        |                                                                                                                 |
| ---------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
| Where it lives                                                         | The lightning icon in the **Daily Usage** column, one per account                                               |
| Quarantine                                                             | The first 30 days after the account is added here, counted from that day                                        |
| Limit during quarantine                                                | 0: no campaign email at all                                                                                     |
| Ramp                                                                   | 25% of the matched rule's limit for the first week out of quarantine, another 25% each week after, rounded down |
| Highest limit on the ladder today                                      | 14 emails a day                                                                                                 |
| Who sets the ladder, the quarantine length, the ramp and the variation | PipeLime, for the whole platform. A workspace cannot change any of them                                         |
| Recalculation                                                          | Once an hour, and only while warm-up is switched on for the platform                                            |
| Accounts the hourly pass never loads                                   | Archived accounts, accounts with Smart Limit off, and accounts with no warm-up linked                           |
| Accounts it loads but does not write                                   | Any whose breakdown stops before a figure: deliverability unreadable, or no rule matched                        |
| Turning it off                                                         | Leaves the current number in place; the hourly pass stops loading the account                                   |
| Who can turn it on or off                                              | A role that can change email accounts. Read-only roles see the breakdown without the switch                     |
| Warm-up email                                                          | Does not count against the daily limit                                                                          |

## Related

<CardGroup cols={2}>
  <Card title="Quarantine and ramp-up" icon="hourglass" href="/en/email-accounts/quarantine-and-ramp-up">
    The opening window in full: what a brand-new mailbox does while it sends nothing.
  </Card>

  <Card title="Email warm-up" icon="flame" href="/en/email-accounts/email-warm-up">
    What the deliverability percentages are measuring, and how to start or resume a warm-up.
  </Card>

  <Card title="Sending capacity timeline" icon="chart-line" href="/en/email-accounts/capacity-timeline">
    The same calculation drawn across days, for one mailbox or the whole fleet.
  </Card>

  <Card title="Why is my sending limit so low?" icon="circle-question-mark" href="/en/troubleshooting/why-is-my-sending-limit-so-low">
    Start here when the number is smaller than you expected and you want it changed.
  </Card>
</CardGroup>
