Hedge Fund Telemetry  |  Homepage  ·  All pages  ·  Running costs  ·  Cost & build plan  ·  Hosting review  ·  Plugin architecture
Hedge Fund Telemetry/ Cost savings & build plan/9 Aug 2026/ Proposal — nothing actioned

Roughly $7,000 a year of the running cost is removable.

Every figure marked Confirmed was pulled live from the WP Engine account, the WordPress database or a public price list on 8–9 August 2026. Figures marked To confirm need an invoice before they go in front of the client. I have not guessed at anything and labelled it as fact.

01 The savings, line by line

Hosting, today$7,272per year · WP Engine Premium 1
Hosting, proposed$312year one · Hostinger KVM 8
Hosting saved$6,960year one, 95.7%
Over three years$20,592including renewal rates
LineNowProposedSaved / yearConfidence
HostingWP Engine Premium 1 → Hostinger KVM 8 VPS $7,272.00$311.88$6,960.12 Confirmed
Email platformActiveCampaign → own automation + Amazon SES ?≈$48.00invoice needed To confirm
WooCommerce Subscriptionslicence retired with the custom plugin ?$0licence value To confirm
WooCommerce Membershipsreplaced by the access grid ?$0licence value To confirm
AutomateWoosecond automation engine, absorbed ?$0licence value To confirm
Mollie gatewayactive, zero subscriptions on it $0$0removes risk, not cost Confirmed
Confirmed saving today$7,272.00$359.88 $6,912.12

Why the "to confirm" rows are blank

I can read the WordPress database, so I know exactly which paid plugins are installed. I cannot read what he is being billed for them, and the same goes for ActiveCampaign. Send the ActiveCampaign invoice and the WooCommerce.com renewal list and these rows fill in within the hour. My expectation is that they add several hundred to a couple of thousand a year on top — but that is an expectation, not a number, and it is not going in a client document until it is one.

Keep this in proportion

The site turns over roughly $622,000 a year with 845 active subscriptions and 1,283 active members. Hosting is about 1.2% of revenue. The saving is real and worth taking, but the stronger argument for this whole project is control and speed — the back office is unusable, and that costs more in unworked renewals than the hosting bill does.

02 Hosting — Hostinger KVM 8

The current plan is provisioned for an agency running dozens of sites. The account runs three, one of which is empty.

MetricAllowance nowActually usedKVM 8 provides
Storage100 GB37.14 GB400 GB NVMe
Bandwidthincluded347 GB / cycle32 TB
VisitsPremium 1 tier56,362 totalnot metered
CPU / RAMnot disclosed8 vCPU / 32 GB
Sandbox sites1500 GB usedn/a
Root accessnoyes
Cost$606.00 / mo$7,272 / yr$25.99 / mo

What comes with self-managing it

Patching, MySQL tuning, TLS renewal and uptime response become ours. With 845 live Stripe subscriptions on the box, a renewal cron that stops silently on a Sunday is a revenue incident, not a hosting one. Budget for daily off-server backups and cron monitoring before cutover — roughly $60–120 a year, which barely dents the saving.

03 Building our own service instead of renting

Three rented products get replaced by one custom plugin plus one cheap sending relay. The architecture note covers the technical side; this is the commercial case.

Rented todayWhat it actually doesReplaced byRunning cost
WooCommerce Subscriptionsrecurring billing on top of Stripe Custom plugin talking to Stripe directly$0
WooCommerce Membershipswho can see what Access grid — 49 rules, one table$0
AutomateWoolifecycle automation Automation engine on Action Scheduler$0
ActiveCampaigncampaigns + automations + sending Our engine + Amazon SES for the pipe≈$4 / mo
Total running cost of the replacement≈$48 / yr

The part that matters more than the money

Right now nothing can see everything. Reading data lives in one table, subscriptions in another, membership access in a serialised option, and email engagement in ActiveCampaign. A rule like "quiet 30 days and renewing within 45" is impossible today without syncing three systems. In one system it is a single query — and it is exactly the rule that protects a business where 89% of revenue arrives once a year.

Where this could go wrong, said plainly

Deliverability is the risk, not the code. Never send bulk mail from the VPS. Fix SPF, DKIM and DMARC first — SPF currently authorises GoDaddy with a hard fail while mail runs through Microsoft 365, so the domain is already misconfigured. Split transactional and marketing onto separate sending domains, warm the new one over 4–6 weeks, and run in parallel with ActiveCampaign before cancelling. The failure mode is not "it doesn't work" — it is "it works, and quietly stops landing in inboxes three months later."

04 The build, in order

Sequenced so that nothing touches live billing until the tidy-up and the parallel run are done. Durations are working estimates, not quotes.

Phase 0 · Stop the bleeding~1 week

Fix SPF/DKIM/DMARC. Activate authenticated transactional mail. Kill the ThumbPress job failing every 10 minutes since 15 July. Chase the 6 genuinely failed renewals. Deduplicate the market-data cron. Turn on HPOS. Purge 49,967 stale scheduler rows. Drop orphaned tables and cron. Remove Mollie. No behaviour changes, everything gets faster and quieter.

Phase 1 · Tidy the commercial model~3 days

Archive the six dormant plans. Collapse the three Private Investors SKUs. Price or retire the unpriced products. Write down which plan grants which content — the extracted grid is already documented and needs Tom's sign-off.

Phase 2 · Migrate hosting~1 week

Provision KVM 8, move 37 GB of files and the 1.4 GB database, keep the FTP and EOD market data ingestion running, re-point Stripe webhooks, cut DNS at GoDaddy. Backups and cron monitoring live before cutover, not after.

Phase 3 · Build the pluginthe main build

Custom tables, Stripe integration, the access grid, the member console, the retention engine. Runs alongside WooCommerce, reading the same Stripe subscriptions. Nothing is switched off.

Phase 4 · Parallel run~4 weeks

Both systems live. Reconcile every renewal, every access decision, every tag, daily. WooCommerce stays installed and idle. This is the phase that makes the whole thing safe.

Phase 5 · Email cutover~6 weeks

Warm the new sending domain, move automations one at a time, keep ActiveCampaign live until nothing is running on it. The cold legacy list is a separate re-permission project on a separate subdomain.

Phase 6 · Switch off~2 days

Deactivate WooCommerce Subscriptions, Memberships and AutomateWoo. Cancel ActiveCampaign. Cancel WP Engine. The saving starts here, not before.

05 What I need to finish the numbers