# 28-Apr-2026 — Thirteen Years and Two Days: What This Would Have Cost via Consultancy

_____

> A look at what the NGX-Ramblers platform and its recent Salesforce API enabler would have cost to procure via traditional UK consultancy, set against what was actually paid to build them. Companion piece to [_From Mock to Production_](https://ngx-ramblers.org.uk/how-to/technical-articles/2026-04-27-salesforce-mock-to-production), which describes the architecture; this article looks at the money side.

Two pieces of work sit underneath the Ramblers Email Project (Motion 2025[7], passed by General Council in 2025). The motion resolves that every Area and Group officer should be able to email their own members. Ramblers has roughly 500 Groups across the UK; aside from those already running on NGX-Ramblers, none of them currently has an automated GDPR-compliant way to do this. Head Office confirmed in the April 2026 AGM Open Motions Report (Item 9, page 111) that two member-built systems - NGX-Ramblers and Charlie Bigley's MailMan - are being prototyped as the interim email solution.

The technical foundations underneath that motion comprise:

- **NGX-Ramblers** - a multi-tenant public-facing website platform built and refined over **13 years**. Runs more than a dozen live Group websites today, with member management, mailing-list integration with Brevo and Mailchimp, walks programme management with OS Maps and Meetup integration, social events, AGM notices, branding per Group, custom hostnames, and a complete CMS. Codebase: **221,061 lines of code** across **1,511 TypeScript files** and **1,798 commits**, dating December 2013 to today ([codebase evolution stats](https://nbarrett.github.io/ngx-ramblers/codebase-evolution-stats.html)).
- **The Salesforce API enabler** - three repositories (`ramblers-salesforce-mock`, `ramblers-salesforce-contract`, `ramblers-salesforce-server`) delivered on **27 to 28 April 2026** in two working days of human attention plus AI assistance. The data plumbing that lets NGX-Ramblers (and MailMan) read Ramblers' Salesforce-side member records once Head Office supply credentials and field mappings.

A note on scope before we go further. NGX-Ramblers as it stands is a complete website platform, broader than what Motion 2025[7] strictly requires. The motion calls for an email channel; NGX-Ramblers happens to include one (member synchronisation, Brevo / Mailchimp, send-and-unsubscribe with consent writeback, GDPR-compliant audit, admin UI for officers) inside a much wider product. The email functionality is **already in production at every NGX-Ramblers Group today**, and is available to any Group that adopts the platform; Charlie's MailMan is the parallel email-only consumer. For cost-comparison purposes the email-only slice of NGX-Ramblers is referred to elsewhere as *NGX-Lite* - a notional scope answering "what would the email-only portion cost as a standalone procurement?" It is not a separate product waiting to be built. This article costs the full NGX-Ramblers platform alongside the Salesforce API enabler because the broader platform is what was actually delivered over the 13 years; the email-only slice that strictly satisfies Motion 2025[7] is a subset of it.

This article asks the question every charity treasurer eventually asks: **what would these two pieces of work have cost via a traditional consultancy?**

## The numbers up front

|  | If procured today | Cost to Ramblers (volunteer-led) |
|---|---|---|
| **NGX-Ramblers platform** | £2 million to £5 million+ | **£0** *(13 years of volunteer time)* |
| **Salesforce API enabler** | £140k to £280k | **£0** *(two days of volunteer time, plus AI assistance)* |
| **Combined** | **£2.1 million to £5.3 million+** | **£0** |

The right-hand column is what Ramblers' bank account actually records: no procurement, no invoice, no purchase order, no consultancy day-rate. Volunteer time has real opportunity cost - it just isn't borne by Ramblers, so it does not show up anywhere on Ramblers' books. The point of the comparison is the gap between the columns.

The left-hand figures are *reproduction* costs - what a UK digital agency or enterprise consultancy would charge to deliver the same scope from scratch, given a complete specification of what to build. They do not quantify what cannot be tendered for: 13 years of accumulated operational learning, integration history, and lived experience of what an actual Ramblers Group needs from a website. That is the survey, and it cannot be procured at any price.

## Costing NGX-Ramblers

The honest industry rule of thumb for production-grade web platforms is that a senior fullstack developer ships about **20,000 to 25,000 lines of code per year** in finished, tested, reviewable code: slower than greenfield prototyping, faster than research code. Applied to the 128,584 LOC the platform had when this was written in April 2026 (it has since grown to 221,061; the costing below is left on its original April basis):

| Role | FTE | Years | Day-rate (UK 2026) | Cost |
|---|---|---|---|---|
| Senior fullstack developer | 1.0 | ~6 | £700 to £900 | £900k to £1.2M |
| Architect | 0.25 | ~6 | £1,000 to £1,400 | £300k to £420k |
| Project manager | 0.25 | ~6 | £600 to £800 | £180k to £240k |
| QA | 0.25 | ~6 | £500 to £700 | £150k to £210k |
| UI/UX designer | 0.1 | ~6 | £600 to £800 | £72k to £96k |
| **Team build subtotal** | | | | **£1.6M to £2.2M** |

Add procurement, infrastructure setup, accessibility audit, GDPR review, security pentest, training and hand-over (10 to 15% on top): **£1.8M to £2.5M for a credible mid-tier-agency reproduction**.

Three pricing bands:

| Path | Cost | Elapsed |
|---|---|---|
| Solo independent contractor with fractional architect/QA/PM | £600k to £900k | 7 to 9 years |
| Mid-tier digital agency, full team | £1.5M to £2.5M | 4 to 6 years |
| Big-four enterprise consultancy with partner oversight, formal discovery deliverables, change management | £3M to £5M+ | 5 to 7 years |

These figures price what software economists call *reproduction cost*: what a team would charge given a complete specification of what to build. They assume the requirements document arrives on day one, fully written. In reality, NGX-Ramblers' specification was discovered alongside the build, over 13 years.

A consultancy starting cold - without anyone in the room who has spent years inside the volunteer experience of running a Ramblers Group - would spend a further **30 to 60 person-months of discovery** on top of the build effort, working out questions like: what does a Ramblers Group actually need from a website that a generic CMS does not provide? How do walks programmes work in practice? What does multi-tenancy look like in this corner of the world? Where does Brevo's API diverge from Mailchimp's? How do you migrate a Joomla site without losing committee history? That is **another £500k to £1M** in agency time, raising the realistic mid-tier figure to **£2M to £3.5M** and the big-four figure to **£3.5M to £6M+**.

For a charity considering "buy not build" instead, the comparable shape is a multi-tenant membership-organisation website-platform SaaS such as Wild Apricot, ClubExpress, MemberClicks or Glue Up. These typically run at **£100 to £300 per tenant per month**. For 50 live Group sites that is **£60k to £200k per year in licensing alone, in perpetuity**, plus integration work to make the SaaS Ramblers-shaped (Insight Hub field map, walks programme XML export, granular consent flags, Brevo integration). Five years of SaaS plus integration would land in the same band as a lean custom build, at **£700k to £1.5M**, but Ramblers would be renting rather than owning.

## Costing the Salesforce API enabler

The Salesforce API enabler is a much smaller body of work, delivered in a much shorter time. Its scope:

- A development sandbox at [salesforce-mock.ngx-ramblers.org.uk](https://salesforce-mock.ngx-ramblers.org.uk) with synthetic data, a full admin UI, multi-tenant scoping, xlsx upload of Insight Hub member exports, synthetic-data generation with configurable consent distributions.
- A shared contract package ([@ramblers/sf-contract](https://github.com/nbarrett/ramblers-salesforce-contract)) holding the TypeScript types, Zod request schemas, OpenAPI builder, error envelope, the 36 Insight Hub column definitions, and the `MemberProvider` port. Versioned and tagged for consumption by both servers.
- A production server skeleton at [salesforce-server.ngx-ramblers.org.uk](https://salesforce-server.ngx-ramblers.org.uk), scaffolded to plug into Ramblers' real Salesforce data once Head Office supply the connected-app credentials. Five Salesforce-specific functions remain for Head Office to fill in.

For the same scope, a UK consultancy procurement typically falls in three bands:

| Path | Cost | Elapsed |
|---|---|---|
| Solo independent consultant | £60k to £80k | ~4 months |
| Mid-tier digital agency | £100k to £150k | 4 to 6 months |
| Big-four enterprise consultancy | £200k to £350k+ | 6 months or more |

These do not include the discovery cost (typically another £40k to £100k) of a consultancy starting without anyone in the room who knows the project history.

## What was actually paid

For NGX-Ramblers: 13 years of one volunteer's evenings and weekends, plus more concentrated stretches when major reorganisations were under way. Operational hosting costs are non-trivial but small - Fly.io machines, MongoDB Atlas clusters, a Cloudflare zone, S3 storage. The build itself was unsalaried from start to finish.

For the Salesforce API enabler: two calendar days of one volunteer's time, directing AI through the build. Direct AI costs were a small fraction of any of the consultancy figures above. The same volunteer (Nick Barrett, NGX-Ramblers project lead and primary author of the day-one [Salesforce API specification](https://github.com/nbarrett/ngx-ramblers/issues/209)) is the operator throughout.

## The honest framing

The sharper savings come from compressed elapsed time, not from AI being magic.

The accurate framing is: **a domain expert with AI delivers at consultancy-team velocity, without the team**. Remove the operator and the AI loses most of its leverage; remove the AI and the operator is back to consultancy-team velocity. The two together are the multiplier.

This matters because the two figures - £2 million for NGX-Ramblers, £200k for the Salesforce API enabler - do not represent labour that is "free at zero opportunity cost". They represent the time of one experienced practitioner with deep domain context, multiplied by AI throughput. The labour shape is what makes the cost shape possible.

It also matters for what comes next. The **discovery tax** that a cold consultancy pays - figuring out the problem space before any code can usefully be written - is the part that AI does not collapse. AI accelerates *building*, not *understanding*. The £40k to £100k of discovery cost on the Salesforce API piece, and the £500k to £1M on the NGX-Ramblers piece, would still apply if a consultancy were to start either project from scratch today. They are not in the figures above because, on this project, that discovery has already been done by a volunteer over 13 years.

## What this means for charities considering similar work

A few takeaways that generalise:

- **Lines-of-code-per-year is a reasonable rough proxy** for reproduction cost. Take the size of the codebase, divide by 20K to 25K, and you have an order-of-magnitude estimate of person-years a consultancy would charge for. It is not precise; it is a sense-of-scale.
- **Discovery is the expensive part, and AI does not help with it directly.** Charities sitting on volunteer-built systems are sitting on accumulated discovery that has no balance-sheet value. Quantifying it - and recognising it - matters when comparing "build new" against "adopt what volunteers have already produced".
- **AI accelerates construction, not understanding.** A volunteer with 13 years of context and AI assistance can deliver the construction phase of a piece of work in days. A consultancy without context, even with AI assistance, would still spend months on discovery before construction could usefully begin.
- **Software-as-a-service is rarely cheaper in the long run** for charities that have a custom domain shape. Renting a generic platform plus paying for ongoing custom integration tends to total roughly the same as a lean custom build over five years, but with no path to ownership and no leverage over the SaaS provider's pricing.

For Ramblers specifically, the practical effect is that **the Email Project gets delivered**. Without volunteer-led work plus AI acceleration, the same outcome would have meant a multi-million-pound procurement Ramblers does not have in the budget for an interim solution. Instead, the work is done; Head Office's remaining task is well-defined, small, and within the reach of any developer with Salesforce-side knowledge.

## Caveats

- Day-rate figures are 2026 UK estimates from public consultancy benchmark surveys. Real engagements vary by sector, scope and procurement framework.
- Lines-of-code-per-developer-year is a rough industry rule of thumb, not a precise measurement. Real productivity varies by domain complexity, codebase maturity and tooling. Used here as a sense-of-scale, not a bid.
- The cost bands compare what a consultancy would *charge* with what *was paid* in volunteer time. Volunteer time is not free at zero opportunity cost; it is recognised here as the time of one experienced practitioner with deep domain context, rather than as labour that costs nothing.
- The platform continues to evolve. New features, new tenants and new integrations are added regularly. Ongoing maintenance and development are not included in the figures above.

## References

- [_From Mock to Production_](https://ngx-ramblers.org.uk/how-to/technical-articles/2026-04-27-salesforce-mock-to-production) - the architecture write-up for the Salesforce API enabler. Explains the three-repo structure, the port-and-adapter pattern, and what each phase delivered.
- [_The Ramblers Salesforce Mock Server_](https://ngx-ramblers.org.uk/how-to/technical-articles/2026-04-21-ramblers-salesforce-mock-server) - the original write-up of the mock that started the API work.
- [Codebase evolution statistics](https://nbarrett.github.io/ngx-ramblers/codebase-evolution-stats.html) - the live public stats page the NGX-Ramblers figures here are drawn from.
- [nbarrett/ramblers-salesforce-mock](https://github.com/nbarrett/ramblers-salesforce-mock), [nbarrett/ramblers-salesforce-contract](https://github.com/nbarrett/ramblers-salesforce-contract), [nbarrett/ramblers-salesforce-server](https://github.com/nbarrett/ramblers-salesforce-server) - the three repositories of the Salesforce API enabler.
