THE REINSURANCE ACTUARY
  • Blog
  • Project Euler
  • Category Theory
  • Tutoring
  • Disclaimer

Building an Anki deck for IFoA CP1 exam using LLMs

13/2/2026

 

I was surprised to find that there are no decent flashcard/Anki decks for the IFoA CP1 (actuarial practice) exam. The exam basically involves learning a huge quantity of material to a fairly surface level - breadth over depth - and then applying this body of knowledge to various recurring scenarios. ‘A developing economy is considering X discuss the risks. Or a new mutual insurer is considering action Y, what might be the effect. etc.

One of the best ways of memorising large bodies of knowledge is spaced repetition. For more than you could ever want to know about it, see the following write up by the always excellent Gwern [1].

To me, this is why I think the CP1 exam is calling out for a good Anki deck, and why I thought I'd make one.
Picture
This is what is currently available
ActEd Flashcards?
You might ask – what about the ActEd Flashcards? Can't you just use those? Firstly, these are not on Anki, but more fundamentally the flashcards are just not designed in adherence with the practice of good flashcard design [2], for example, they consistently break the rule that each card should be an atomic fact. Instead the flashcards are effectively just the core material, divided into chunks and put onto A6 index cards.

And while it’s true that many people rely heavily on acronyms for the exam, you still need to learn the basic concepts in the first place. Such as what is the difference between a defined benefit and a defined contribution scheme, what is asset-liability matching, and so on and so on. etc.

I therefore decided to make my own deck, which you can download using the link below to the Anki website, or if you prefer I’ve added a csv with the same info to the Github link. It covers 283 defined terms across all the course notes.

Github: github.com/Lewis-Walsh/CP1_IFoA_glossary/blob/main/CP1_glossary_anki.csv
Anki: ankiweb.net/shared/info/2079220336

How the glossary was created

​Unfortunately, the core reading and combined materials pack are copyrighted, so while it's probably fine to create your own deck for personal use from this material, it didn’t feel appropriate for me to create a glossary I was putting out into the public domain based on this material. I decided to build my glossary around the past papers instead, here’s an outline of the process I followed:
  1. Downloaded all the CA1 and CP1 past papers from the IFoA website.
  2. Converted past papers from pdf format to markdown using PyMuPdf
  3. Then got Claude to write a python script to loop through and pass each question for review individually via Ollama to a copy of Ministral-3 which was running locally.
  4. Ministral was prompted to review the question being sent to it and return a list of any ‘actuarial, finance, or technical terms’ used in the question. I tested a few prompts and tweaked until I got answers I was happy with.
  5. The Python script processed all 10 questions, across the 40 or so past papers (400 questions), and also all the questions in the paper 2, generally 1-2 per paper (another 80 or so questions). Collecting the technical terms and outputting the list as a csv.
  6. Claude then reviewed the list to look for obvious gaps (e.g. when limit of a reinsurance contract was included, was the excess of a reinsurance contract included?)
  7. Then Claude did another pass to remove all duplicates 
  8. Then Claude did a final pass to review the list and add any terms which appeared to be missing based on a comparison to the IFoA CP1 syllabus
  9. Claude then wrote short definitions for the terms, relying on public knowledge of the general terms. I reviewed samples of these initially, and then left Claude Code ticking away running batches until all the terms had been defined.
  10. I then reviewed the list by hand myself to check for accuracy and completeness.

Why use the exam papers to generate the terms?

By building the glossary from the past papers, firstly, we're building the deck around what the exams are actually testing which is what we should care about when studying, but also it puts it firmly in fair-usage territory.

You might ask, why use Ministral at all?

The obvious way to approach this project is to just get Claude/ChatGPT/Gemini to run the whole thing. I quickly found however I was butting up against their usage limits. I was repeatedly hitting the usage limits on my pro plan, while barely making a dent in the papers I needed to process. This was because I was sending massive amounts text to Claude, lots of it redundant, for it to carry out a relatively simple and repetitive task that a less capable LLM could have managed. Because Ministral-3 was running locally (on my own GPU), I effectively have as much usage as I needed. It ran fairly quickly, but I could have for example if needed just left it running overnight. By outsourcing the high volume but fairly straightforward task to my local GPU, we neatly side stepped this problem.

As an aside, it’s also really interesting that this usage would effectively not have been possible (or at least would have taken weeks of compute) even 12 months ago . You can now have a pretty decent LLM running on a home gaming computer, completing tasks that previously would have been intractable or requiring specialised NLP. Maybe you could have tried to train a machine learning model to select terms from text by passing it large numbers of samples of questions and the terms it should return. Now you don't need to, all you need to do is download a 10GB file from the internet, run some open-source software (Ollama) to set it up (nothing complicated) and you’ve got an out of the box solution.

I offer tutoring for IFoA exams and actuarial modules. Details here www.lewiswalsh.net/tutoring.html
 
[1] https://gwern.net/spaced-repetition
[2] https://www.supermemo.com/en/blog/twenty-rules-of-formulating-knowledge


Your comment will be posted after it is approved.


Leave a Reply.

    Author

    ​​I work as an actuary and underwriter at a global reinsurer in London.

    I mainly write about Maths, Finance, and Technology.
    ​
    If you would like to get in touch, then feel free to send me an email at:

    ​[email protected]

      Sign up to get updates when new posts are added​

    Subscribe

    RSS Feed

    Categories

    All
    Actuarial Careers/Exams
    Actuarial Modelling
    Bitcoin/Blockchain
    Book Reviews
    Economics
    Finance
    Forecasting
    Insurance
    Law
    Machine Learning
    Maths
    Misc
    Physics/Chemistry
    Poker
    Puzzles/Problems
    Statistics
    VBA

    Archives

    February 2026
    December 2025
    November 2025
    October 2025
    February 2025
    April 2024
    February 2024
    November 2023
    October 2023
    September 2023
    August 2023
    July 2023
    June 2023
    March 2023
    February 2023
    October 2022
    July 2022
    June 2022
    May 2022
    April 2022
    March 2022
    October 2021
    September 2021
    August 2021
    July 2021
    April 2021
    March 2021
    February 2021
    January 2021
    December 2020
    November 2020
    October 2020
    September 2020
    August 2020
    May 2020
    March 2020
    February 2020
    January 2020
    December 2019
    November 2019
    October 2019
    September 2019
    April 2019
    March 2019
    August 2018
    July 2018
    June 2018
    March 2018
    February 2018
    January 2018
    December 2017
    November 2017
    October 2017
    September 2017
    June 2017
    May 2017
    April 2017
    March 2017
    February 2017
    December 2016
    November 2016
    October 2016
    September 2016
    August 2016
    July 2016
    June 2016
    April 2016
    January 2016

  • Blog
  • Project Euler
  • Category Theory
  • Tutoring
  • Disclaimer