Qnity Consultants

A small consultancy for the difficult problems in life insurance.

We work across life insurance, capital markets, sustainability and AI, for teams that need the answer to hold up under scrutiny. Most of what we deliver is working code.

What we do

  • Life insurance

    Actuarial modelling, valuation and reporting for life portfolios, including Solvency II balance sheets, IFRS results and the assumptions behind them.

  • Capital markets

    Economic scenario generation, yield curve construction and the long-horizon market assumptions that asset-liability decisions rest on.

  • Sustainability

    Carbon intensity and TCFD reporting for insurers and pension schemes, from the calculation itself through to the process that produces it each year.

  • Innovation

    Turning research into working tools: open, testable models that a team can inspect, run and maintain after we leave.

  • AI for actuarial work

    AI on the repetitive parts of actuarial work, such as extracting regulatory data, validating input files and testing spreadsheets, built so that every result can be checked before anyone relies on it.

How we use AI

We use AI where the work is repetitive and the answer can be verified independently. The model does the reading; a cross-check, a test or a human review decides whether the result is right. Every tool reports what it read and what it found, so a reviewer can follow the evidence rather than trust the output.

Our SFCR pipeline, built on Mistral OCR, extracts the balance sheet, own funds and SCR tables for 22 Italian life insurers. Raw extraction matched 84% of 1,706 cells exactly; manual review and automated cross-checks clear the rest, and we publish both figures.

Our Claude skills for actuaries answer questions on historic EIOPA yield curves from every monthly release since 2014, validate quarterly unit-linked fund extracts against 22 rules, and run tests written in plain English against an Excel workbook, writing only to the results columns.

We also measure what AI assistants tell customers. A script asks Claude, GPT and Gemini to rank life insurers from a customer's point of view and records the reason behind every rank, so an insurer can see where it stands and why.

How we build it

Most of what we deliver is code rather than a slide deck. We write production models in Python and Matlab, keep everything under version control in Git, and document in LaTeX where the mathematics needs to be readable years later.

Where a process currently lives in Excel and VBA, we start there rather than insisting on a rewrite, and move it when there is a reason to. Handover includes training the internal actuarial team to run, test and extend the model themselves, which is usually the difference between a model that survives and one that does not.

  • Python
  • Matlab
  • Git
  • Excel and VBA
  • LaTeX
  • Jupyter
  • Claude
  • Mistral OCR

Where we work

  • Europe

    Continental engagements, with Solvency II and EIOPA reporting as the working context.

  • United Kingdom

    UK insurers, pension providers and the London market.

  • Singapore

    Insurers in Singapore and the wider Asian market, with risk-based capital regimes as the working context.

  • Remote

    Most work runs remotely, with on-site alignment and workshops when a project calls for it.

Working languages: English, Italian, German and Slovenian.

Past projects

A government-owned pension fund

Actuarial transformation18 monthsPython, GitHubOn site and remote

Client. A dedicated provider of supplementary pension insurance products, with €2bn under administration across a large unit-linked and annuity portfolio.

Challenge. The actuarial and innovation team was expanding and moving from Excel-based workflows to programmatic ones at the same time. Two changes at once, either of which is difficult alone. We were brought in to set up and lead the transformation programme and to support the team through the transition.

Approach. Over 18 months we ran on-site workshops and presentations to align the team, senior leadership and the board behind a single vision, because a transformation of this kind fails on consent long before it fails on code. Alongside that we worked with internal staff to build their skills in Python and GitHub.

The bulk of the work was automating existing processes in Python. We also built a novel stochastic model for time value of options and guarantees that removes the need for an external scenario generator, and a large liability forecasting model. The first as an Excel workbook with embedded Python for the people who work in spreadsheets, the second as a Python library for the people who work in code. The entire corpus was handed over to their internal team.

Outcome. A large part of Solvency reporting now runs in Python. The team has a liability model that produces ORSA reports in a single run, which also makes planning more realistic than it was before. A set of Python scripts handles cross-validation, data transformation and datafile generation, saving time and reducing errors in the reporting process.

Most importantly, they have internal people trained in Python and version control. The team can maintain and extend the work without us, which is the only version of this outcome that lasts.

A UK long-term savings group

Sustainability27 monthsExcel, Power Query, SustainalyticsOn site and remote

Client. One of the largest long-term savings businesses in the UK, expanding through acquisition, with more than £300bn under administration.

Challenge. New TCFD regulation on carbon intensity metrics produced a high volume of requests at short intervals, while the methodology itself was still changing. The reporting obligation was firm; the reporting pipeline was not.

Approach. We joined a small team of developers, actuaries and business analysts and helped them build a tactical solution in Excel, Power Query and Sustainalytics, deliberately chosen to absorb the immediate volume rather than to last. It carried the increased request load successfully.

In parallel we acted as technical advisor to a separate team building a cloud-based platform intended to remove the reporting overhead permanently. We also built a long-term sustainability forecasting model that let senior leadership judge the scale of carbon-light portfolio development the strategy would require.

Outcome. Across 27 months the company met its reporting obligations throughout the interim period and protected its standing as one of the more sustainability-conscious businesses in the market. It developed a fresh long-term sustainability strategy and cut the reporting lag on its flagship fund by a fiscal quarter. The strategic cloud solution went on to make TCFD reporting effortless.

A UK health insurer

Capital modelling8 monthsMatlabInternal model development

Client. One of the oldest health insurers in the UK, moving its listing from the United Kingdom to Asia.

Challenge. The internal model had been built for compliance with Solvency UK under the PRA. The intended new domicile operates a different risk-based capital regime, under a different regulator and on a real-world basis, which required changes to the model. Calibration risk, absent from risk-neutral modelling, now had to be quantified.

Approach. We joined the Capital Management and Modelling team to take several of the required modules from idea to production, and were assigned four: long-term equity level, long-term equity volatility, long-term credit spread, and long-term credit spread volatility.

We ran a preliminary analysis, implemented multiple prototypes in Matlab, and iterated on each module. The winning methodology was a Bayesian approach using the Metropolis-Hastings algorithm to calculate calibration risk, tailored to each of the four models. We trialled it on a subset of countries to validate the approach further.

Because the method was unfamiliar, we also produced material introducing it to a wider internal audience: a novel approach that nobody can explain does not survive review. After final approval, we worked with the internal model team to translate the Matlab code into their own software.

Outcome. The company added four new modules, expanding the coverage of modelled risks and aligning the model to the new regulatory regime. It was also introduced to several novel approaches to risk modelling that may prove valuable later.

A top-listed Italian bancassurance group

Capital markets3 monthsPythonOn site and remote

Client. The life insurance entity of a top-listed Italian bancassurance group.

Challenge. The ALM team received a large datafile of risk-neutral and real-world scenarios from an external provider every month and used it for downstream analysis. They had no independent way to confirm the generator was implemented and calibrated correctly.

Approach. After an on-site brainstorming workshop and several calls with the vendor, we agreed that an automated Python validation framework suited an activity repeated every month better than a one-off review would.

We built it in three phases, one per scenario type: a battery of tests for the risk-neutral Black-Scholes model, then the risk-neutral Hull-White model, and finally the real-world Libor market model. Material findings went back to the vendor after each phase.

Outcome. The team now runs a script each month that catches errors before they reach the analysis, and has independent assurance that the generator meets the standard they need. It gives them a second line of defence against model error.

The client also allowed part of the methodology to be shared publicly. A reduced version of the validation framework is published on Open-Source Modelling.

Open source

We are the main sponsor of Open-Source Modelling, one of the largest open repositories of actuarial algorithms and practical workbooks, built as an alternative to closed commercial software. Qnity funds and maintains the project, because the models our clients rely on should be ones they can read.

Started in Milan in 2021 with €25k in pre-seed funding and a place in the Fin+Tech accelerator, it now carries open Python and Matlab implementations of Smith-Wilson, Hull-White, Vasicek two-factor, Nelson-Siegel-Svensson, Black-Scholes, stationary bootstrap and singular spectrum analysis, alongside a full asset-liability model and economic scenario generator.

  • insurance_python Actuarial and risk algorithms in Python, in one place.
  • insurance_matlab The same algorithms, published for Matlab users.
  • Open source asset-liability model An asset liability model that simulates the development of a unit-linked portfolio and the assets backing it.
  • SFCR_using_Mistral_2025 Solvency and Financial Condition Report tables extracted for 22 Italian life insurers with Mistral OCR, cross-checked and with measured accuracy.
  • insurance_skills Claude skills for actuaries and risk managers: EIOPA yield curves, data-file validation, plain-English tests for Excel.
54public repositories
210followers
Freeto use and fork

See the full organisation on GitHub

Who we are

Gregor Fabjan

FounderLondonMSc Financial Mathematics

Gregor founded Qnity Consultants and has led Open-Source Modelling, the open library of actuarial algorithms the firm sponsors, since 2021. He works directly on the firm's engagements, from the first workshop through to handover.

He started in insurance at Allianz SE in Munich, preparing quarterly MCEV and value of new business reports for senior leadership. He then spent two years at Deloitte in Milan, where he went from junior developer to main developer of the department's largest asset-liability model, written in Matlab, and ran ORSA calculations for insurers.

He has also built two insurance ventures. Qnity Reciprocal, an on-demand insurance mutual, was backed by Entrepreneur First, Lloyd's Lab and nine Lloyd's syndicates. Know Your Code automated actuarial processes with AI, went through the AIvolution accelerator in Italy and raised a pre-seed round. His recent work applies AI to actuarial problems, including an OCR pipeline that extracts SFCR tables from life insurers' reports and Claude skills for actuarial work, both published openly.

He holds a BSc and an MSc in Financial Mathematics from the University of Ljubljana, including an Erasmus year in financial mathematics and actuarial science at the Technical University of Munich. His master's thesis, sponsored by Allianz SE, used Markov and hidden Markov models to price microinsurance products in Egypt with little data.

He sits on the Institute and Faculty of Actuaries' Better Sensing and Responding to Change working party, which is updating the Actuarial Control Cycle for new modelling approaches. A paper, Robotic Advisory as Support for Retirement Decision-Making: A Proposal for a Hybrid Model, is awaiting publication.

He works in English, Slovenian, Italian and German.

LinkedIn  ·  GitHub  ·  Open-Source Modelling

Contact

A short description of the problem is enough to start. We reply to everything, and we will say plainly if the work is not a fit for us.