Feasibility Forecast
This document presents the feasibility analysis for migrating ERPNext from Python to Go, incorporating 3 weeks of observed intern velocity data from 7 teams (40-50+ interns). The core question: Can 3-5 interns migrate ERPNext in 3 months with unlimited AI credits?
The Scale of the Challenge
Section titled “The Scale of the Challenge”| Dimension | Count | Migration Implication |
|---|---|---|
| Python LOC | 316,679 | Core business logic to translate |
| JavaScript LOC | 73,932 | Frontend to rebuild or replace |
| Unique doctypes | 521 | Each needs model + logic + tests |
| API endpoints | 768 | Each needs equivalent in target language |
| Reports | ~177 | Each needs query + formatting logic |
| Shared controllers | 16 files, 23,212 lines | Deep inheritance; most complex to migrate |
| Modules | 21 | Each with cross-module dependencies |
| COCOMO estimate | ~216 person-years | Traditional development effort |
A full ERPNext migration requires Frappe framework replacement, 521 doctype translations, 768 API endpoints, 177 reports, 73K lines of frontend, regional compliance, data migration tooling, and third-party integration points.
Observed Velocity Data
Section titled “Observed Velocity Data”Reference Implementation (Experienced Engineer)
Section titled “Reference Implementation (Experienced Engineer)”| Iteration | Python Source | Go Output | Tests | Calendar Time |
|---|---|---|---|---|
| Mode of Payment | 66 lines | 518 lines | 19 | ~1 day |
| Tax Calculator | 1,334 lines | 1,240 lines | 24 | ~1 day |
| GL Entry Engine | 878 lines | 2,608 lines | 32 | ~1 day |
Rate: ~760 lines of Python source per day per person. Code expansion factor: ~1.9x.
Intern Team Velocity (3 Weeks Observed)
Section titled “Intern Team Velocity (3 Weeks Observed)”| Team | Active Contributors | Primary Output | Velocity Assessment |
|---|---|---|---|
| Epsilon | 3 | CI-ready parity tests, Groq integration, 6 PRs | High |
| Zeta | 1 (solo) | 100% tax parity, RAG, Streamlit, TS SDK | High |
| Beta | 2 | VS Code extension (1,700 LOC), Redis cache, 7 PRs | High |
| Gamma | 2 | GraphRAG eval, Sales Invoice 89.1% coverage | Medium-High |
| Alpha | 4 | RAG + Streamlit + submodule execution | Medium |
| Delta | 3 | Python-Go transpiler, 3-phase analyzer | Medium |
| Eta | 2 | RAG evaluation pipeline only | Low |
Velocity Discount Factors
Section titled “Velocity Discount Factors”| Factor | Original Estimate | Observed Reality |
|---|---|---|
| Intern vs experienced engineer | 0.3x | 0.2-0.5x (wide variance by team) |
| Learning curve (first 2-4 weeks) | 0.5x during ramp-up | Confirmed — Weeks 1-2 were onboarding |
| AI tooling acceleration | 3-5x | 3-5x confirmed |
| Review and rework cycles | 0.7x | 0.5x (no systematic code review for most teams) |
| Coordination overhead | Not estimated | 0.6x (significant for 40+ interns) |
| API quota / tooling friction | Not estimated | 0.8x (recurring blocker) |
| Net effective velocity | ~0.5-1.0x | ~0.3-0.8x of experienced engineer |
Scenario Analysis
Section titled “Scenario Analysis”Scenario A: Full ERPNext Replacement (3 months, 3-5 interns)
Section titled “Scenario A: Full ERPNext Replacement (3 months, 3-5 interns)”Verdict: Not feasible.
| Work Item | Effort Estimate |
|---|---|
| 521 doctypes | 8-12 months |
| Framework replacement | 6-12 months |
| 768 API endpoints | 2-3 months |
| 177 reports | 1-2 months |
| Frontend (73K JS lines) | 4-6 months |
| Regional compliance | 2-3 months |
| Data migration | 1-2 months |
| Integration testing | 2-3 months |
| Total | 26-43 months of work |
Even with unlimited AI credits and 5x acceleration, architectural decisions, domain understanding, and integration testing cannot be compressed below 5-6 months for a skeleton with major gaps.
Scenario B: Core Accounting Engine (3 months, 3-5 interns)
Section titled “Scenario B: Core Accounting Engine (3 months, 3-5 interns)”Verdict: Achievable — supported by observed intern data.
| Module | Doctypes | Weeks |
|---|---|---|
| GL Engine (done) | 1 | 0 |
| Tax Calculator (done) | 1 | 0 |
| Mode of Payment (done) | 1 | 0 |
| Account Master | ~10 | 2 |
| Journal Entry | ~5 | 2 |
| Payment Entry | ~8 | 3 |
| Sales Invoice | ~15 | 3 |
| Purchase Invoice | ~12 | 2 |
| Bank Reconciliation | ~5 | 1 |
| Cost Center / Dimensions | ~8 | 1 |
| Budget | ~5 | 1 |
| Fiscal Year / Period | ~5 | 1 |
| Total | ~75 | ~16 weeks |
Evidence from 3 weeks of intern work:
- Zeta independently replicated tax calculation parity (approach is teachable)
- Epsilon built CI-ready parity tests (testing methodology validated)
- Gamma’s golden dataset reveals accuracy gaps in cross-module queries
- 4 of 7 teams built working Streamlit UIs for verification
Scenario C: Core + Stock + Selling/Buying (6-9 months, 3-5 interns)
Section titled “Scenario C: Core + Stock + Selling/Buying (6-9 months, 3-5 interns)”Verdict: Achievable with sustained effort.
Adds Stock management (85 doctypes), Selling (24 doctypes), and Buying (23 doctypes). Represents ~60% of ERPNext’s business value in ~30% of its doctypes.
Scenario D: Production-Ready ERP with 80% Parity (12-18 months, 8-12 engineers)
Section titled “Scenario D: Production-Ready ERP with 80% Parity (12-18 months, 8-12 engineers)”Verdict: Achievable but requires senior engineers.
Requires framework-level runtime, frontend, regional compliance for at least India/US/UAE, multi-tenancy, production database adapters, CI/CD, monitoring, and deployment.
Go vs Kotlin Comparison
Section titled “Go vs Kotlin Comparison”| Dimension | Go | Kotlin |
|---|---|---|
| Type system | Simple, explicit | Rich (nullable, sealed classes) |
| Error handling | Explicit returns | Exceptions + Result type |
| Concurrency | Goroutines + channels | Coroutines |
| ORM ecosystem | sqlx, GORM, Ent | Exposed, Spring Data |
| Web framework | Chi, Echo, Fiber | Ktor, Spring Boot |
| AI training data | Moderate | High (Java/Kotlin ecosystem) |
| ERP domain fit | Good for microservices | Better for full framework replacement |
| Existing work | 3 iterations complete | None |
Recommendation: Go for microservice-style extraction (proven patterns). Kotlin if building a full Frappe framework replacement (Spring Boot ecosystem provides ORM, permissions, workflow out of the box).
Cost Projection (3-Month Phase 1)
Section titled “Cost Projection (3-Month Phase 1)”AI Credits
Section titled “AI Credits”| Usage | Monthly Estimate |
|---|---|
| Claude API (code translation, review, test gen) | $2,000-5,000 |
| GPT-4 API (alternative/comparison) | $1,000-3,000 |
| Embedding/indexing | $200-500 |
| MLflow + evaluation | $100-200 |
| Total AI per month | $3,300-8,700 |
Human Cost
Section titled “Human Cost”| Role | Count | 3-Month Total (INR) |
|---|---|---|
| Interns | 5 | 3.75-6.0 lakh |
| Senior architect (part-time) | 1 | 1.5-3.0 lakh |
| Total | 5.25-9.0 lakh (~$6,300-10,800 USD) |
Total Budget
Section titled “Total Budget”| Category | Low | High |
|---|---|---|
| AI credits | $10,000 | $26,000 |
| Human cost | $6,300 | $10,800 |
| Infrastructure | $500 | $1,500 |
| Total | $16,800 | $38,300 |
Risk Assessment (Updated with Observed Data)
Section titled “Risk Assessment (Updated with Observed Data)”| Risk | Probability | Impact | Evidence |
|---|---|---|---|
| Framework replacement underestimated | High | Critical | No team attempted framework-level work |
| Controller inheritance complexity | High | High | Gamma’s golden dataset: 1/5 on GL precision |
| Self-reported accuracy inflation | High | High | Alpha ~70% vs Epsilon/Zeta “100%” claims |
| Quality variance across teams | High | High | 5x quality gap between best and worst teams |
| Intern attrition / skill gaps | High | High | Eta inactive 2+ weeks, exam conflicts |
| API quota exhaustion | Medium | Medium | Multiple teams reported rate limits |
| Regional compliance gaps | Medium | High | Only Indian GST attempted |
| Data migration breaks | Medium | Medium | Not yet attempted |
What AI Actually Compresses
Section titled “What AI Actually Compresses”| Phase | Compressible? | AI Impact |
|---|---|---|
| Understanding legacy code | Yes (5-10x) | High |
| Mechanical translation | Yes (10-50x) | High |
| Test generation | Yes (3-5x) | Medium-High |
| Architecture decisions | No | None — needs human judgment |
| Domain validation | Partially | AI drafts, human verifies |
| Framework design | No | None — needs senior engineering |
The Honest Assessment
Section titled “The Honest Assessment”For a full ERPNext equivalent:
- Traditional (no AI): ~5-8 years with a team of 10
- AI-assisted: ~12-18 months with a team of 8-12
- AI-assisted (interns only, core modules): ~3-6 months with a team of 5
The right question: “What is the minimum viable extraction that delivers production value?” For most businesses using ERPNext, the accounting engine IS the product. A Go accounting engine with clean APIs, extracted with full parity testing, deployed alongside ERPNext via Strangler Fig — that is achievable in 3 months with a focused team.
Key recommendation from observed data: Optimize for team quality over team size. A focused pod of 3-5 high-engagement interns with enforced PR review, provisioned API keys, and weekly parity checkpoints outperforms a 40-person cohort with variable commitment.
See Also
Section titled “See Also”- Codebase Complexity — The complexity data underlying these projections
- AI Migration Landscape — Tools and compression ratios
- Intern Team Results — The observed team data behind the velocity analysis
- Standard Feasibility — Why the market needs a modernization standard