Product

One Calculator, Three Surfaces, Zero Drift

Most adviser tech ships calculators as marketing pages. We rebuilt ours as infrastructure - same engine in the dashboard, the client portal, the native app, and inside every AI agent.

June 2, 2026
6 min read
Pete Ridlington

Most adviser firms have run into this. You sit with a client and run a pension projection in your planning software. You hand them a printout. The next morning the client logs into your portal, finds the same calculator, runs the same scenario, and gets a slightly different number. Same calculator, same inputs, different result. Why? The answer is usually depressing: the dashboard calculator and the portal calculator are two different pieces of software, built at different times, by different teams, with different defaults and slightly different rounding. They were never supposed to disagree, but nobody connected them. So they drift. And every drift erodes trust in tools that are supposed to build it. We rebuilt Ningi's calculator suite this month and the rebuild started with a single rule: there is one calculator. Not one calculator definition surfaced in different places. One calculator. One engine. The same code path running whether you are using the calculator in your adviser dashboard, in the client portal on your phone, in the native mobile app, or inside an AI agent answering a question about pension drawdown. It sounds obvious. It is not how most platforms work. What we shipped 49 financial calculators across eight categories - tax, property, mortgages, pensions, retirement, investments, savings, financial health, education, family, business, protection. The full set covers the conversations advisers actually have, from take-home pay to FIRE numbers to suitability calculations. Three user-facing surfaces, one engine. Your adviser dashboard runs the calculator. Your client logs into the secure portal on their phone and sees the same calculator. They open the native iOS or Android app and tap More then Calculators and see the same calculator. All three surfaces fetch their UI shape from a single API endpoint and POST inputs to a single endpoint. The maths never leaves the server. Tax tables cannot fossilise in an app-store binary because the device never executes the workings. Shareable scenarios with QR codes. Run a calculation in a meeting. Hit Share. Choose For my clients (requires login) or For anyone (public link). The recipient lands on the same calculator pre-filled with the exact inputs you used. The whole payload is in the URL - there is no shortened-link service in the middle, no tracking, no expiry. A QR code makes the in-meeting handover work. The client scans with their phone camera and the same scenario opens in their browser. Agents that can actually run the numbers. Cody (technical support), the Marketing Agent (content), and the Report Agent (suitability docs) each gained three new tools - list calculators, get a calculator's manifest, run a calculation. Ask the support agent how much take-home pay you would lose to a 5% pension contribution and it does not guess. It runs the take-home pay calculator with the inputs you mentioned and tells you the actual number from the actual engine. Marketing content can include pension projections that are correct because they came from the same code that the planning software uses. Suitability reports embed cashflow figures because the report agent can pull them. A compliance footnote on every result. PROD II / COBS 4.5.2R / COBS 13 disclosure is baked in. Every result panel explicitly names which firm-tunable assumptions fed the calculation (your firm's chosen CPI, growth, fee assumptions) and the standard disclaimers about illustrative figures and indicative costs. Public exposure of the calculators becomes a configuration decision, not a compliance retrofit. Assumptions, in three tiers Regulatory values are locked. Personal allowance, basic rate, NI thresholds, ISA allowance, pension annual allowance. Firms cannot override them. Ningi updates them centrally when HMRC publishes new tax year data, and every calculator on every surface picks up the change the moment we deploy. Market values are Ningi defaults that firms can override globally. CPI inflation, growth rates, default platform fees. The cap is FCA COBS 13 Annex 2 - a firm cannot set growth to 12% even if their compliance officer fancies optimistic projections. Inflation cannot be set to zero. The schema enforces both ends. Policy values are firm-set globally. Emergency fund target months, 50/30/20 budget split, FIRE withdrawal rate, retirement income replacement ratio. A firm running a more cautious house view sets a higher emergency fund target and a lower FIRE withdrawal rate. Every calculator picks it up. Every report agent doing a suitability draft uses the same numbers. Why this matters A calculator suite is usually a marketing page. Ningi's is infrastructure. Every commit runs five regression gates - unit tests, golden master snapshots that must be byte-identical or fail, behaviour tests for determinism and assumption overrides and regulatory immutability, an HTTP dispatcher smoke test, and a cross-surface contract test that POSTs every test scenario to both APIs and asserts the responses are deep-equal. If a calculator on the adviser app starts producing a different result from the same calculator on the client portal, the build fails before the code ships. It is unglamorous engineering. It is also the only way to ship 49 calculators across multiple surfaces and keep them trustworthy. What is next The Beta we just shipped covers the three user-facing surfaces and the three agents. The pre-GA roadmap is short and specific: Embeddable calculator widget for adviser firm websites with lead capture. Drop a calculator into your firm site, gate the result behind an email, run the lead through the marketing engine. Usage telemetry. We need to know which calculators advisers and clients actually run, which assumptions firms tune, which scenarios get shared. That data lives on the Manage API (client data does not sit in our analytics database) so it is the next build. The last 12 workings files using bare numeric constants. The engine now pulls financial values from the assumptions package, but a handful of older calculators still have inline numbers that should be migrated. Tracked. Mechanical. Rate limiting on the public endpoints, ahead of the public widget shipping. If you are using Ningi already, the calculators are live now. Open Calculators from the adviser sidebar. The full catalog is there. Run something, hit Share, send the QR code to a client phone and watch the same calculator open on their device with the same inputs. If you are not yet on Ningi, the demo is the calculator on three surfaces at the same time. Same numbers. Same assumptions. Same trust.

CalculatorsArchitectureComplianceProduct