The full methodology and component-by-component basis behind the S$2.5M to S$3.1M procurement value cited in Agenda Item 8
The proposal note for Agenda Item 8 puts a single headline figure on what Canopy would cost to procure from a professional development house: roughly S$2.5M to S$3.1M. This document is the working behind that figure. It sets out, in full, the question we set out to answer, the method we used, the scope that was priced, the hour-by-hour build estimate, the real-world iteration costs that a raw build estimate always omits, and the 2026 development-shop rates applied at the end. It is provided so that any shareholder who wishes to scrutinise the number can follow exactly how it was reached.
In one line. We inventoried everything Canopy now contains, estimated the hours a professional shop would spend building each part, added the QA, project-management, feedback, polish and post-launch costs that real engagements always carry, and applied 2026 development-shop rates. The central estimate is roughly 16,800 hours, which at Singapore rates is about S$2.5M to S$3.1M, a build a shop would deliver over 26 to 42 months. Mynt Pte Ltd delivered it in about three months, and has charged nothing for it to date.
The question: if a professional software development house were hired to build Canopy from scratch, exactly as it exists today (late June 2026), what would the full engagement cost?
The method is the standard one used to value a software build, and is deliberately conservative:
The key assumption. Canopy is treated as what it is: a production-grade, multi-school SaaS platform that moves real money (billing and statutory payroll), runs AI feature pipelines, ships on the Apple App Store and Google Play, and supports messaging across separate organisations. The cost driver is the domain complexity and the regulatory and financial surfaces, not the choice of technology. The fact that Canopy is built without a heavy framework is not treated as a discount.
An earlier valuation, in May 2026, priced a portal that was already a real multi-tenant system. Since then the platform has roughly doubled in build scope and, more significantly, added the hardest and most expensive categories of software there are: statutory payroll, real-money billing, AI feature work, shipped native mobile apps, and messaging across organisations. The table below shows the growth.
| Measure | May 2026 | June 2026 (now) | Growth |
|---|---|---|---|
| Application modules | ~40 | 128 | 3.2× |
| Lines of application code | ~25,000 | ~61,000 | ~2.4× |
| Lines of styling code | — | ~14,000 | new |
| Database tables | 51 | 86 | 1.7× |
| Server-side functions | — | 252 | new |
| Feature modules | ~13 | 20 | 1.5× |
| Application pages | 8 | 13 | 1.6× |
| Serverless functions | 0 | 13 (3 AI-powered) | new layer |
| Native apps | none | iOS + Android, live | new |
The May figure valued the platform at roughly S$900K to S$1.1M. The growth below is what carries it to S$2.5M to S$3.1M.
None of these existed in the May valuation. Each is, on its own, a substantial piece of software:
The valuation prices the platform as it stands at the end of June 2026:
The 20 feature modules span: accounts and users, administration, announcements, students and resources, tickets and events, enrichments, finance, billing and invoicing, payroll, enrolment, leave, communication (messenger and WhatsApp), teaching assistants, staff scheduling, calendar, documents, holiday programme, attendance, theme preferences, and bug reports. Underneath them run an always-on WhatsApp messaging integration and the serverless functions that power AI extraction, message translation and AI triage.
This section estimates the raw build hours, before the real-world iteration costs in Section 5. The buckets are grouped in three: the features carried over from the May valuation, the major subsystems added between May and mid-June, and the work completed since the mid-June worksheet.
| Area | Low | High |
|---|---|---|
| Discovery & architecture (original scope) | 120 | 160 |
| Core infrastructure (auth, routing, multi-tenancy, branding, dark mode, mobile menu) | 200 | 280 |
| Core module (users / history / settings) | 120 | 160 |
| Announcements | 80 | 100 |
| Students & resources | 160 | 220 |
| Events & tickets | 140 | 180 |
| Enrichments | 160 | 200 |
| Finance (operational reports) | 80 | 120 |
| Leave / HR module | 200 | 280 |
| Teaching-assistant module | 200 | 260 |
| Communication base (per-org bots, broadcast, settings) | 120 | 160 |
| Messenger base (direct messages, groups, realtime, voice, read receipts) | 300 | 400 |
| WhatsApp integration (base service) | 160 | 200 |
| Module-visibility system | 80 | 100 |
| Image / media tooling | 60 | 80 |
| DevOps & deployment (original) | 40 | 60 |
| Carried-over subtotal | 2,220 | 2,960 |
| Area | Low | High | Notes |
|---|---|---|---|
| Singapore statutory payroll | 400 | 560 | CPF, SDL, IR8A, payslips, cross-org master salary, direct-debit bank files. Compliance-heavy specialist domain. |
| Billing / invoicing | 300 | 420 | Month lifecycle, numbered receipts, GIRO, bulk generators, reconciliation, auto-confirm. |
| AI expense claims | 240 | 360 | AI vision extraction, self-correcting learning loop, company accounts, audit trail. |
| Registration & enrolment funnel | 240 | 340 | Public sign-up wizards, five-step pipeline, funnel analytics, referral credits, forecast. |
| Attendance kiosk | 120 | 180 | Role-locked device, camera capture, family-chat auto-post, roster engine. |
| Holiday programme | 100 | 150 | Pricing engine, invoice integration, launch / notify flow. |
| Staff scheduling | 120 | 180 | Saturday shifts, swap requests, shift bids. |
| Messenger maturation | 160 | 240 | Mosaics, mentions, pins, reactions, translation, broadcast, overrides. |
| WhatsApp integration maturation | 100 | 160 | Reactions, deletes, media, threading, profile pictures. |
| Native mobile apps (iOS + Android) | 220 | 320 | Native shell, app-store submission and review, over-the-air updates, native push, automated release pipeline. |
| Unified notifications | 100 | 150 | In-app feed plus push, per-event toggle grid, view-as read-through. |
| Three-tier org model + cross-org consolidation | 100 | 160 | Parent / child orgs, consolidated payroll, paymaster branding. |
| Bug reports + AI triage | 80 | 120 | Queue plus AI classification. |
| Design tokens + theme management | 100 | 150 | Token system, live editor, per-org palettes / logos / fonts. |
| Serverless function infrastructure | 60 | 100 | Secrets, authentication, network plumbing. |
| Additional discovery / architecture for new subsystems | 80 | 120 | Schema design for payroll / billing / AI, security strategy at scale. |
| May to mid-June subtotal | 2,520 | 3,710 |
| Area | Low | High | Notes |
|---|---|---|---|
| Cross-organisation group chat | 80 | 120 | A genuinely new messaging capability spanning separate organisations. |
| Multi-org announcement broadcast | 50 | 80 | Per-org role sets, org switcher in compose, multi-org review screen. |
| Messenger scheduled send | 40 | 70 | Scheduled messages, date / time UI, recurring dispatch. |
| In-app PDF viewer | 40 | 60 | Open PDF attachments in-app, pinch-to-zoom, download. |
| App-wide shared user card + avatars | 50 | 80 | Clickable sender cards and avatars across the app. |
| WhatsApp edit-sync + sender pictures + partner pilot | 60 | 100 | Sync edits to WhatsApp, sender pictures, a partner-org pilot. |
| Second native release pipeline | 50 | 80 | A second automated iOS build and signing track. |
| Account shortcuts + favourites sync | 30 | 50 | Switch org / password / dark mode shortcuts; live favourites sync. |
| Site-wide hardening sweep | 120 | 180 | Re-entrancy and view-as correctness guards across all 20 modules. |
| Security hardening + messaging robustness | 80 | 120 | Tighter access policies, realtime self-heal, media-backlog bounding. |
| Cross-org push, two-way translate, roster sync, billing edge cases | 60 | 100 | |
| Mid-June to now subtotal | 660 | 1,040 |
| Line | Low | High |
|---|---|---|
| Development subtotal (4a + 4b + 4c) | 5,400 | 7,710 |
| QA & bug-fixing (+22%) | 1,188 | 1,696 |
| Project management (+15%) | 810 | 1,157 |
| Build total | 7,398 | 10,563 |
Central build estimate: roughly 9,000 hours.
A raw build estimate prices the work as if it were done once, cleanly, with no changes of mind. Real engagements are not like that. Revision cycles, polish, integration debugging, scope creep, additional QA and post-launch stabilisation roughly double the build figure at this level of maturity, and several categories here are inflated by the new subsystems: payroll and billing need accountant sign-off rounds, AI needs tuning, the mobile apps need app-store review cycles, and the cross-organisation and WhatsApp work has many integration seams.
| Category | Low | High | What inflated it |
|---|---|---|---|
| Client feedback cycles | 1,900 | 2,400 | 20 modules and 90+ surfaces mean many demos and revision rounds; payroll and billing each need accountant sign-off. |
| Polish passes | 780 | 1,120 | Native iOS and Android polish (safe areas, keyboard insets, browser quirks), PDF viewer, avatars, translation animations. |
| Integration debugging | 800 | 1,150 | Serverless functions, AI services, native push, bank files, over-the-air updates, cross-organisation access, WhatsApp protocol drift. |
| Scope creep | 1,200 | 1,850 | 90+ surfaces and "while we're there" requests across an extended engagement. |
| Additional QA rounds | 700 | 1,050 | Cross-module interplay (enrolment, billing, payroll, messenger), the iOS / Android device matrix, the hardening sweep. |
| Post-launch stabilisation | 900 | 1,300 | Live on app stores and moving real money: bugs are higher-stakes. |
| Training & documentation | 220 | 350 | More admin surfaces; payroll and billing operations manuals. |
| Iteration subtotal | 6,500 | 9,220 |
| Layer | Low | High |
|---|---|---|
| Build (development + QA + project management) | 7,398 | 10,563 |
| Iteration / polish / post-launch | 6,500 | 9,220 |
| Grand total (hours) | ~13,900 | ~19,800 |
Central estimate: roughly 16,800 hours. Timeline: about 32 to 42 months at a small-shop pace, or 26 to 32 months with a staffed team of four to six, which is how a shop would realistically deliver it.
The hours above are converted to money using current (2026) market rates. We show the full range of shop types, from premium markets to lower-cost regions, so the figure can be read in context rather than taken on trust.
| Shop type | Hourly rate (2026) |
|---|---|
| Singapore / regional boutique | SGD $150–205/hr (~USD $110–150) |
| Eastern Europe agency | USD $70–105/hr |
| US boutique | USD $175–255/hr |
| Indian / Filipino nearshore | USD $42–65/hr |
We anchor the headline on the Singapore boutique rate, because that is the market Mynt Education would actually buy in, and because a platform that touches Singapore statutory payroll and local banking needs a team that understands that domain. The lower-cost rows are shown for completeness; a lower rate would buy the same hours, but typically with more management overhead and a weaker fit to the local regulatory surface.
| Shop type | Low | High |
|---|---|---|
| Singapore / regional | SGD $1.11M | SGD $1.85M |
| Eastern Europe | USD $555K | USD $1.11M |
| US boutique | USD $1.29M | USD $2.69M |
| Shop type | Blended rate | Low | High |
|---|---|---|---|
| Singapore / regional | SGD $150–180/hr | SGD $2.09M | SGD $3.56M |
| Eastern Europe | USD $75–105/hr | USD $1.04M | USD $2.08M |
| US boutique | USD $175–255/hr | USD $2.43M | USD $5.05M |
That headline is not a single line item; it is how the engagement would typically be structured and invoiced:
| Phase | Indicative cost |
|---|---|
| Fixed-price Phase 1 MVP (core portal + a couple of modules) | SGD $180K–280K |
| Time-and-materials build-out of the heavy modules (payroll, billing, AI expense, enrolment, messenger, cross-org chat), ~SGD $38K–58K/month × ~26 months | SGD $990K–1.5M |
| Native mobile app project (iOS + Android, store submission, two release tracks), often a separate statement of work | SGD $200K–360K |
| Post-launch support retainer, ~SGD $13K–24K/month × 12 months | SGD $156K–288K |
| Change requests, each marked up 15–20% | SGD $300K–550K |
Canopy, as it stands in late June 2026, is the equivalent of a S$2.5M to S$3.1M development-house platform, delivered in-house. It comprises 128 application modules (~61,000 lines of code), 86 database tables with row-level security, 252 server-side functions, 13 serverless functions (three of them AI-powered), 13 application pages, and native iOS and Android apps live on the Apple App Store and Google Play. Across 20 feature modules it runs a real-time, cross-organisation messenger with WhatsApp integration, Singapore statutory payroll (CPF, SDL, IR8A) with bank-file generation, a real-money billing and invoicing system, AI-powered receipt extraction with a self-correcting learning loop, a public registration and enrolment funnel, an attendance kiosk, and a three-tier organisation model with per-organisation module gating.
Equivalent procurement from a Singapore development shop would cost roughly S$2.5M to S$3.1M over a 26 to 42 month engagement: about 2.7× the May 2026 figure of S$900K to S$1.1M, reflecting both a doubling of build scope and the addition of the most expensive categories of software there are: statutory payroll, real-money billing, AI feature work, cross-organisation messaging, and shipped native mobile apps. Mynt Pte Ltd delivered it in about three months, has absorbed all running costs to date, and is contributing it with no development fee.
Prepared for the Annual General Meeting of
Mynt Education Pte. Ltd.
30 June 2026
Related materials