Driver FixRecommendedSound, Wi-Fi or graphics acting up? Check drivers firstFind missing or outdated drivers fast.Check DriversFall ResetAmazon USFall reset deals: check better picks before checkoutAmazon US: today's deals, useful picks and quick comparisons.Check DealsPC HealthRecommendedCrashes, freezes, slowdowns? Check your PC nowSpot repairable issues before they interrupt work.Check PC×
Skip to content
Blog

JPMorgan’s 35-Million-Line Athena Platform Shows Why Python Migrations Take Years

By TheFinanceBase Team6 min read
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Some links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.

The original claim was substantially accurate in 2019, but it is not a verified report about Athena’s status in 2026. Contemporary reporting described JPMorgan’s Athena as an enormous internal markets platform, built largely on Python 2.7, with about 35 million lines of Python code. Its reported migration schedule extended beyond Python 2’s January 1, 2020 end-of-support date. A February 2021 follow-up said the migration was still incomplete, but no reliable public source reviewed here confirms when the work was finally finished—or whether any Python 2 components remain.

What is JPMorgan’s Athena?

Athena was not simply a trading application. It was reported as a broad internal technology platform supporting pricing, trading, trade management, risk management, analytics, data science and machine learning.

That scope matters. A language migration affecting one small application can sometimes be planned as a contained rewrite. A migration affecting a shared platform used across markets and risk workflows must preserve calculations, integrations, operational processes and historical reproducibility.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

TechRepublic reported the platform’s capabilities and size based on figures presented by Misha Tselman, a JPMorgan executive director, at PyData 2017. Those figures should be treated as reported presentation estimates, not as an independently audited code count.

How large was Athena?

The reported figures included:

  • More than 35 million lines of Python code
  • More than 150,000 Python modules
  • More than 500 open-source packages
  • Contributions from roughly 1,500 developers

“35 million lines of Python” does not necessarily mean 35 million lines across every language used by the platform, nor does it mean one executable or one repository. Modules are not the same thing as files, and the open-source package figure does not represent every dependency, internal fork or system integration.

The same presentation was reported as describing approximately 10,000 to 15,000 production changes per week. If accurate, that release pace illustrates why Athena could not be treated as a frozen codebase awaiting a one-time conversion. Migration work had to proceed alongside continuing development and production operations.

Source: TechRepublic’s report on Athena.

Why Python 2 to Python 3 was difficult

Python 3 had been available since December 3, 2008, but availability did not make a large enterprise migration straightforward. Python 2 and Python 3 differ in ways that can alter application behavior, not merely source-code formatting.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Language and data-model changes

Migration issues can include:

  • Different handling of text, Unicode and binary data
  • Changes to integer division
  • New exception syntax
  • Changed iteration behavior
  • Differences in dictionary and view behavior
  • Renamed, removed or changed standard-library APIs
  • Third-party packages that support only one runtime

Some mechanical changes can be assisted by automated conversion tools. Others—especially text encoding, binary interfaces and behavior-dependent code—require human analysis and regression testing. The Python documentation discusses the limits of automated migration and the importance of testing.

Dependencies multiply the work

A platform with more than 150,000 reported modules and more than 500 reported open-source packages has a substantial dependency graph. Engineers must identify which packages support Python 3, select compatible versions, rebuild native extensions and account for internal patches or forks.

They must also validate operating-system, compiler, database, market-data and vendor integrations. A package that installs successfully may still produce different numerical results or expose a different serialization behavior.

Financial correctness is stricter than “the code runs”

For pricing and risk systems, a successful launch requires more than a clean build. A credible migration would need to establish that:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • Prices and risk measures remain mathematically consistent or that differences are understood and approved
  • Trade-lifecycle behavior is preserved
  • Stored and serialized data remains readable where required
  • Historical calculations remain reproducible
  • Production and test environments use the intended dependency versions
  • Performance and failure behavior remain acceptable

Rarely used financial products and infrequent operational paths can be especially difficult to validate because they may not receive the same test coverage as common workflows.

What did “not updated in time” mean?

The phrase referred to the Python project’s support deadline, not a date when Athena would automatically stop functioning.

Event Date or reported target
Python 3.0 released December 3, 2008
Python 2 community support ended January 1, 2020
Most strategic Athena components targeted for Python 3 End of Q1 2020
Remaining legacy Python 2.7 components targeted Q4 2020
Later reported target for moving everything to Python 3 End of Q2 2021

The 2019 reporting therefore described a platform that was not expected to be fully Python 3-compatible by Python 2’s official sunset date. The reported roadmap appeared incremental: strategic components first, with legacy components following later.

Sources: Python’s version history, the Python project’s sunset notice, and eFinancialCareers’ 2019 reporting.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

What Python 2’s end of life actually meant

Python 2.7 did not become technically incapable of running on January 1, 2020. Existing binaries and applications could continue to execute. The change was that the Python project stopped providing normal community maintenance, including new bug fixes and security fixes.

Python 2.7.18, released on April 20, 2020, was the final Python 2 release. The practical risks of remaining on Python 2 included unpatched interpreter vulnerabilities, shrinking support from package maintainers, difficulty rebuilding old environments and increasing exposure from obsolete dependencies.

End of life also differs from commercial support. An organization could potentially maintain a private fork, buy extended support or use another mitigation while completing its migration. Those approaches buy time; they do not convert application code or prove that financial calculations remain correct.

What happened after the 2019 report?

In a February 4, 2021 follow-up, eFinancialCareers reported that Athena’s Python 2 migration was still incomplete. Citing insiders, it said JPMorgan was targeting the end of Q2 2021 for moving everything to Python 3. The report also said JPMorgan declined to comment.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

That follow-up is important because it showed the issue had continued beyond the original January 2020 deadline. It did not, however, establish that the Q2 2021 target was achieved.

No reliable public source reviewed for this article confirms:

  • The final Athena migration date
  • Whether every component was migrated
  • Whether any Python 2 components remained afterward
  • The Python version Athena uses today
  • Whether the platform was substantially rewritten, decomposed or replaced

Accordingly, it would be inaccurate to state either that Athena is definitely still running on Python 2 in 2026 or that JPMorgan definitely completed the migration by Q2 2021.

Source: eFinancialCareers’ February 2021 follow-up.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Why a large migration takes years

Organizations facing a comparable platform typically weigh several approaches.

Big-bang conversion

A single cutover provides a clear end state and can reduce the period of maintaining two runtimes. Its drawbacks include a large production freeze, difficult rollback and concentrated regression risk.

Incremental migration

Moving strategic components first reduces the immediate blast radius and allows parallel testing. It also creates a longer period of dual-runtime builds, compatibility layers and cross-version operational complexity.

Temporary compatibility

Some shared libraries can be made compatible with both Python 2.7 and Python 3. This can support staged deployment, but it restricts available language features and does not remove the security and ecosystem risks of continuing to run Python 2.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Commercial or private maintenance

Extended support can provide additional time for organizations that cannot migrate immediately. It may cover an interpreter or selected packages, but it does not guarantee application-level correctness, cover every dependency or eliminate the eventual modernization requirement.

Controls a migration of this scale would require

These are general practices for a comparable enterprise migration, not confirmed details of JPMorgan’s internal program:

  1. Inventory dependencies, owners, internal forks and runtime assumptions.
  2. Use automated conversion only for changes that can be safely characterized.
  3. Apply static analysis to find Python 2-specific constructs.
  4. Run unit, integration and regression tests.
  5. Compare Python 2 and Python 3 outputs against golden data.
  6. Analyze numerical tolerances rather than treating every difference as harmless.
  7. Run pricing and risk calculations in parallel where appropriate.
  8. Deploy through canaries or staged releases.
  9. Maintain tested rollback procedures.
  10. Scan the interpreter and dependency tree for security exposure.
  11. Obtain sign-off from engineering, production, business and risk owners.

The broader lesson for financial technology

Athena’s reported story is less about Python syntax than about accumulated organizational complexity. A shared platform with thousands of contributors, hundreds of packages and frequent production releases becomes infrastructure for many teams. Changing its runtime can affect calculations, controls, deployment pipelines and business processes simultaneously.

For financial institutions, the safest modernization plan separates three questions: Can the code be converted? Can the surrounding dependency and deployment system support the new runtime? And can the organization demonstrate that financial behavior remains correct?

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The original 2019 headline was therefore directionally right but easy to misread. JPMorgan was reported to be behind schedule for Python 2’s January 1, 2020 support deadline. The later public record showed the work was still unresolved in February 2021. The final outcome remains unverified in the available public reporting.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Written by TheFinanceBase Team

The Team behind TheFinanceBase.

Add your note

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Recommended PC Tool
Recommended PC Tool
Windows Errors? Fix Them Before They SpreadFree repair scan
Crashes, No Sound, or Screen Glitches?Free driver scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.