3d Illustration of family with phones staying connected with each other with a pooled plan

A Deep Dive Into International Pools

Hi there! I’m Zeynep, a product manager at US Mobile. This post is a deep dive into International Pools and how they work below the surface.

Note: this feature is in open beta. It is available to customers with a domestic pool plan, and we’re continuing to refine the experience. 

International Pools are an upgrade to our Pool plans that simplify one of the hardest problems in mobile service: making shared data work reliably across domestic and international networks. They let a pool use its data allowance both domestically and internationally, instead of managing roaming on each line individually. Depending on the pool type, data can be used in the US, across North America or globally.

Making that experience work seamlessly required us to account for how differently domestic and roaming usage behave. Domestic usage is reported frequently and consistently, which is straightforward to track and meter. 

Roaming, however, is provisioned across multiple local partner networks and their international partners quickly compounding into hundreds of distinct carrier relationships, each with its own systems, delays, and rules. Usage reports can arrive late or out of order, and enforcement capabilities vary by network.

Supporting shared roaming therefore requires a system that can remain consistent across domestic and roaming usage, even though the underlying networks, reporting timelines, and controls behave and communicate very differently.

We’ll walk through the model we landed on, the constraints we designed around and how the system behaves in real-world scenarios when those differences matter.

Why pools needed a new model of roaming

Before International Pools, roaming in Pool  plans wasn’t actually pooled. It was handled at the line level: each line purchased its own roaming add-ons, tracked its own balance and hit its own limit on its own timeline.. Shared pools remained a domestic only construct while roaming lived alongside it as a separate set of per-line states This created a fragmented experience that broke the shared-data abstraction and introduced unnecessary complexity for customers traveling together.

Per-line roaming does not scale for pools

For pools with multiple lines, line-level roaming quickly becomes cumbersome to manage. Pool plans are most commonly used by families, partners, small teams, or single users with multiple devices who tend to travel together. Treating roaming as a per-line concern adds setup and monitoring overhead , and undermines the simplicity of  pooled data

Pool-level roaming aligns with how shared plans are used

With line-level roaming, individual  lines can exhaust their  roaming data while others still have unused capacity, despite customers being accustomed to sharing data domestically. International Pools extends the same sharing model customers already expect to international use allowing any eligible line to consume data from a single pool without managing separate add-ons or balances.

Cost and usage efficiency improve with shared roaming

When multiple lines travel together, purchasing roaming data separately for each line quickly increases total cost. A shared roaming allowance avoids duplicating capacity across lines by allowing usage to be pooled, reducing redundant purchases and increasing utilization.

Implications of a shared roaming model

Treating roaming as a shared resource introduces additional platform requirements. The platform must enforce fairness across lines, handle delayed usage reporting from roaming partners, and control cost exposure without reintroducing per-line fragmentation. These requirements shape how eligibility, usage attribution, enforcement and top-ups work throughout the system.

Coverage varies, the model does not

Some customers primarily travel within Canada and Mexico, while others travel more broadly. International Pools support both patterns using the same shared roaming model with different coverage scopes. North American Pools apply the shared allowance within the US, Canada and Mexico. Global Pools extend that to all network-supported international destinations. The goal is to keep the customer experience consistent, even though coverage and network behavior might differ.

What the system has to handle

International Pools have to work within a set of constraints that have already existed in roaming and in shared data plans.

  • Roaming usage is delayed and inconsistent – Usage records can arrive hours or days late, in batches, or out of order, depending on the partner network.
  • Enforcement capabilities vary by network – Not all networks support the same throttling or blocking mechanisms, but the product behavior still needs to be consistent.
  • Fairness across lines matters in a shared pool – One line should not unexpectedly exhaust shared data for the rest of the pool without clear rules and recovery paths.
  • Roaming-only usage needs guardrails – Roaming can be activated and consumed abroad immediately, which creates abuse risk without line-level eligibility controls.
  • Plan changes require explicit lifecycle rules –  Immediate upgrades and end-of-cycle changes are handled differently to keep billing and entitlements consistent.
  • Customers need a single data balance to track – Even though usage is handled across different systems internally, the pool must behave like one shared allowance externally.

Global Pools vs North American Pools

International Pools come in two variants: North American Pools and Global Pools. Both are built on the same shared-data model described throughout this document. The difference is simply where that shared data can be used.

North American Pools allow the shared data allowance to be used in the United States, Canada, and Mexico. These countries represent a large share of international travel for our customers, and usage within them draws from the same shared pool while following the same rules around eligibility, usage reporting, and enforcement.

Global Pools extend that same shared data allowance to additional international destinations. In addition to North America, shared data can be used while roaming in supported countries worldwide. Coverage depends on the network a given line is on. In rare cases, lines within the same pool may have different coverage if they are on different networks and are traveling in a country not supported by all of them.

The distinction is intentionally simple. Customers choose between North American and Global Pools based on where they expect to travel, with a more customer-friendly option for those who primarily roam in Canada and Mexico, and everything else works the same.

Shared allowance, individual eligibility

International Pools use a single shared data allowance at the pool level, while access to that allowance is evaluated per line.

The pool defines how much data is available in total, regardless of whether usage happens domestically or while roaming. All eligible lines draw from the same balance, and data service is enforced when the shared allowance is exhausted.

Eligibility is tracked per line. A pool can be active and have data available while a specific line is temporarily unable to roam. For example, a line that has not yet shown domestic usage may be blocked from roaming, even though other lines in the same pool are eligible and actively using data.

A flow chart describing how roaming eligibility is determined when a customer tries to connect internationally.

This separation also allows line-level exceptions without affecting the rest of the pool. A line with an active roaming add-on uses that add-on first. When the add-on is exhausted or expires, the line falls back to the shared pool without changing the pool’s overall state.

Why some lines can’t roam right away

Roaming access in International Pools is evaluated at the line level. A line needs to show recent domestic usage before it can start using shared roaming data.

This requirement exists because roaming can be activated domestically and consumed abroad immediately. Without a basic eligibility check, a shared pool could be used exclusively for roaming without any domestic footprint.

Once a line meets the domestic usage requirement, roaming access is enabled automatically. The pool’s shared allowance and other lines are unaffected.

Why roaming usage doesn’t always update instantly

Domestic data usage is reported frequently and consistently, which makes it straightforward to reflect usage in near real time. Roaming usage, however, comes from partner networks outside the US and often arrives with delays or in batches rather than in real time. Because of this, recent roaming usage may not appear immediately in the dashboard.

To handle this safely, roaming usage is processed in a fixed sequence. Usage records are normalized, classified, attributed to the correct pool and line and deduplicated so the same usage cannot reduce the balance more than once.

As usage reports arrive and settle, the shared balance updates to reflect the final total. Short delays in displayed usage are expected, but enforcement is applied consistently once thresholds are crossed.

What happens when the shared data is used up

International Pools use a single shared data allowance that works both domestically and while roaming. Customers only need to track one number to understand how much data they have left. When that shared data allowance is fully used up, all data services stop, whether a line is at home or abroad. This behavior is consistent across the entire pool.

If more data is needed, there are two ways to extend usage:

  • Pool-level top-ups increase the shared data allowance for the entire pool. Customers can add a manual top-up at any time or enable automatic top-ups. When automatic top-ups are enabled, a top-up is triggered when 90% of the shared data allowance is used. Any data added this way becomes part of the same shared allowance and can be used both domestically and while roaming.
  • Line-level roaming add-ons are purchased on individual lines and apply only while roaming. These are the standard per-line roaming options. When a line has an active roaming add-on, the system always uses that add-on data first for that line before drawing from the shared pool. This prevents one line’s roaming usage from reducing the shared allowance for other lines. Once the add-on is used up or expires, the line falls back to the pool’s shared data.

Talk and text are handled separately from data. Domestic talk and text are unlimited. Roaming talk and text are capped at 100 minutes and 100 texts per line per cycle for International Pools. Reaching the roaming talk or text cap does not affect data usage or domestic service.

Putting it all together with a real-world example

Consider a shared International Pool with four lines traveling together.

At the start of the trip, the pool has an active shared data allowance that works both domestically and while roaming. Three of the lines are immediately eligible to roam. The fourth line becomes eligible shortly after, once it shows some normal domestic usage.

As the trip continues, all four lines use data while roaming. That usage draws from the same shared allowance, and the balance updates as roaming reports arrive and settle. Some usage may appear with a delay, but the shared total remains accurate over time.

Midway through the trip, one line starts using significantly more roaming data than the others. To avoid impacting the rest of the group, that line purchases a roaming add-on. From that point on, that line’s roaming usage is taken from the add-on first, while the other lines continue using the shared pool.

As the shared data allowance approaches depletion, an automatic top-up is triggered at 90% usage. The added data becomes part of the same shared allowance and is available to all lines, both domestically and while roaming.

If the shared data is eventually used up, data service stops for all lines until more data is added. Throughout this process, domestic talk and text remain unlimited, and roaming talk and text are enforced independently per line.

How this appears in the app 

International Pools are designed so the app reflects the system’s current state. The goal is to make it easy to understand what’s happening without exposing internal complexity.

In the app, customers see:

  • A single shared data balance for the pool, usable both domestically and while roaming. Usage is shown as total consumption against the shared allowance, with a line chart for overall usage over time and an optional bar chart to see daily usage broken down by domestic versus international.
  • Separate indicators for roaming talk and text usage, which are capped per line. Customers can also view a per-line breakdown of data usage split between domestic and international activity.
  • Clear separation between pool-level and line-level data. When a line has a roaming add-on, it does not appear on the pool page, since it applies only to that line. Instead, the add-on allocation is shown on the line’s page under the Roaming tab. Pool data is intentionally not shown in the Roaming tab to avoid confusion between shared and line-level allowances.
  • Warnings when data is running low or fully used up. These appear both on the pool page and within individual line views, so customers can see approaching limits before service is affected.
  • Explicit pool type labels, such as Domestic, North America or Global, so it’s always clear which pool is being viewed.

Usage visuals follow a consistent color system: domestic usage uses the same blue seen elsewhere in the app, while international usage is shown in a complementary red to make the distinction clear at a glance.

Because roaming usage can arrive with some delay, the app may briefly lag behind real-world usage. This does not affect how limits are enforced. As usage reports arrive and settle, the displayed balance updates to reflect the final, accurate total.

Closing summary

International Pools make shared data work across borders without managing roaming line by line. There’s one shared data allowance that works both domestically and while traveling, with predictable behavior.

The core design keeps the pool as the unit of data sharing while evaluating access at the line level. That separation makes it possible to handle delayed roaming usage, line-level exceptions, and cost control without fragmenting the experience or introducing unpredictable behavior.

The goal throughout was consistency: one balance to track, predictable outcomes, and no surprises when traveling.