The problem
The FIN 3616 exam is three hours, handwritten, with a calculator and a printed formula sheet. No PC, no Excel. You are expected to write =NPV(r, C2:C6)+C1 by hand — and to know why C1 sits outside the range.
The material it draws on is scattered: lecture notes for Topics 1–6, six lab workbooks with VBA buried inside .xlsm files, eight past exams with examiner guidance, and a formula sheet. Digging through that pile the night before is not revision. It is searching.
Hence the name. The Shortcut is both the shortcut through the pile and the keyboard shortcuts, which make up a quarter of the entries.
What it does
All of it is pulled into one dataset behind one search field. The search matches across title, syntax, summary, traps, shortcuts and Norwegian keywords at the same time, ranking title hits first.
It ignores diacritics, so «naverdi» finds «nåverdi». Shortcut search ignores separators, so “ctrl1”, “ctrl 1” and “Ctrl + 1” are the same query. When nothing matches, it does not simply say so — it finds the longest substring of the query that does exist somewhere and suggests the nearest candidates. “solvr” lands on Solver.
The rest is keyboard: / focuses the search field, the number keys toggle categories, 0 shows only entries that have a shortcut, Enter opens the highlighted hit. Ctrl + P expands everything, strips the search field and filters, and prints the whole dataset as revision sheets.
Traps over definitions
Every entry has a dedicated field for exam traps, and that is where the weight sits. NPV discounts the first cell of the range by one period — include the time-zero cash flow in the range and the entire series is discounted one period too many. In the lecture example that is the difference between 150.24 and 165.26.
That kind of thing is easy to nod along to and easy to get wrong under time pressure. So the traps are marked visually, searchable on equal footing with everything else, and tied to where they have appeared on past exams.
One file, no dependencies
The whole thing is a single index.html. The dataset sits inside the file, the fonts are inlined as base64, and there are no external requests. It runs just as well from a USB stick or file:// as it does from here — 215 kB in total.
Content is edited in one JSON file, and a small Python script validates the dataset and rebuilds the page. If a required field is missing, an id repeated or a category unknown, the build stops and names the offending entry.
The palette and typography are lifted straight from this site, so the tool belongs here visually. Light theme is the paper surface, dark theme is the green hero surface.
Status
Work in progress. The structure is settled — search, filters, keyboard handling, printing and the build step are done. What keeps growing is the dataset: entries are added as the lab workbooks and past exams are worked through again.
Scope
This is one reference doing one thing. No quizzes, no spaced repetition, no progress tracking. All Excel content applies to Windows; Mac variants are deliberately left out, because the course runs on PC and half coverage is worse than none.