What This Page Is For
This generated page is the office workflow hand-off for local LLMs such as Copilot or Claude. It is not an official MP website or an endorsement. The page explains the available sources, and the data links split votes, spoken contributions, written questions, EDMs, constituency mentions, geography terms, and current office reference data into smaller JSON files.
The intended use is: read llm.md, fetch data.json, then open only the source index and month file relevant to the user request.
Coverage Summary
Own MP activity covers 4 Jul 2024 to 30 Apr 2026 where available. Constituency mentions cover 4 Jul 2024 to 30 Apr 2026.
Coverage Scope
post-2024-election office-data history. Own MP activity counts use the available post-2024 election office-data history for this MP. They can be read as since-election counts for the stated coverage dates.
The static own-activity counts already cover the post-2024 election range; use official source links for full source text.
Current Office Reference Data
Open current-snapshot/index.json for the underlying awaiting-answer written questions, registered interests summary, committee records, and bill records.
Broader Tracker Workflows
Review date-filtered activity
Open Mr Angus MacDonald in the broader tracker for profile panels, date filters, and tracker-backed older-history tools where available.
Build source-backed briefing
Use the tracker briefing builder for draft blocks from tracker-held speeches, written questions, votes, and EDMs. Constituency-mention JSON on this page is separate; open it from the LLM Data Map when local evidence is needed.
Votes differing from Liberal Democrat majority
11 recorded votes where Mr Angus MacDonald's vote differed from the Liberal Democrat majority in the tracker voting-pattern dataset. This does not mean zero votes; total votes in this page's own-activity scope: 307. This is descriptive context, not a score.
LLM Data Map
| Open this | Use it for | Records |
|---|---|---|
| Search manifest | Fast topic, status, source, and official-URL triage before opening source shards. | 2,123 records |
| Topic bundles | Deterministic cross-source evidence bundles with official-source deepening guidance. | 10 topics |
| Places index | Place-first routing for Constituency Mentions with ambiguity and confidence signals. | 486 places |
| Open follow-ups | Canonical awaiting-answer written-question queue reconciled from current office data and generated own-activity records.Scope: current office snapshot reconciled against generated own-activity records. Coverage dates: 2024-07-04 to 2026-04-30.Canonical public follow-up queue for written questions still awaiting answer; open the official question URL for live status and answer text. | 0 records |
| Written questions | Written questions tabled by the MP in this page's own-activity coverage.Scope: post-2024-election office-data history. Coverage dates: 2024-07-04 to 2026-04-30.Compact records include question text, status, department, answer date/member where available, and official URL; full written answers are not embedded. | 666 records |
| Spoken contributions | Hansard spoken contributions by the MP in this page's own-activity coverage.Scope: post-2024-election office-data history. Coverage dates: 2024-07-04 to 2026-04-30.Compact records include a short summary and Hansard URL; do not treat the summary as the full contribution text. | 130 records |
| Votes | Commons divisions recorded for the MP in this page's own-activity coverage.Scope: post-2024-election office-data history. Coverage dates: 2024-07-04 to 2026-04-30.Compact division records show this MP's recorded vote and official division URL; open the official source for full division context. | 307 records |
| Early Day Motions | Early Day Motions signed by the MP in this page's own-activity coverage.Scope: post-2024-election office-data history. Coverage dates: 2024-07-04 to 2026-04-30.Compact EDM records include title, date, signature context where available, and official URL; open the official source for motion text. | 1,017 records |
| Constituency mentions | Hansard contributions matched to the constituency name or mapped local places.Scope: post-2024-election constituency mention extract. Coverage dates: 2024-07-04 to 2026-04-30.Evidence-ranked Hansard matches include match basis, confidence, signals, matched terms, and official URL; check context before reuse. | 66 records |
| Geography terms | Constituency name and source-derived place terms used for Constituency Mentions.Constituency name and public source-derived place terms used to find Constituency Mentions; no boundary geometry is embedded. | 492 terms |
| Current office reference data | Awaiting written-question answers, registered interests, committee records, and bill records from the current office snapshot.Scope: current office snapshot. Coverage dates: 2024-07-04 to 2026-04-30.Current office reference data from the office snapshot. The count is the sum of component records: awaiting written-question answers, registered interests, committee records, and bill records. | 9 records across components |
Constituency Mentions
Constituency Mentions are not just searches for the constituency name. The generator also uses mapped place terms for Inverness, Skye and West Ross-shire, keeps match evidence such as matched terms and confidence, and links back to the Hansard contribution so the office can check context before reuse.
Mapped place terms used for matching (491)
These constituency place terms are searched alongside the constituency name. Open geography/index.json for the machine-readable list with source metadata. Check matched mentions against the linked Hansard context before reuse.
City
- Invernesscity
Hamlet
- A' Chillhamlet
- Aberchalderhamlet
- Achinteehamlet
- Achluachrachhamlet
- Achnacarryhamlet
- Achnandarachhamlet
- Achnashellachhamlet
- Airdhamlet
- Aird-dhubhhamlet
- Aisighamlet
- Allt a' Chruinnhamlet
- Allt nan Sùghhamlet
- Alltsighhamlet
- An Dùnanhamlet
- An Gearraidh Mòrhamlet
- An Sruthanhamlet
- An t-Ollachhamlet
- An t-Òrdhamlet
- An Àird Dhorchahamlet
- Annathamlet
- Annishaderhamlet
- Ardaneaskanhamlet
- Ardarrochhamlet
- Ardheslaighamlet
- Arinacrinachdhamlet
- Arnisdalehamlet
- Attadalehamlet
- Auchnahillinhamlet
- Auchtertyrehamlet
- Ault-na-goirehamlet
- Back of Keppochhamlet
- Badicaulhamlet
- Balbeghamlet
- Balchragganhamlet
- Balgownhamlet
- Balmeanachhamlet
- Balmeanachhamlet
- Balmorehamlet
- Balnacrahamlet
- Bhatairsteinnhamlet
- Blackwoodhamlet
- Blarmachfoldachhamlet
- Borreraighamlet
- Bracadalehamlet
- Bracarahamlet
- Bridgendhamlet
- Bun na Caimhamlet
- Bundallochhamlet
- Buntaithamlet
- Calligarryhamlet
- Cam Dhàilhamlet
- Camas Tianabhaighamlet
- Camas-luiniehamlet
- Camuslongarthamlet
- Camusterrachhamlet
- Carbosthamlet
- Carn-gormhamlet
- Carnduhamlet
- Caroyhamlet
- Cille Bhrìgndehamlet
- Clachamishhamlet
- Clachanhamlet
- Cluneshamlet
- Coille Mhorgilhamlet
- Coillorehamlet
- Corranhamlet
- Corrimonyhamlet
- Craighamlet
- Craighamlet
- Croachyhamlet
- Cuidrachhamlet
- Cul nan Cnochamlet
- Culduiehamlet
- Culnameanhamlet
- Dalchreicharthamlet
- Dhuhallowhamlet
- Drinanhamlet
- Drumbuiehamlet
- Drumuiehamlet
- Duisdeil Beaghamlet
- Dunanshamlet
- Dunlichityhamlet
- Duntulmhamlet
- Ealaiseadarhamlet
- Easter Mandallyhamlet
- Easter Miltonhamlet
- Eilanreachhamlet
- Erbusaighamlet
- Errogiehamlet
- Eubosthamlet
- Eyrehamlet
- Faichemhamlet
- Fearnmorehamlet
- Feorlaighamlet
- Fersaidhamlet
- Flaiseaderhamlet
- Galltairhamlet
- Galtraigeallhamlet
- Gead an t-Sailleirhamlet
- Gearyhamlet
- Gillenhamlet
- Glen Cononhamlet
- Glenbernisdalehamlet
- Glenbrittlehamlet
- Glengrascohamlet
- Glenmorehamlet
- Grealinhamlet
- Halistrahamlet
- Hallinhamlet
- Heatherfieldhamlet
- Heribosthamlet
- Highbridgehamlet
- Hungladderhamlet
- Incherilhamlet
- Inchlagganhamlet
- Inchmorehamlet
- Inverfarigaighamlet
- Invershielhamlet
- Keistlehamlet
- Kenmorehamlet
- Kerrowhamlet
- Kilbeghamlet
- Kilbridehamlet
- Killiananhamlet
- Kilmonivaighamlet
- Kilmorehamlet
- Kingsburghhamlet
- Kinlochhamlet
- Kinloch Hournhamlet
- Kirktonhamlet
- Kirktonhamlet
- Kishornhamlet
- Knockbreckhamlet
- Knotthamlet
- Leacanashiehamlet
- Leachachanhamlet
- Leacnasaidehamlet
- Leanachhamlet
- Letterfinlayhamlet
- Lionacrohamlet
- Lochendhamlet
- Lochgarthsidehamlet
- Lonbainhamlet
- Luibhamlet
- Malagarhamlet
- Marishaderhamlet
- Melvaighamlet
- Merkadalehamlet
- Miltonhamlet
- Miltownhamlet
- Morvichhamlet
- Muirshearlichhamlet
- Na Faingeanhamlet
- Naasthamlet
- Newtownhamlet
- North Fearnshamlet
- Nostiehamlet
- Orabosthamlet
- Oshamlet
- Oskaighamlet
- Park Bernisdalehamlet
- Peighinn a' Chorrainhamlet
- Peinahahamlet
- Peinmorehamlet
- Peinmorehamlet
- Penifilerhamlet
- Port Mòrhamlet
- Portneorahamlet
- Raigbeghamlet
- Raonapollhamlet
- Redpointhamlet
- Rhenetrahamlet
- Roaghamlet
- Roskhillhamlet
- Rychragganhamlet
- Scaniporthamlet
- Sgalamushamlet
- Sgeitheabosthamlet
- Sheaderhamlet
- Shenvalhamlet
- Shiel Bridgehamlet
- Sròndubhhamlet
- Steinhamlet
- Strome Ferryhamlet
- Stromemorehamlet
- Stronabahamlet
- Stronehamlet
- Stròlamashamlet
- Suledalehamlet
- Sàsaighamlet
- Taliskerhamlet
- Tarbethamlet
- Toravaighamlet
- Torcastlehamlet
- Tornesshamlet
- Toscaighamlet
- Totaighamlet
- Totehamlet
- Totscorehamlet
- Tournaighamlet
- Trumpanhamlet
- Uigshaderhamlet
- Upper Feorlighamlet
- Valtoshamlet
- Vattenhamlet
- Viewhillhamlet
- Waterloohamlet
- Wester Alliginhamlet
- Wester Mandallyhamlet
Other Settlement
- Abriachanother settlement
- Achnacloichother settlement
- Achnaconeranother settlement
- Airdother settlement
- Airorother settlement
- An Fasadh Feàrnaother settlement
- An Lethalltother settlement
- An t-Aodann Banother settlement
- Aonachanother settlement
- Ardnarffother settlement
- Armadaleother settlement
- Arnishother settlement
- Auchterawother settlement
- Aultgrishanother settlement
- Aultvoulinother settlement
- Avernishother settlement
- Baile nan cnocother settlement
- Balachuirnother settlement
- Balmeanachother settlement
- Balmeanachother settlement
- Big Sandother settlement
- Blackparkother settlement
- Bohuntineother settlement
- Boorother settlement
- Bornesketaigother settlement
- Braeintraother settlement
- Breabostother settlement
- Breckreyother settlement
- Bualinturother settlement
- Carbostother settlement
- Cleadaleother settlement
- Coille Ghillidhother settlement
- Coulagsother settlement
- Coveother settlement
- Cradlehallother settlement
- Cuaigother settlement
- Cul na Creaganother settlement
- Cullochy Lockother settlement
- Daviotother settlement
- Diggother settlement
- Dochgarrochother settlement
- Druim an Teampuillother settlement
- Druim Fhearnaother settlement
- Druimindarrochother settlement
- Drynochother settlement
- Duirinishother settlement
- Dundregganother settlement
- Easter Portclairother settlement
- Eynortother settlement
- Feabuieother settlement
- Fernileaother settlement
- Fhaighear Mhòirother settlement
- Findhornbridgeother settlement
- Flodigarryother settlement
- Galmisdaleother settlement
- Gearr Lochaidhother settlement
- Gearrosother settlement
- Glasnakilleother settlement
- Glebeother settlement
- Glen Moreother settlement
- Glen Moristonother settlement
- Glenancrossother settlement
- Glenuachdarachother settlement
- Greepother settlement
- Griseornaisother settlement
- Grotaigother settlement
- Heasteother settlement
- Husabostother settlement
- Inverasdaleother settlement
- Kalnakillother settlement
- Keppochother settlement
- Kildonanother settlement
- Kilfinnanother settlement
- Killilanother settlement
- Kinlocheilother settlement
- Kinloidother settlement
- Kirkibostother settlement
- Kylerheaother settlement
- Leachkinother settlement
- Lettereweother settlement
- Letterfearnother settlement
- Levishieother settlement
- Lower Toteother settlement
- Lòndubhother settlement
- Mol-chlachother settlement
- Mugearyother settlement
- Ness-sideother settlement
- North Erradaleother settlement
- Opinanother settlement
- Peterburnother settlement
- Point of Sleatother settlement
- Port Hendersonother settlement
- Portclairother settlement
- Ramasaigother settlement
- Sallachyother settlement
- Sandaigother settlement
- Satranother settlement
- Shieldaigother settlement
- Skinidinother settlement
- South Erradaleother settlement
- Srath Carranother settlement
- Stratherrickother settlement
- Struyother settlement
- Suisnishother settlement
- Swordlandother settlement
- Talladaleother settlement
- Tarscabhaigother settlement
- Tokavaigother settlement
- Tomacharichother settlement
- Tomdounother settlement
- Tomonieother settlement
- Totardorother settlement
- Treaslaneother settlement
- Tullochother settlement
- Uigother settlement
- Uiginisother settlement
- Ullinishother settlement
- Upper Toteother settlement
- Wester Portclairother settlement
Suburban Area
- An Garadh Fadasuburban area
- An Leth-Pheighinnsuburban area
- An Àrdsuburban area
- Auchtercairnsuburban area
- Ballifearysuburban area
- Ballochsuburban area
- Balmacqueensuburban area
- Blackparksuburban area
- Blairsuburban area
- Braesuburban area
- Braigh an Aodainn Bhainsuburban area
- Brogaigsuburban area
- Carbostbegsuburban area
- Carbostmoresuburban area
- Charlestownsuburban area
- Citadelsuburban area
- Clachansuburban area
- Clachnaharrysuburban area
- Claggansuburban area
- Cnoc Dubhsuburban area
- Coastsuburban area
- Coishlettersuburban area
- Corrysuburban area
- Crownsuburban area
- Culcabocksuburban area
- Cullodensuburban area
- Dalneighsuburban area
- Druimarbinsuburban area
- Easter Muckoviesuburban area
- Fasachsuburban area
- Feriniquarriesuburban area
- Glaspheinsuburban area
- Glaspheinsuburban area
- Glebesuburban area
- Hamaramoresuburban area
- Hamaraverinsuburban area
- Haughsuburban area
- Hiltonsuburban area
- Holmisdalesuburban area
- Idrigillsuburban area
- Inshessuburban area
- Inverlochysuburban area
- Kendramsuburban area
- Kilmichaelsuburban area
- Kinmyliessuburban area
- Kirktonsuburban area
- Lochardilsuburban area
- Lonemoresuburban area
- Lower Ardelvesuburban area
- Lower Drummondsuburban area
- Malaig Bheagsuburban area
- Merkinchsuburban area
- Mialsuburban area
- Millburnsuburban area
- North Cuilsuburban area
- Pairc an Aoilsuburban area
- Raigmoresuburban area
- Resauriesuburban area
- Rhasuburban area
- Sartailsuburban area
- Scorguiesuburban area
- Smithstownsuburban area
- Smithtonsuburban area
- Solitotesuburban area
- South Cuilsuburban area
- South Kessocksuburban area
- Steinnseallsuburban area
- Strathsuburban area
- Upper Ardelvesuburban area
- Upper Auchintoresuburban area
- Upper Drummondsuburban area
- Westhillsuburban area
- Woodside of Cullodensuburban area
Town
- An Gearasdantown
Village
- Achachorkvillage
- Achantraidvillage
- Achmorevillage
- Am Plocvillage
- An t-Àth Leathannvillage
- An Teangavillage
- Applecrossvillage
- Ardelvevillage
- Ardvasarvillage
- Arisaigvillage
- Badachrovillage
- Balmacaravillage
- Balnainvillage
- Banbhaidhvillage
- Bernisdalevillage
- Borvevillage
- Braefieldvillage
- Breacaisvillage
- Camascrossvillage
- Camustielvillage
- Cannichvillage
- Caolvillage
- Ceann Sail Eighrevillage
- Colbostvillage
- Corpachvillage
- Doresvillage
- Dornievillage
- Drumnadrochitvillage
- DuisdeiI Mòrvillage
- Dunveganvillage
- Ealagholvillage
- Earlaisvillage
- Eilean Iarmainvillage
- Farrvillage
- Ferindonaldvillage
- Fioscabhaigvillage
- Fort Augustusvillage
- Foyersvillage
- Gairlochvillage
- Gleann Fhionnainnvillage
- Glen Dalevillage
- Glenelgvillage
- Gorthleckvillage
- Harloshvillage
- Harrapulvillage
- Inveralliginvillage
- Inverarishvillage
- Invergarryvillage
- Inverievillage
- Inverinatevillage
- Invermoristonvillage
- Inverroyvillage
- Kilmaluagvillage
- Kilvaxtervillage
- Kinlochewevillage
- Kyle of Lochalshvillage
- Kyleakinvillage
- Lagganvillage
- Lewistonvillage
- Lochcarronvillage
- Lonmorevillage
- Lower Breakishvillage
- Lower Diabaigvillage
- Lustavillage
- Mallaigvillage
- Milovaigvillage
- Miltonvillage
- Morarvillage
- Moyvillage
- Na Torrinvillage
- Newlands of Cullodenvillage
- Poolewevillage
- Portnalongvillage
- Portreevillage
- Rataganvillage
- Reraigvillage
- Roybridgevillage
- Sgonnsairvillage
- Shieldaigvillage
- Spean Bridgevillage
- Staffinvillage
- Taobh Lochaidhvillage
- Tomatinvillage
- Tomichvillage
- Torlundyvillage
- Torridonvillage
- Uigvillage
- Whitebridgevillage
Facet counts overlap: one contribution can be counted in more than one match category.
Recent Examples
These are not a separate date-range sample. Each panel shows up to four most recent records from that source index. Open the relevant source index for the full coverage dates and month files.
Written Questions
- Energy: Community Development22 Apr 2026 | Answered | Department for Energy Security and Net Zero
- 5G: Faroe Islands15 Apr 2026 | Answered | Department for Science, Innovation and Technology
- Mobile Phones: Aerials15 Apr 2026 | Answered | Department for Science, Innovation and Technology
- Chronic Fatigue Syndrome: Health Services15 Apr 2026 | Answered | Department of Health and Social Care
Spoken Contributions
- Draft Warm Home Discount (Scotland) Regulations 202627 Apr 2026
- Heating Oil: Rural Homes24 Mar 2026
- Heating Oil: Rural Homes24 Mar 2026
- Energy Security and Net Zero: Scotland4 Mar 2026
Constituency Mentions
- Draft Warm Home Discount (Scotland) Regulations 202627 Apr 2026
- Small Charity Sector3 Mar 2026
- Small Charity Sector3 Mar 2026
- Road Safety5 Feb 2026
Important Limits
This is descriptive public-data infrastructure for an office workflow. It is not a score, a ranking, or a judgement of parliamentary performance. Constituency Mention matches should be checked against the linked source before being used in casework, newsletters, or public copy.
Compact JSON records are retrieval pointers, not complete source transcripts. Open the official URLs before quoting written answers, Hansard wording, EDM motion text, or register details.