A build-to-order ERPNext app that lets sales managers set quotas by rep, team, territory and product, track real-time attainment against live Sales Invoice and Sales Order data, and drive competition with leaderboards and gamification. ECOSIRE scopes, builds, installs and supports it for you. Built to order by ECOSIRE for ERPNext v15, v16 — indicative price from $249.00 USD; request a quote for a scoped proposal.

A build-to-order ERPNext app that lets sales managers set quotas by rep, team, territory and product, track real-time attainment against live Sales Invoice and Sales Order data, and drive competition with leaderboards and gamification. ECOSIRE scopes, builds, installs and supports it for you.
今すぐのお支払いはありません。これはチームへの見積もり依頼を送信します。価格と次のステップをメールでご案内します。
Quota-carrying sales teams running on ERPNext hit a wall fast: the native Sales module tracks opportunities, orders and invoices, but it has no first-class concept of a quota, a target period or attainment. Managers end up exporting sales data to a spreadsheet every Monday, hand-keying targets per rep, and reconciling numbers by hand — which means the whole team is chasing a figure nobody can see live. ERPNext's Sales Person master and Sales Team child table give you attribution, and Sales Analytics gives you retrospective charts, but there is no place to say "Ayesha carries 4,000,000 PKR this quarter across the North territory" and have the system score it in real time.
`Sales Target` DocType keyed by sales person, sales team, territory, item group and fiscal/custom period, with naming series and validation on overlapping periods
`Target Slab` child table for tiered thresholds (e.g. 80/100/120%) that can drive commission calculation and accelerators
Real-time attainment computed against your chosen source-of-truth transaction — `Sales Invoice`, `Sales Order` or `Delivery Note` — so dashboard figures reconcile to the books
`hooks.py` doc events (`on_submit`/`on_cancel`) on source transactions that recompute attainment instantly, with roll-ups offloaded to the background queue via `frappe.enqueue`
Nightly `scheduler_events` job that snapshots a `Target Attainment` history record per rep/period for trend, pace and forecast-vs-actual variance
Forecast-vs-actual variance view with pace-to-target and projected-close, so managers see who will land short before period end
We build a proper Frappe app (its own installable module, not a pile of Customize Form tweaks) that adds the missing quota layer. The core is a Sales Target DocType keyed by sales person, team, territory, product/item group and fiscal period, with a Target Slab child table for tiered thresholds (e.g. 80% / 100% / 120%) that can feed commission logic. Attainment is computed against your real transactions — Sales Invoice, Sales Order or Delivery Note, whichever you recognise revenue on — so the number on the dashboard is the same number in your books. A nightly scheduler_events job snapshots attainment into a Target Attainment history table for trend and forecast-versus-actual variance, and hooks.py doc events (on_submit, on_cancel) on the source transaction keep live figures current the moment a rep books a deal, with heavy roll-ups pushed to the background queue via frappe.enqueue so submitting an invoice never slows down.
On top of that data model we build the experience the team actually logs in for: a live attainment dashboard (Frappe Dashboard Charts plus a custom Page/Workspace) showing quota, booked, gap and pace-to-target per rep and team; a leaderboard with ranks, streaks and badges for gamification; and manager views for forecast-versus-actual variance and slab progression. Everything is exposed through the Frappe REST API and @frappe.whitelist() methods so the same figures can power a wallboard, a mobile view or a Slack/Teams digest. Permissions are enforced with role profiles and user-permission scoping — a rep sees their own card and the public leaderboard, a manager sees their territory, and a VP sees everything — using ERPNext's standard permission engine rather than bolted-on checks.
Because this is build-to-order, ECOSIRE builds, installs and supports it rather than handing you a generic marketplace download. After a short scoping call we confirm exactly which transaction defines "attained", your period cadence (monthly/quarterly), your slab and commission rules, and your role hierarchy, then build against Frappe/ERPNext v15 (with v16 support). Typical delivery is 2-4 weeks from confirmed scope. We validate on a staging bench with your anonymised data, run UAT with your managers, deploy behind a rollback plan, and hand over the git repository plus documentation so you own the code outright.
Owns the number for the whole team and needs one live view of quota vs attainment across territories and periods, plus forecast-vs-actual variance to know who will land short — without waiting for a Monday spreadsheet.
Runs a quota-carrying pod and needs per-rep targets, slab progression and a leaderboard that motivates the team, scoped so they see their own territory's numbers reconciled to real ERPNext invoices.
Configures the target periods, slabs and commission thresholds, and wants the attainment data exposed via the REST API and reports so it feeds commission runs, wallboards and board decks cleanly.
Maintains the bench and needs a clean installable app with proper hooks, scheduler events, role profiles and a rollback plan — not ad-hoc customisations that break on the next ERPNext upgrade.
ecosire.com でライセンスを購入し、アカウント ダッシュボードから Sales Target & Quota Management アプリの ZIP をダウンロードします。
ZIP をベンチのアプリ フォルダーに抽出するか、抽出されたアプリへのパスを指定して「bench get-app」を実行します。
`bench --site SITE_NAME install-app APP_NAME` を実行し、続いて `bench maigrate` を実行して、Sales Target & Quota Management をインストールし、そのスキーマを適用します。
サイトの ECOSIRE ライセンス設定を開き、ライセンス キーをアクティブ化します。無料の ecosire_connect アプリと ecosire_license_client アプリが必要です。
| 基準 | エコシエール | カスタムビルド | 競合他社 | オドゥー ネイティブ |
|---|---|---|---|---|
| Quota / target concept | Dedicated `Sales Target` DocType with periods, slabs and hierarchy | Whatever your dev builds from scratch | Generic target fields, rarely period-aware | |
| Real-time attainment | Live via `on_submit` doc events, reconciled to your source transaction | Possible but you design and test it yourself | Often batch/manual refresh only | |
| Forecast vs actual variance | Nightly snapshot history with pace-to-target and projection | Extra scope, extra cost | Usually not included | |
| Leaderboards & gamification | Ranks, streaks and configurable badges off the same data | Build and maintain entirely yourself | Sometimes, quality varies | |
| Commission-ready slabs | `Target Slab` tiers exposed via REST for payout logic | Bespoke, no reuse guarantee | Flat targets, rarely tiered | |
| Permissions & scoping | Role profiles + user permissions per rep/manager/VP | Depends on your dev's diligence | Coarse or all-or-nothing | |
| Version support & upgrades | Built for v15/v16 as a clean installable app, upgrade-tested | You carry all upgrade risk | Depends on vendor's maintenance | |
| Ownership & support | Full git handover + post-go-live support window | You own it and all the bugs | Vendor-locked, subscription support |
This is build-to-order, so there is no instant download. After a short scoping call to confirm your source transaction, period cadence, slab rules and role hierarchy, typical delivery is 2-4 weeks from confirmed scope. That window includes building the app, validating on a staging bench with your anonymised data, UAT with your managers, and production deployment behind a rollback plan.
You choose the source of truth at scoping: `Sales Invoice`, `Sales Order` or `Delivery Note`. Attainment is computed directly from those submitted transactions using the existing Sales Person and Sales Team attribution, so the figure on the dashboard is the same figure in your ERPNext books. `on_submit`/`on_cancel` doc events keep it live, and a nightly scheduler snapshot preserves history for trend and variance.
We build for Frappe/ERPNext v15 as the primary target and support v16. We deliver it as a proper installable Frappe app (`bench get-app`) with `hooks.py`, DocTypes, scheduler events and role profiles — not Customize Form hacks — so it survives standard bench upgrades. Confirm your exact bench version on the scoping call and we build against it.
Every build includes a post-go-live support window for bug fixes and adjustments. Because you receive the full git repository and own the code, you can maintain and extend it yourself, or engage ECOSIRE for a support/maintenance retainer to cover new ERPNext versions, feature additions and upgrade testing.
Yes. The `Target Slab` child table models tiered thresholds and accelerators (for example 80/100/120%), and attainment plus slab position is exposed through whitelisted methods and the REST API. That gives your commission process — whether a spreadsheet, a payroll integration or a future ERPNext build — a clean, reconciled source for tiered payout logic.
Visibility is enforced with role profiles and user-permission scoping. A rep sees their own card and the shared leaderboard; a manager sees their team or territory; leadership sees everything. The leaderboard is deliberately public to drive gamification, while raw per-deal detail stays scoped by ERPNext's standard permission engine.
You own it. Handover includes the full git repository and technical documentation, so there is no lock-in. You can host it on your own bench, extend it with your own developers, or bring it to us for further work — the choice is yours.
A build-to-order ERPNext app that lets sales managers set quotas by rep, team, territory and product, track real-time attainment against live Sales Invoice and Sales Order data, and drive competition with leaderboards and gamification. ECOSIRE scopes, builds, installs and supports it for you.