What Is the Minimum Viable Team Size for a GCC?

What Is the Minimum Viable Team Size for a GCC?

4 min read

ISO 42001 for GCCs: AI Governance & Accountability Framework
ISO 42001 for GCCs: AI Governance & Accountability Framework

A standalone captive GCC becomes economically sound at roughly 25 to 50 engineers.

Below 20 to 25 people, an employer-of-record or partner-operated structure is the better vehicle: it delivers a dedicated India team from as few as 10 people, at $150,000 to $400,000 of initial commitment instead of $2 to 3 million, with a contracted conversion path once you cross the captive threshold.

The breakpoints matter because they are where the model changes, not just the price.

Why 25 to 50 Is the Captive Floor

A captive carries fixed costs that do not care how many engineers you hire: entity setup and annual compliance, a GCC head whose compensation is global-grade, facilities commitments, payroll and statutory infrastructure under the New Labour Codes, and transfer-pricing documentation.

Spread across 12 people, these fixed costs eat the arbitrage. Spread across 40, they fade into the unit economics. The crossover sits in the mid-20s for most cost structures, which is why independent setup guides converge on the same 25-to-50 band despite competing with each other.

The Ladder: 10 to 30, Then 25 to 50, Then Scale

Rung One: EOR or Partner-Operated, 10 to 30 People

No entity. The provider employs your team legally; you direct the work.

This is right for proving that distributed delivery works for your codebase and your managers, which is the real risk at this stage, not the paperwork.

For companies evaluating whether they are too small for an India GCC, see Is our company too small for an India GCC?.

Rung Two: BOT or Captive, 25 to 50 People

Once the delivery model is proven and the roster clears the fixed-cost floor, convert.

BOT (a partner builds and runs, then transfers at month 18 to 36) suits companies that want ownership without operating from day one. Roughly 40 percent of new GCCs now enter this way (Everest Group).

Direct captive suits companies with India experience or strong operating appetite.

For the comparison between GCC operating models, see BOT versus captive versus managed GCC: how to choose.

Rung Three: Scale in One City

Below roughly 200 people, resist a second site.

Splitting dilutes leadership and culture with no offsetting gain at this scale.

The Single Most Important Contractual Point on the Ladder

Negotiate the conversion terms at rung one, not at the moment of conversion.

Providers price conversions very differently when the client has no committed path.

The Seniority Rule That Governs All of It

Whatever the headcount, weight the first cohort 60 to 70 percent senior.

A 15-person senior pod outperforms a 30-person junior one on every measure a board cares about, including cost, because rework is billed in US management hours.

Minimum viable size is a function of seniority mix: senior-weighted teams are viable smaller.

<section class="faq-section"> <div class="faq-inner"> <div class="faq-side fi v"> <div class="eyebrow">FAQs</div> <h2 class="sh2">Related questions</h2> <p class="sp"> Straight answers on BOT costs, operate phase timelines, and switching between GCC models. </p> <a href="https://www.gccenablr.com/contact/" class="btn-primary">Talk to Us โ†’</a> </div> <div class="faq-list fi v"> <!-- FAQ 1 --> <div class="faq-item"> <div class="faq-q" onclick="toggleFaq(this)" aria-expanded="false" > <span class="faq-q-text"> What does BOT cost compared with a captive? </span> <span class="faq-toggle"> <svg viewBox="0 0 24 24"> <line x1="12" y1="5" x2="12" y2="19"></line> <line x1="5" y1="12" x2="19" y2="12"></line> </svg> </span> </div> <div class="faq-a"> <div class="faq-a-inner"> BOT shifts cost from upfront capital - $2 to 3 million year one for a 50-person captive - to operating fees plus a contracted transfer price. Total cost over five years is often similar; the risk profile is not. </div> </div> </div> <!-- FAQ 2 --> <div class="faq-item"> <div class="faq-q" onclick="toggleFaq(this)" aria-expanded="false" > <span class="faq-q-text"> How long does the Operate phase last? </span> <span class="faq-toggle"> <svg viewBox="0 0 24 24"> <line x1="12" y1="5" x2="12" y2="19"></line> <line x1="5" y1="12" x2="19" y2="12"></line> </svg> </span> </div> <div class="faq-a"> <div class="faq-a-inner"> Typically 18 to 36 months, best defined by operational milestones rather than calendar alone. </div> </div> </div> <!-- FAQ 3 --> <div class="faq-item"> <div class="faq-q" onclick="toggleFaq(this)" aria-expanded="false" > <span class="faq-q-text"> Can we switch from managed to captive later? </span> <span class="faq-toggle"> <svg viewBox="0 0 24 24"> <line x1="12" y1="5" x2="12" y2="19"></line> <line x1="5" y1="12" x2="19" y2="12"></line> </svg> </span> </div> <div class="faq-a"> <div class="faq-a-inner"> Yes, and it is a standard path, provided conversion terms were contracted at the start rather than negotiated at the moment of need. </div> </div> </div> </div> </div> </section> <style> :root { --faq-ink: #12151c; --faq-body: #5a616f; --faq-line: #e6e8ec; --faq-accent: #4b3df6; --faq-bg: #fbfbfd; } * { box-sizing: border-box; } .faq-section { background: var(--faq-bg); font-family: 'Inter', 'Helvetica Neue', Arial, sans-serif; padding: 80px 24px; } .faq-inner { max-width: 1120px; margin: 0 auto; display: grid; grid-template-columns: 340px 1fr; gap: 64px; align-items: start; } .faq-side { position: sticky; top: 40px; } .eyebrow { font-size: 12px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: var(--faq-accent); margin-bottom: 14px; } .sh2 { margin: 0 0 12px; font-size: 32px; line-height: 1.15; letter-spacing: -1px; font-weight: 650; color: var(--faq-ink); } .sp { margin: 0 0 20px; font-size: 14px; line-height: 1.6; color: var(--faq-body); max-width: 38ch; } .btn-primary { display: inline-flex; align-items: center; gap: 6px; background: var(--faq-ink); color: #fff; text-decoration: none; font-size: 14px; font-weight: 600; padding: 12px 22px; border-radius: 999px; transition: background .2s ease, transform .2s ease; } .btn-primary:hover { background: var(--faq-accent); transform: translateY(-1px); } .faq-list { display: flex; flex-direction: column; } .faq-item { border-bottom: 1px solid var(--faq-line); } .faq-item:first-child { border-top: 1px solid var(--faq-line); } .faq-q { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 22px 4px; cursor: pointer; user-select: none; } .faq-q-text { font-size: 16px; font-weight: 560; color: var(--faq-ink); line-height: 1.4; transition: color .2s ease; } .faq-q:hover .faq-q-text { color: var(--faq-accent); } .faq-toggle { flex: 0 0 auto; width: 28px; height: 28px; border-radius: 50%; border: 1px solid var(--faq-line); display: flex; align-items: center; justify-content: center; transition: background .25s ease, border-color .25s ease, transform .3s ease; } .faq-toggle svg { width: 14px; height: 14px; stroke: var(--faq-ink); stroke-width: 2; fill: none; transition: stroke .25s ease; } .faq-q[aria-expanded="true"] .faq-toggle { background: var(--faq-ink); border-color: var(--faq-ink); transform: rotate(135deg); } .faq-q[aria-expanded="true"] .faq-toggle svg { stroke: #fff; } .faq-q[aria-expanded="true"] .faq-q-text { color: var(--faq-ink); font-weight: 650; } .faq-a { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .35s ease; } .faq-a-inner { overflow: hidden; font-size: 14.5px; line-height: 1.7; color: var(--faq-body); padding-right: 52px; } .faq-item.open .faq-a { grid-template-rows: 1fr; } .faq-item.open .faq-a-inner { padding-bottom: 22px; } .fi.v { animation: faqFadeIn .5s ease both; } @keyframes faqFadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } } @media (prefers-reduced-motion: reduce) { .faq-a, .faq-toggle, .fi.v { transition: none; animation: none; } } @media (max-width: 900px) { .faq-inner { grid-template-columns: 1fr; gap: 32px; } .faq-side { position: static; } } @media (max-width: 520px) { .faq-section { padding: 56px 18px; } .sh2 { font-size: 26px; } .faq-q-text { font-size: 15px; } .faq-a-inner { padding-right: 0; } } </style> <script> function toggleFaq(qEl) { var item = qEl.closest('.faq-item'); var isOpen = item.classList.contains('open'); document.querySelectorAll('.faq-item.open').forEach(function(openItem) { if (openItem !== item) { openItem.classList.remove('open'); openItem .querySelector('.faq-q') .setAttribute('aria-expanded', 'false'); } }); if (isOpen) { item.classList.remove('open'); qEl.setAttribute('aria-expanded', 'false'); } else { item.classList.add('open'); qEl.setAttribute('aria-expanded', 'true'); } } </script>

Ready to build your scalable GCC?

Connect with our experts to discuss how we can help you establish and scale a high-performing Global Capability Center tailored to your business needs.