Every business owner reaching the point where spreadsheets no longer cut it faces the same three-way fork: Odoo, SAP, or build something custom. Having spent years implementing custom ERP systems at Commsult Indonesia and watching clients wrestle with this decision, I can tell you there's no universal right answer — but there are clear patterns for when each option wins. Gartner predicts that over 70% of recent ERP implementations will fail to meet their original business goals. A significant part of that failure rate comes from choosing the wrong platform for the wrong reasons. This post is my honest, practitioner's take on the three options.
Raw licensing cost comparisons are misleading because they exclude implementation, training, and ongoing maintenance. For 50 users over 3 years: Odoo Enterprise runs approximately $75,000 in licensing alone, but a proper implementation with consulting adds another $40,000–$80,000. SAP Business One licensing for 50 users starts at $282,000, with implementation typically doubling or tripling that figure for mid-size deployments. Custom ERP has no licensing cost but development is expensive — a well-scoped custom system covering HR, AP, and AR runs $60,000–$150,000 depending on complexity, with lower ongoing costs once built.
Odoo's promise is 82+ integrated modules covering everything from accounting to manufacturing to eCommerce. The community edition is free, and Enterprise starts at around $20/user/month. For straightforward businesses that fit Odoo's standard workflows — wholesale distribution, simple manufacturing, professional services — Odoo delivers excellent value. The problem is customization. Odoo's architecture makes heavy customization expensive to maintain: every major version upgrade (there's one per year) can break custom modules, and the upgrade cost compounds over time. I've seen Odoo implementations balloon from a $30,000 budget to $120,000 when scope creep and upgrade costs were factored in.
SAP Business One is designed for businesses with complex multi-entity, multi-currency, or manufacturing requirements that need the credibility of the SAP ecosystem for investors or enterprise customers. The 72% adoption rate among medium enterprises reflects real demand. But SAP B1's strength is also its weakness: it's a large, complex system, and fitting an Indonesian SME with 40 employees into it often means paying for capabilities you'll never use. Implementation partners in Indonesia typically charge $50,000–$150,000 for a SAP B1 rollout, and that's before customization.
ERP Platform Cost Comparison (50 users, 3-year horizon)
┌─────────────────────────────────────────────────────────────┐
│ ODOO ENTERPRISE │
│ Licensing: ~$75,000 │
│ Implementation: +$40,000–$80,000 │
│ Annual Upgrade: +$5,000–$15,000/yr (custom modules) │
│ 3-Year Total: ~$130,000–$210,000 │
├─────────────────────────────────────────────────────────────┤
│ SAP BUSINESS ONE │
│ Licensing: ~$282,000 │
│ Implementation: +$100,000–$300,000 │
│ Annual Maintenance: +$42,000–$63,000/yr │
│ 3-Year Total: ~$506,000–$770,000 │
├─────────────────────────────────────────────────────────────┤
│ CUSTOM ERP (NestJS + PostgreSQL + React) │
│ Development: $60,000–$150,000 (once) │
│ Hosting: $500–$1,500/mo (Google Cloud) │
│ Maintenance: $5,000–$15,000/yr │
│ 3-Year Total: ~$90,000–$210,000 │
│ (No per-user fees, cost stays flat as team grows) │
└─────────────────────────────────────────────────────────────┘
Winner at 5 years: Custom ERP (no licensing scale)
Winner for fastest deployment: Odoo
Winner for enterprise compliance: SAP B1From my experience implementing ERPs at Commsult: before comparing platforms, map your 10 most critical business processes in detail. If 8 of those 10 map cleanly to Odoo's standard modules, Odoo wins. If your processes are genuinely unique — custom approval hierarchies, industry-specific calculations, integration with non-standard hardware or local government systems — that's when custom ERP justifies its cost.
Custom ERP is not the right choice for most businesses. It requires internal IT capability or a trusted development partner, a realistic multi-year maintenance budget, and processes complex enough that standard platforms genuinely can't serve them. But when those conditions are met, custom ERP is transformative. You get exactly the workflow your team uses, no workarounds, no unused modules, and no annual license fees that grow with your headcount. At Commsult, our custom ERP was built with NestJS + PostgreSQL + React — a stack that's maintainable, well-documented, and deployable on any cloud. The system covers HR leave management, multi-level AP approvals, and automated AR with payment reminders. Total development cost was a fraction of what SAP B1 would have cost, and the system does exactly what the business needs.
Many Indonesian SMEs benefit most from a hybrid: use Odoo for commodity functions (accounting, inventory, CRM) and build custom modules for the two or three processes that are genuinely unique to their business. This captures Odoo's breadth while preserving the precision of custom development where it matters. The key is disciplined scoping: decide upfront which processes get standard Odoo and which get custom code, and resist scope creep in both directions.
# ERP Decision Scoring Framework
# Score +1 for each condition that applies to your business
odoo_score = sum([
processes_fit_standard_workflows, # your ops are relatively standard
no_dedicated_it_staff, # lean IT team
budget_under_50k_usd, # cost-sensitive
team_under_30_people, # small organization
])
sap_b1_score = sum([
multi_entity_structure, # group of companies
complex_compliance_requirements, # regulated industry
enterprise_customers_require_sap, # client expectation
manufacturing_with_bom, # production complexity
])
custom_erp_score = sum([
unique_approval_flows, # non-standard hierarchies
hardware_integration_needed, # scanners, printers, IoT
custom_calculations_core_to_biz, # differentiating logic
trusted_dev_partner_available, # Commsult Indonesia :)
team_over_50_no_per_user_budget, # per-user fees hurt at scale
])
# Highest score wins
winner = max(
("Odoo", odoo_score),
("SAP B1", sap_b1_score),
("Custom ERP", custom_erp_score),
key=lambda x: x[1]
)Start with Odoo if you're a business with straightforward operations, a team of 10–100 people, and you can fit your processes into Odoo's standard workflows with minimal customization. Budget realistically: $40,000–$100,000 all-in for a proper Odoo implementation is normal. Choose custom ERP if your processes are genuinely unique, you have a trusted development partner, and you're willing to commit to multi-year maintenance. The ROI appears in 2–3 years when you're not paying per-user license fees. Avoid SAP B1 unless you're already enterprise-scale, have complex compliance requirements, or need to satisfy investors who expect SAP. For most Indonesian SMEs, SAP B1 is overkill at a premium price.
The most dangerous ERP decision is choosing a platform and then trying to customize it to match your current processes exactly. Every customization adds upgrade cost and technical debt. The question isn't 'can we make this platform work like our current system?' — it's 'can we adapt our processes to the platform's best practices?' If you can't adapt any processes, custom ERP is probably your answer. If you're unwilling to adapt any processes, every platform will disappoint you.
I've seen Odoo implementations fail catastrophically and custom ERP implementations succeed beautifully — and vice versa. The platform is less important than the implementation partner and the internal project sponsor. Before committing to any platform, evaluate: Does the partner have 3+ live references in your industry? Can they show you running production systems, not demo environments? Do they have a realistic timeline and an explicit hypercare plan? A mediocre Odoo implementation will underperform a well-executed custom ERP every time.
Score your situation: +1 for each: your processes fit standard workflows, you have no IT staff, budget under $50,000, team under 30 people. That's Odoo territory. Score: +1 for each: multi-entity structure, complex compliance needs, enterprise customers, manufacturing with BOM. That's SAP B1 territory. Score: +1 for each: unique approval flows, hardware integration, custom calculations, trusted dev partner, team over 50 with no per-user license budget. That's custom ERP territory. The category with the highest score wins.