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

# Localization roi

***

## title: Localization ROI Calculator

description: Surfaces countries where you're getting downloads without local metadata — your highest-leverage translation opportunities.

The agent reads `ASC metrics` for the last 30 days, computes per-country download share, and scores each country by **localization ROI**.

## How the score works

For each country with ≥ 3% download share:

```
roi_score = min(100, share * 100 * 4)         when un-localized
roi_score = share * 30                         when already localized (lagging signal)
```

A country with 25% share and no localization → score **100**.
A country with 25% share **with** localization but flat conversion → flagged separately as a *lagging market*.

We map ISO-2 country codes → expected App Store locale (`MX → es-MX`, `JP → ja`, `BR → pt-BR`, etc.) to decide whether you're "localized" for that market.

## What you see

```
## 🌍 Localization ROI (8 countries with traffic)

Top unlocalized markets:
  • MX — 25.0% share, 16 downloads/30d, ROI 100/100
  • IT — 8.4% share, 5 downloads/30d, ROI 33/100
  • CA — 6.1% share, 4 downloads/30d, ROI 24/100

Lagging localized markets (low conversion-to-revenue):
  • DE — 12.0% share, $0.00/30d
```

## Pending localization drafts (My Apps)

When Co-founder (or you) saves metadata that did not reach the live store, drafts appear in the collector as:

```
## 📝 Pending localization drafts (My Apps)
  • de-DE — subtitle, keywords (cofounder, updated 2026-07-24)
  → Review and publish from My Apps → Localizations.
```

The reasoner should reference these under *⏰ Still waiting on you* — they are real proposed work, not suggestions. Chat can inspect them with `list_localizations` / `get_localization` and publish with `publish_localization` (write mode).

See [My Apps workspace](./my-apps-workspace) for the full bridge.

## In the structured report

The `localization` array of `DailyReport` contains:

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
[
  {
    "country": "MX",
    "reason": "25% of downloads from Mexico with no Spanish-Mexico metadata.",
    "expectedLift": "+15-25% downloads from this storefront after localization",
    "priority": "high"
  }
]
```

## Why this matters

Indie apps default to English-only and leave money on the table when traffic naturally flows from other countries. The ROI score answers two questions:

1\. **Where should I localize next?** → top of `topOpportunities`
2\. **Where is my localization not working?** → `laggingMarkets` (often a sign that the translation was machine-translated badly)

## What's "localized"

The agent reads `asc_metadata_locales` (when present) to determine which locales you have App Store Connect entries for. If that table is empty, it falls back to assuming you have only `en-US` — which means everything else looks like an opportunity. Once you start localizing properly, the agent will recognise it on the next run.

## Edge cases

\- **Country ↔ locale mapping** — the mapping table covers the top 25 countries. For long-tail countries, the agent assumes "localization possible" and adds a generic note rather than computing a precise score.
\- **Spillover** — Mexican users of a Spain-localized app are counted as "localized" since `es-ES` content is broadly readable. This may overstate localization coverage; the lagging-markets list catches the cases where it actually hurts conversion.
