Moray Council Map
View the Moray council boundary. Explore local wards, election results and party seats. Buy digital map files for £15 including VAT, or order a print.
Download or Order this Map
Digital map files cost £15.00 including VAT. Printed maps start at £41.00 including VAT and UK delivery.
Request a Custom MapWe prepare your map after payment. Files are sent by email.
May 2026 council boundary. Map © Mapbox and OpenStreetMap. Boundary data © ONS and Ordnance Survey.
Residents, mid-2025
94,730Wards
8Seats in 2026
26Selected result year
2022Party seats: 2026 snapshot
Download seat history (CSV)No single party majority. A majority of this seat total needs 14 seats. This annual archive is not a live record of party membership or the council administration.
| Party | Seats |
|---|---|
| Conservative | 10 |
| SNP | 7 |
| Other | 4 |
| Labour | 3 |
| Green | 2 |
| Reported total | 26 |
“Other” can include several parties, independents and vacancies. It is not a single voting group. Source: Open Council Data.
Seat history: 1974–2026
These are annual snapshots. A change between years can reflect elections, by-elections, party changes or boundary changes. Older records follow council names and are not a constant-boundary series. The pre-2016 source combines Green and other smaller parties under “Other” and national parties under “Nationalist parties”.
| Year | Total | Party seats |
|---|---|---|
| 2026 | 26 | Conservative 10 · Labour 3 · Green 2 · SNP 7 · Other 4 |
| 2025 | 26 | Conservative 10 · Labour 3 · SNP 7 · Other 6 |
| 2024 | 26 | Conservative 9 · Labour 3 · Green 1 · SNP 9 · Other 4 |
| 2023 | 26 | Conservative 9 · Labour 3 · Green 1 · SNP 9 · Other 4 |
| 2022 | 26 | Conservative 11 · Labour 3 · Liberal Democrats 1 · Green 1 · SNP 8 · Other 2 |
| 2021 | 26 | Conservative 9 · Labour 1 · SNP 8 · Other 8 |
| 2020 | 26 | Conservative 9 · Labour 1 · SNP 9 · Other 7 |
| 2019 | 26 | Conservative 8 · Labour 1 · SNP 9 · Other 8 |
| 2018 | 26 | Conservative 8 · Labour 1 · SNP 9 · Other 8 |
| 2017 | 26 | Conservative 9 · Labour 1 · SNP 9 · Other 7 |
| 2016 | 26 | Conservative 3 · Labour 2 · SNP 11 · Other 10 |
| 2015 | 26 | Conservative 3 · Labour 3 · Other 10 · Nationalist parties 10 |
| 2014 | 26 | Conservative 3 · Labour 3 · Other 10 · Nationalist parties 10 |
| 2013 | 26 | Conservative 3 · Labour 3 · Other 10 · Nationalist parties 10 |
| 2012 | 26 | Conservative 3 · Labour 3 · Other 10 · Nationalist parties 10 |
| 2011 | 26 | Conservative 3 · Labour 2 · Other 12 · Nationalist parties 9 |
| 2010 | 26 | Conservative 3 · Labour 2 · Other 12 · Nationalist parties 9 |
| 2009 | 26 | Conservative 3 · Labour 2 · Other 12 · Nationalist parties 9 |
| 2008 | 26 | Conservative 3 · Labour 2 · Other 12 · Nationalist parties 9 |
| 2007 | 26 | Conservative 3 · Labour 2 · Other 11 · Nationalist parties 10 |
| 2006 | 26 | Conservative 1 · Labour 4 · Liberal Democrats 1 · Other 16 · Nationalist parties 4 |
| 2005 | 26 | Conservative 1 · Labour 4 · Liberal Democrats 1 · Other 16 · Nationalist parties 4 |
| 2004 | 26 | Conservative 1 · Labour 4 · Liberal Democrats 1 · Other 16 · Nationalist parties 4 |
| 2003 | 26 | Conservative 1 · Labour 5 · Liberal Democrats 1 · Other 16 · Nationalist parties 3 |
| 2002 | 26 | Conservative 1 · Labour 6 · Liberal Democrats 2 · Other 15 · Nationalist parties 2 |
| 2001 | 26 | Conservative 1 · Labour 6 · Liberal Democrats 2 · Other 15 · Nationalist parties 2 |
| 2000 | 26 | Conservative 1 · Labour 6 · Liberal Democrats 2 · Other 15 · Nationalist parties 2 |
| 1999 | 26 | Conservative 1 · Labour 6 · Liberal Democrats 2 · Other 15 · Nationalist parties 2 |
| 1998 | 18 | Labour 3 · Other 2 · Nationalist parties 13 |
| 1997 | 18 | Labour 3 · Other 2 · Nationalist parties 13 |
| 1996 | 18 | Labour 3 · Other 2 · Nationalist parties 13 |
| 1995 | 18 | Labour 3 · Other 2 · Nationalist parties 13 |
| 1994 | 18 | Conservative 1 · Labour 1 · Other 9 · Nationalist parties 7 |
| 1993 | 18 | Conservative 1 · Labour 1 · Other 9 · Nationalist parties 7 |
| 1992 | 18 | Conservative 1 · Labour 1 · Other 9 · Nationalist parties 7 |
| 1991 | 18 | Labour 2 · Other 9 · Nationalist parties 7 |
| 1990 | 18 | Labour 2 · Other 9 · Nationalist parties 7 |
| 1989 | 18 | Labour 2 · Other 9 · Nationalist parties 7 |
| 1988 | 18 | Labour 2 · Other 9 · Nationalist parties 7 |
| 1987 | 18 | Labour 1 · Other 15 · Nationalist parties 2 |
| 1986 | 18 | Labour 1 · Other 15 · Nationalist parties 2 |
| 1985 | 18 | Labour 1 · Other 15 · Nationalist parties 2 |
| 1984 | 18 | Labour 1 · Other 15 · Nationalist parties 2 |
| 1983 | 18 | Other 15 · Nationalist parties 3 |
| 1982 | 18 | Other 15 · Nationalist parties 3 |
| 1981 | 18 | Other 15 · Nationalist parties 3 |
| 1980 | 18 | Other 15 · Nationalist parties 3 |
| 1979 | 18 | Other 15 · Nationalist parties 3 |
| 1978 | 18 | Other 15 · Nationalist parties 3 |
| 1977 | 18 | Other 15 · Nationalist parties 3 |
| 1976 | 18 | Other 17 · Nationalist parties 1 |
| 1975 | 18 | Other 17 · Nationalist parties 1 |
| 1974 | 18 | Other 17 · Nationalist parties 1 |
Moray Council and Local Areas
Scottish council in Scotland. Official council code: S12000020. Open a ward to see its map and recorded election results.
Councils in Scotland · Boundary data (GeoJSON)
Browse all 8 mapped areas
- BuckieS13003026 · Ward
- Elgin City NorthS13003029 · Ward
- Elgin City SouthS13003030 · Ward
- Fochabers LhanbrydeS13003027 · Ward
- ForresS13003031 · Ward
- Heldon and LaichS13003028 · Ward
- Keith and CullenS13003025 · Ward
- Speyside GlenlivetS13003024 · Ward
Recorded election results
Download all recorded results (CSV)8 recorded areas in 2022. These figures describe the contests held in that year. They do not describe every seat on the council. Historical areas can differ from the current map.
Seats won in the recorded contests
- 11 Scottish Conservative and Unionist Party
- 8 Scottish National Party
- 3 Scottish Labour Party
- 2 Independent
- 1 Scottish Liberal Democrats
- 1 Scottish Green Party
Declared winners in this source only. This is not a council-wide vote share or a current seat total.
The supplied 2026 candidate download does not include votes or winners. The 2026 seat archive above is a different dataset. Download the separate 2026 candidate lists (CSV).
Ward 1 - Speyside Glenlivet3 declared winners · 45.7% turnout
Electorate: 7,382. Ballot papers: 3,374. Source and method.
STV election. Votes below are first preferences. Later transfers determine who is elected.
| Candidate | Party | First preferences | Result |
|---|---|---|---|
| Juli HARRIS | Scottish National Party | 1,227 | Elected |
| David GORDON | Scottish Conservative and Unionist Party | 1,129 | Elected |
| Derek ROSS | Independent | 672 | Elected |
| Elidh Myrvang BROWN | Scottish Green Party | 286 | Not elected |
| David Philip MCHUTCHON | Sovereignty | 23 | Not elected |
In a multi-member contest a voter can cast more than one candidate vote. Do not use the sum of candidate votes as turnout. A blank vote figure can indicate an uncontested election or missing source data.
Ward 2 - Keith and Cullen3 declared winners · 43.1% turnout
Electorate: 8,102. Ballot papers: 3,490. Source and method.
STV election. Votes below are first preferences. Later transfers determine who is elected.
| Candidate | Party | First preferences | Result |
|---|---|---|---|
| Theresa COULL | Scottish National Party | 1,493 | Elected |
| Donald GATT | Scottish Conservative and Unionist Party | 849 | Elected |
| Tracy COLYER | Scottish Conservative and Unionist Party | 650 | Elected |
| Leslie TARR | Scottish Liberal Democrats | 341 | Not elected |
| William Keith BARCLAY | Scottish Family Party | 99 | Not elected |
In a multi-member contest a voter can cast more than one candidate vote. Do not use the sum of candidate votes as turnout. A blank vote figure can indicate an uncontested election or missing source data.
Ward 3 - Buckie3 declared winners
Electorate: 0. Ballot papers: 0. Source and method.
STV election. Votes below are first preferences. Later transfers determine who is elected.
| Candidate | Party | First preferences | Result |
|---|---|---|---|
| Christopher Thomas PRICE | Scottish Liberal Democrats | 0 | Elected |
| Neil MCLENNAN | Scottish Conservative and Unionist Party | 0 | Elected |
| Sonya WARREN | Scottish National Party | 0 | Elected |
In a multi-member contest a voter can cast more than one candidate vote. Do not use the sum of candidate votes as turnout. A blank vote figure can indicate an uncontested election or missing source data.
Ward 4 - Fochabers Lhanbryde3 declared winners · 49.2% turnout
Electorate: 8,253. Ballot papers: 4,064. Source and method.
STV election. Votes below are first preferences. Later transfers determine who is elected.
| Candidate | Party | First preferences | Result |
|---|---|---|---|
| Marc MACRAE | Scottish Conservative and Unionist Party | 1,590 | Elected |
| Shona MORRISON | Scottish National Party | 940 | Elected |
| Dave BREMNER | Scottish National Party | 778 | Not elected |
| Ben WILLIAMS | Scottish Labour Party | 404 | Elected |
| Donald John Craig CAMERON | Scottish Liberal Democrats | 284 | Not elected |
In a multi-member contest a voter can cast more than one candidate vote. Do not use the sum of candidate votes as turnout. A blank vote figure can indicate an uncontested election or missing source data.
Ward 5 - Heldon and Laich4 declared winners · 46.3% turnout
Electorate: 10,794. Ballot papers: 4,996. Source and method.
STV election. Votes below are first preferences. Later transfers determine who is elected.
| Candidate | Party | First preferences | Result |
|---|---|---|---|
| NEIL CAMERON | Scottish National Party | 1,455 | Elected |
| James ALLAN | Scottish Conservative and Unionist Party | 1,331 | Elected |
| John COWE | Independent | 914 | Elected |
| Bridget MUSTARD | Scottish Conservative and Unionist Party | 629 | Elected |
| Andrew ONEILL | Scottish Labour Party | 379 | Not elected |
| CALUM CAMERON | Scottish Liberal Democrats | 228 | Not elected |
In a multi-member contest a voter can cast more than one candidate vote. Do not use the sum of candidate votes as turnout. A blank vote figure can indicate an uncontested election or missing source data.
Ward 6 - Elgin City North3 declared winners · 40.2% turnout
Electorate: 9,228. Ballot papers: 3,710. Source and method.
STV election. Votes below are first preferences. Later transfers determine who is elected.
| Candidate | Party | First preferences | Result |
|---|---|---|---|
| Jérémie FERNANDES | Scottish National Party | 1,199 | Elected |
| Sandy KEITH | Scottish Labour Party | 1,048 | Elected |
| Amber DUNBAR | Scottish Conservative and Unionist Party | 952 | Elected |
| Graham JARVIS | Independent | 170 | Not elected |
| Rebecca Jane KAIL | Scottish Green Party | 165 | Not elected |
| Neil ALEXANDER | Scottish Liberal Democrats | 144 | Not elected |
In a multi-member contest a voter can cast more than one candidate vote. Do not use the sum of candidate votes as turnout. A blank vote figure can indicate an uncontested election or missing source data.
Ward 7 - Elgin City South3 declared winners · 40.5% turnout
Electorate: 10,149. Ballot papers: 4,113. Source and method.
STV election. Votes below are first preferences. Later transfers determine who is elected.
| Candidate | Party | First preferences | Result |
|---|---|---|---|
| Graham LEADBITTER | Scottish National Party | 1,444 | Elected |
| John DIVERS | Scottish Labour Party | 1,142 | Elected |
| Peter BLOOMFIELD | Scottish Conservative and Unionist Party | 1,090 | Elected |
| Michaela FRENCH | Independent | 161 | Not elected |
| Bernard Matthew SALMON | Scottish Liberal Democrats | 124 | Not elected |
| Paul BRIGGS | Independent | 101 | Not elected |
In a multi-member contest a voter can cast more than one candidate vote. Do not use the sum of candidate votes as turnout. A blank vote figure can indicate an uncontested election or missing source data.
Ward 8 - Forres4 declared winners · 49.0% turnout
Electorate: 12,511. Ballot papers: 6,128. Source and method.
STV election. Votes below are first preferences. Later transfers determine who is elected.
| Candidate | Party | First preferences | Result |
|---|---|---|---|
| Scott LAWRENCE | Scottish National Party | 2,077 | Elected |
| Kathleen ROBERTSON | Scottish Conservative and Unionist Party | 1,516 | Elected |
| Paul MCBAIN | Scottish Conservative and Unionist Party | 962 | Elected |
| James HYNAM | Scottish Labour Party | 643 | Not elected |
| Draeyk VAN DER HORN | Scottish Green Party | 550 | Elected |
| Shaun MOAT | Independent | 309 | Not elected |
In a multi-member contest a voter can cast more than one candidate vote. Do not use the sum of candidate votes as turnout. A blank vote figure can indicate an uncontested election or missing source data.
Check the council by-election directory. The absence of an upcoming contest here does not confirm that no election is due.
Councillors: 2026 archive
Download councillors (CSV)26 member records from the Open Council Data post-May archive. Members can change party, resign or be replaced. Use the council’s own member register for current contact details.
26 records shown
| Councillor | Ward or division | Party |
|---|---|---|
| John Stuart | Buckie | Scottish Green Party |
| Neil McLennan | Buckie | Independent / Other |
| Sonya Warren | Buckie | Scottish National Party (SNP) |
| Amber Dunbar | Elgin City North | Conservative and Unionist |
| Jérémie Fernandes | Elgin City North | Scottish National Party (SNP) |
| Peter Bloomfield | Elgin City North | Conservative and Unionist |
| Sandy Keith | Elgin City North | Labour Party |
| Elaine Kirby | Elgin City South | Conservative and Unionist |
| John Divers | Elgin City South | Labour Party |
| Ben Williams | Fochabers Lhanbryde | Labour Party |
| Marc Macrae | Fochabers Lhanbryde | Conservative and Unionist |
| Shona Morrison | Fochabers Lhanbryde | Scottish National Party (SNP) |
| Draeyk van der Horn | Forres | Scottish Green Party |
| Kathleen Robertson | Forres | Conservative and Unionist |
| Paul McBain | Forres | Conservative and Unionist |
| Scott Lawrence | Forres | Scottish National Party (SNP) |
| Bridget Mustard | Heldon and Laich | Conservative and Unionist |
| James Allan | Heldon and Laich | Independent / Other |
| John Cowe | Heldon and Laich | Independent / Other |
| Neil Cameron | Heldon and Laich | Scottish National Party (SNP) |
| Donald Gatt | Keith and Cullen | Conservative and Unionist |
| Theresa Coull | Keith and Cullen | Scottish National Party (SNP) |
| Tracy Colyer | Keith and Cullen | Conservative and Unionist |
| David Gordon | Speyside Glenlivet | Conservative and Unionist |
| Derek Ross | Speyside Glenlivet | Independent / Other |
| Juli Harris | Speyside Glenlivet | Scottish National Party (SNP) |
Local figures
Download local figures (CSV)Each table has its own date, unit and source. Census categories can contain subcategories. Do not add all rows together. Residents, households and electors are different measures.
Population by ageMid-2025
Unit: people. Source and definitions.
| Measure | people |
|---|---|
| All ages | 94,730 |
| Under 16 | 14,986 |
| Age 16 to 64 | 56,941 |
| Age 65 and over | 22,803 |
Population history2011–2025
Unit: people. Source and definitions.
| Measure | people |
|---|---|
| 2011 | 93,470 |
| 2012 | 92,720 |
| 2013 | 93,940 |
| 2014 | 94,180 |
| 2015 | 94,800 |
| 2016 | 95,110 |
| 2017 | 94,660 |
| 2018 | 94,090 |
| 2019 | 94,170 |
| 2020 | 93,870 |
| 2021 | 94,270 |
| 2022 | 94,300 |
| 2023 | 94,790 |
| 2024 | 94,890 |
| 2025 | 94,730 |
Census residentsCensus 2022
Unit: people (rounded). Source and definitions.
| Measure | people (rounded) |
|---|---|
| All persons | 93,400 |
| Females | 47,400 |
| Males | 46,000 |
GDP history (archived release)1998–2019
Unit: GBP millions. Source and definitions. Historic economic output at current market prices. This is an old release, not a current local economy estimate.
| Measure | GBP millions |
|---|---|
| 1998 | 1,126 |
| 1999 | 1,157 |
| 2000 | 1,186 |
| 2001 | 1,207 |
| 2002 | 1,261 |
| 2003 | 1,365 |
| 2004 | 1,440 |
| 2005 | 1,530 |
| 2006 | 1,633 |
| 2007 | 1,727 |
| 2008 | 1,912 |
| 2009 | 1,913 |
| 2010 | 1,921 |
| 2011 | 2,012 |
| 2012 | 1,970 |
| 2013 | 2,072 |
| 2014 | 2,103 |
| 2015 | 2,129 |
| 2016 | 2,127 |
| 2017 | 2,325 |
| 2018 | 2,368 |
| 2019 | 2,447 |
About the data
We use ONS boundaries, published election results, Open Council Data seat and member records, and official population, census and local finance statistics. Each table shows its date. Read about the sources, coverage and methods.
