Thinking global, living local

How to use CBSE_paper_patterns: check which Class 12 topics keep coming back at high marks

October 19, 2026

An analysis of 1,955 CBSE Class XII question papers (2022 to 2026) that measures how often high-mark questions reuse the same wording. This post uses only the derived aggregate tables, not the question text.

Open-Source Tools · How-To · Govt data & research ops

How to use CBSE_paper_patterns: check which Class 12 topics keep coming back at high marks

Skip to article content
Text Size

Revised · v1.0.0 · what changed

1,955Class XII papers analysed (2022-2026)
49%Accountancy repetition index (highest)
0%English Core repetition index
2content topics recurring at high marks in 4 of 5 years

Code: github.com/herrrickshaw/CBSE_paper_patterns

Watch the walkthrough

Watch on YouTube: youtu.be/PnWtmpgs4Hg

Why it is useful

  • Teachers, students and tutors get an evidence-based answer to 'do the papers repeat?' by subject, instead of coaching-industry folklore.
  • It replaces gut feeling with one number per subject: the share of marks in 4-mark-or-higher questions sitting on a phrase that recurs in at least 3 of 5 exam years.
  • The result is uneven: Accountancy 49%, Physics 44%, Economics 38% versus Chemistry and Biology at 5%. The repo explains this measures repeated wording, not repeated concepts.
  • Evidence from the run: the subject table and the mined topic list load from CSV in seconds and match the README; the heavy corpus rebuild was not run.

What it is for

The repo mines 2 to 4 word phrases that recur across at least three exam years in high-mark questions, and reports a repetition index per subject. It also documents paper structure, syllabus coverage and three parsing traps for anyone processing CBSE PDFs.

This post uses only the derived tables in data/ (subject_repetition.csv and recurring_topics.csv phrase counts). It does not reproduce question text.

Who it is for

  • Teachers and tutors planning revision emphasis by subject
  • Researchers studying exam design and assessment patterns
  • Data people who want a worked example of parsing messy PDF exam papers
Not for.
  • Predicting next year's paper: lexical repetition is not a guarantee that a topic will appear
  • Skipping syllabus topics. Revise the whole syllabus; this is a descriptive pattern, not advice on what to leave out
  • Redistributing CBSE question papers: they remain CBSE's copyright (see limits)

What you need

RequirementWhyHow to get it
Python 3.9+Reading the aggregate CSVs needs only the standard librarypython.org
gitTo clone the repo (about 246 MB because it carries the corpus)git-scm.com; use a shallow clone (git clone --depth 1) to save time
A Mac plus a 6 GB download (for the full rebuild only)README steps fetch about 6 GB of PDFs and use macOS Vision OCR for scansNot needed for this post and not run

Get the code and an AI assistant

You do not have to be a programmer. Get the repository, give it to an AI assistant, and ask in plain language. Any of these routes works:

ToolWhat you needBest for
GitHubFree account to fork or star; git to clone, or the green Code button, then Download ZIP, or open in CodespacesGetting the code and keeping up with updates
Claude CodeClaude subscription or API key; run claude inside the cloned folderLetting the AI read and run the whole repo
Gemini CLIGoogle account; run gemini inside the cloned folderThe same hands-on workflow with Gemini
Claude.ai, Gemini or ChatGPT in the browserA chat account; upload README.md and the files you care about (or paste the output of git ls-files)Understanding the project and asking questions without installing anything
Other tools (Copilot Chat, Cursor, Codex CLI)Open the cloned folder in the tool and point it at README.md firstEditing and extending the code
git clone https://github.com/herrrickshaw/CBSE_paper_patterns.git
cd CBSE_paper_patterns
claude      # or: gemini

Install

  1. Shallow-clone the repository
    git clone --depth 1 https://github.com/herrrickshaw/CBSE_paper_patterns.git
    cd CBSE_paper_patterns
  2. No install is needed to read the aggregates:
    ls data/

Quick start: commands and what you should see

Read the repetition index by subject

python3 -I -c "import csv;[print(r['subject'],r['papers'],round(float(r['repetition_index'])*100)) for r in csv.DictReader(open('data/subject_repetition.csv'))]"

One line per subject with paper count and repetition percentage.

List the recurring content topics for one subject

python3 -I topics_for.py Physics   # 8-line filter on data/recurring_topics.csv, kind=content_topic

Phrases with the years they recurred in, number of papers and total marks (see sample output).

Sample outputs

Real output from a run on the date shown in the sources line; trimmed to fit.

Repetition index by subject (data/subject_repetition.csv, read 19 October 2026)

python3 -I print_index.py
Subject             Papers  Questions  High-mark Qs  Repetition index
Accountancy             50      1,020           109               49%
Physics                 64      1,266           120               44%
Economics               61      1,269           173               38%
Mathematics             62      1,072            90               22%
Business Studies        54      1,035           119               16%
History                 67      1,569           167               16%
Geography               60      1,036           229               14%
Political Science       60        989           200                7%
Chemistry               72      1,384           133                5%
Biology                 62      1,373           169                5%
English Core            72        757           259                0%

Matches the table in the README. Only the top rows were re-derived from the CSV; the rest were read as printed.

Recurring physics topics (data/recurring_topics.csv, content_topic rows, phrase counts only)

python3 -I topics_for.py Physics
phrase                     years  year_list            papers  marks
electric field                4    2023,2024,2025,2026     14     84
magnetic field                4    2023,2024,2025,2026     11     73
parallel plate capacitor      3    2024,2025,2026          10     55
refractive index              3    2024,2025,2026           8     54
field due                     3    2024,2025,2026           7     35

Example question text in the CSV is deliberately not shown here.

Recurring accountancy topics

python3 -I topics_for.py Accountancy
phrase                     years  year_list            papers  marks
partners firm                 3    2023,2025,2026          14    139
balance sheet                 3    2024,2025,2026          20    139
firm sharing profits          3    2023,2025,2026          13    121
calculate cash                3    2024,2025,2026           9     57
investing activities          3    2024,2025,2026           9     57
firm was dissolved            3    2022,2025,2026           7     41

Overlapping phrases (partners firm / firm sharing profits) are one topic seen through different n-grams.

Ways to use it

MethodHow it works
Read the analysisanalysis/topic_recurrence.md, paper_structure.md and syllabus_vs_papers.md explain the method and findings.
Load the CSVsdata/subject_repetition.csv, recurring_topics.csv, question_type_mix.csv and paper_structures.csv in pandas or a spreadsheet.
Reuse the parsing lessonsThe three traps (reprinted options, Hindi-medium mojibake, exam sets counted as separate papers) apply to any PDF exam corpus.
Through an AI assistantAsk an assistant to explain the index or chart it for a school staff meeting.

Sample prompts for your AI assistant

Copy, paste and edit the parts in [brackets].

  • Read analysis/topic_recurrence.md and explain in plain English what the repetition index does and does not measure.
  • Load data/subject_repetition.csv and make a bar chart of the index by subject, with a note that it measures wording, not concepts.
  • Why does Chemistry score 5% while Physics scores 44%? Quote the repo's explanation.
  • Summarise the three parsing traps for a developer starting a similar project on another board's papers.
  • Compare data/question_type_mix.csv across Physics and Accountancy and describe the difference in plain terms.

Limits and honest caveats

  • Only the derived aggregate CSVs were used. The 6 GB corpus download, the parsing scripts and the OCR step were not run.
  • The index measures lexical repetition, not conceptual repetition; the repo itself warns that Chemistry and Biology are understated.
  • Marks across the full archive are regex-parsed and approximate; only the 32-paper subset is checked against stated maximums.
  • Hindi-medium and image-only papers are only partly recovered; 8 files still lack text.
  • Copyright: the repo's description says papers are not redistributed, but the README says the corpus Markdown of CBSE question papers is included for research use under a take-down offer. Check CBSE's terms yourself before reusing the corpus text.
  • Do not treat recurring topics as a reason to skip other syllabus content. This is a descriptive analysis, not exam or educational advice.

Sources: the CBSE_paper_patterns README, analysis/topic_recurrence.md, data/subject_repetition.csv and data/recurring_topics.csv, read and filtered on 19 October 2026 from a fresh clone. No scripts were run on the corpus.

Revision history.
  • v1.0.0 — 28 October 2026 — first published.

About this article: Researched, written and edited by Umashankar Triplicane Dwarakanathan, with AI research assistance; every figure is meant to trace to the primary source cited. See the Editorial Policy for how sourcing, AI use and corrections work.

Umashankar Triplicane Dwarakanathan
Contact Us
Umashankar Triplicane Dwarakanathan
Investment Promotion & Energy-Sector Leader · Chennai, Tamil Nadu, India
LinkedIn → GitHub → Email +91 78273 81696
How this site works

Data-led analysis of India's trade, currency and industrial policy. Every article is built from primary official sources, and every figure links back to the release, table or filing it came from.

Sources. DGCI&S TradeStat (imports/exports, HSN-wise) · PIB (government press releases, January 2017 to today, refreshed daily) · RBI (circulars, balance of payments) · MoSPI (CPI/WPI, IIP) · PARIVESH (environmental clearances) · CCIL (bond yields) · BIS (policy rates) · SEBI, NSE/BSE and SEC filings for company data.

Interpretation. Figures carry their vintage and retrieval date; estimates and press-reported numbers are labelled as such; where sources disagree, both are shown. Corrections are made visibly, never silently. Articles are written with AI assistance from the cited sources — AI-generated text can misstate figures even when working from real material, so verify any number that matters to a decision against the linked primary source.

footer

Browse all articles by topic

Every piece on this blog, grouped. Or read the full index.

Agriculture & FertilisersAI ToolsChemicalsClimate & CarbonEnergy & FuelsGas & LNGImport SubstitutionIndustrial PolicyMarkets & FinanceMobility & EVPrices & InflationTextilesTrade & Tariffs

Each topic is a live archive page that updates itself as pieces are labelled. It replaces a hand-kept list that had fallen 18 articles behind.