Get quotes in writing
Ask two or three firms to quote for the same job, in writing. A quote is a fixed price. An estimate is only a best guess, and the final bill can be higher.
The quote should say what is included: materials, waste removal, making good, and any access equipment.
Check insurance and pay in stages
Ask to see their public liability insurance. Agree staged payments tied to finished work. A deposit for materials is normal on bigger jobs, but avoid paying the full price before the work starts.
Your rights
Under the Consumer Rights Act 2015, a trader must do the work with reasonable care and skill, in a reasonable time, and for a reasonable price if no price was agreed.
If you agree the job in your own home, you usually have 14 days to cancel under the Consumer Contracts Regulations 2013. If you ask for work to start sooner, you may have to pay for work already done.
For free advice on a problem with a trader, contact the Citizens Advice consumer helpline. In Northern Ireland, contact Consumerline.
This guide is general information, not legal advice. Rules differ between England, Scotland, Wales and Northern Ireland.
Find a glazier near you
London
- London2
- Barking and Dagenham0
- Barnet0
- Bexley0
- Brent0
- Bromley0
- Camden0
- Croydon0
- Ealing0
- Enfield0
- Greenwich0
- Hackney0
- Hammersmith and Fulham0
- Haringey0
- Harrow0
- Havering0
- Hillingdon0
- Hounslow0
- Islington0
- Kensington and Chelsea0
- Kingston upon Thames0
- Lambeth0
- Lewisham0
- Merton0
- Newham0
- Redbridge0
- Richmond upon Thames0
- Southwark0
- Sutton0
- Tower Hamlets0
- Waltham Forest0
- Wandsworth0
- Westminster0
- Ilford1
- Romford0
- Hayes0
- Dagenham0
- Wembley0
- Southall0
- Edgware0
- Uxbridge0
- Barking0
- Hornchurch0
- Orpington0
- Ruislip0
- Greenford0
- Loughton0
- Waltham Cross0
- Mitcham0
- Morden0
- Stanmore0
- Feltham0
- Northolt0
- Woodford Green0
- South Croydon0
- Rainham0
- Pinner0
- Beckenham0
- Waltham Abbey0
- Isleworth0
- West Drayton0
- South Ockendon0
- Wallington0
- Carshalton0
- Surbiton0
- Potters Bar0
- Staines-upon-Thames0
- Thornton Heath0
- Hoddesdon0
- Swanley0
- Upminster0
- Twickenham0
- Caterham0
- Richmond0
- Chigwell0
- Weybridge0
- New Malden0
- Brentford0
- Chessington0
- Leatherhead0
- Walton-on-Thames0
- Coulsdon0
- Worcester Park0
- Northwood0
- Chislehurst0
- Addlestone0
- Buckhurst Hill0
- Chertsey0
- Banstead0
- Tadworth0
- Egham0
- Sunbury-on-Thames0
- West Wickham0
- Tilbury0
- Hampton0
- Cobham0
- Shepperton0
- Teddington0
- Purley0
- Broxbourne0
- East Ham0
- Cheshunt0
- West Byfleet0
- Palmers Green0
- West Molesey0
- Esher0
- Keston0
- Warlingham0
- Purfleet0
- Swanley Village0
- Kenley0
- Ashtead0
- Whyteleafe0
- Cuffley0
- Cockfosters0
- Thames Ditton0
- Southgate0
- Chadwell Heath0
North East
- Newcastle upon Tyne0
- Sunderland0
- Durham0
- Middlesbrough0
- Gateshead0
- Darlington0
- Hartlepool0
- Stockton-on-Tees0
- South Shields0
- Blyth0
- Cramlington0
- Ashington0
- Hexham0
- Bishop Auckland0
- Peterlee0
- Consett0
- Redcar0
- North Shields0
- Wallsend0
- Whitley Bay0
- Chester le Street0
- Houghton le Spring0
- Billingham0
- Morpeth0
- Washington0
- Stanley0
- Newton Aycliffe0
- Northallerton0
- Jarrow0
- Hebburn0
- Seaham0
- Bedlington0
- Guisborough0
- Spennymoor0
- Alnwick0
- Crook0
- Ferryhill0
- Barnard Castle0
- Blaydon-on-Tyne0
- Yarm0
- Tyne & Wear0
- Saltburn-by-the-Sea0
- Northumberland0
- Leyburn0
- Shildon0
North West
- Manchester1
- Liverpool1
- Salford0
- Preston0
- Lancaster0
- Carlisle0
- Chester0
- Bolton0
- Wigan0
- Stockport0
- Blackpool0
- Blackburn0
- Warrington0
- Oldham0
- Birkenhead0
- Southport0
- Burnley0
- Bury0
- Rochdale0
- St Helens0
- Widnes0
- Runcorn0
- Crewe0
- Macclesfield0
- Northwich0
- Kendal0
- Barrow-in-Furness0
- Workington0
- Morecambe0
- Accrington0
- Chorley0
- Leyland0
- Skelmersdale0
- Ormskirk0
- Ellesmere Port0
- Altrincham0
- Sale0
- Cheadle0
- Ashton-under-Lyne0
- Congleton0
- Hyde0
- Leigh0
- Heywood0
- Wilmslow0
- Bootle0
- Rossendale0
- Nelson0
- Clitheroe0
- Cheshire0
- Penrith0
- Darwen0
- Wallasey0
- Thornton Cleveleys0
- Prescot0
- Carnforth0
- Nantwich0
- Sandbach0
- Deeside0
- Knutsford0
- Stalybridge0
- Lytham St. Annes0
- Glossop0
- High Peak0
- Colne0
- Cumbria0
- Cockermouth0
- Winsford0
- Ulverston0
- Fleetwood0
- Poulton-le-Fylde0
- Merseyside0
- Bromborough0
- Dukinfield0
- Middlewich0
- Prenton0
- Todmorden0
- Neston0
- Tarporley0
- Maryport0
- Wigton0
- Lymm0
- Holywell0
- Newton-le-Willows0
- Windermere0
- Flintshire0
- Flint0
- Grange-Over-Sands0
- Barnoldswick0
- Buckley0
- Alderley Edge0
- Whitehaven0
- Lancs0
- Bacup0
Yorkshire and the Humber
- Leeds1
- Sheffield0
- Bradford0
- York0
- Hull0
- Wakefield0
- Doncaster0
- Huddersfield0
- Rotherham0
- Barnsley0
- Halifax0
- Harrogate0
- Scarborough0
- Grimsby0
- Dewsbury0
- Keighley0
- Pontefract0
- Castleford0
- Selby0
- Beverley0
- Scunthorpe0
- Bridlington0
- Whitby0
- Ripon0
- Batley0
- Gainsborough0
- Retford0
- Shipley0
- Mexborough0
- Pudsey0
- Skipton0
- Goole0
- Wetherby0
- Cleckheaton0
- Holmfirth0
- West Yorkshire0
- Cleethorpes0
- Ossett0
- Hessle0
- Malton0
- Driffield0
- Cottingham0
- Ilkley0
- Dronfield0
- Brough0
- Otley0
- Brighouse0
- Elland0
- Knaresborough0
- Mirfield0
- Normanton0
- North Yorkshire0
- Brigg0
- Liversedge0
- Thirsk0
- South Yorkshire0
- Bingley0
- Hebden Bridge0
- Baildon0
- Sowerby Bridge0
- East Yorkshire0
- Tadcaster0
East Midlands
- Nottingham0
- Leicester0
- Derby0
- Lincoln0
- Northampton0
- Mansfield0
- Chesterfield0
- Loughborough0
- Kettering0
- Corby0
- Wellingborough0
- Grantham0
- Boston0
- Skegness0
- Newark-on-Trent0
- Worksop0
- Ilkeston0
- Long Eaton0
- Hinckley0
- Coalville0
- Market Harborough0
- Buxton0
- Matlock0
- Spalding0
- Stamford0
- Burton-on-Trent0
- Newark0
- Swadlincote0
- Melton Mowbray0
- Rushden0
- Belper0
- Alfreton0
- Daventry0
- Sleaford0
- Sutton-in-Ashfield0
- Towcester0
- Wigston0
- Lutterworth0
- Market Rasen0
- Brackley0
- Ripley0
- Louth0
- Heanor0
- Derbyshire0
- Ashby-De-La-Zouch0
- Ashbourne0
- Leicestershire0
- Oakham0
- Northamptonshire0
- Nottinghamshire0
- Lincolnshire0
- Alford0
- Horncastle0
West Midlands
- Birmingham2
- Coventry0
- Wolverhampton2
- Stoke-on-Trent0
- Worcester0
- Hereford0
- Lichfield0
- Telford0
- Walsall0
- Dudley0
- Solihull0
- Shrewsbury0
- Nuneaton0
- Stafford0
- Kidderminster0
- Redditch0
- Bromsgrove0
- Tamworth0
- Burton upon Trent0
- Cannock0
- Leamington Spa0
- Warwick0
- Rugby0
- West Bromwich0
- Sutton Coldfield0
- Stourbridge0
- Halesowen0
- Newcastle-under-Lyme0
- Leek0
- Ludlow0
- Wednesbury0
- Oldbury0
- Smethwick0
- Newcastle0
- Willenhall0
- Kingswinford0
- Brierley Hill0
- Bilston0
- Evesham0
- Rugeley0
- Kington0
- Oswestry0
- Droitwich0
- Tipton0
- Stratford-upon-Avon0
- Burntwood0
- Cradley Heath0
- Malvern0
- Whitchurch0
- Alcester0
- Market Drayton0
- Kenilworth0
- Bridgnorth0
- Bedworth0
- Staffordshire0
- Leominster0
- Rowley Regis0
- Pershore0
- Uttoxeter0
- Ross-on-Wye0
- Stone0
- Atherstone0
- Stourport-on-Severn0
- Southam0
- Shifnal0
- Newtown0
- Welshpool0
- Bewdley0
- Worcestershire0
- Ledbury0
- Warwickshire0
- Church Stretton0
- Shropshire0
East of England
- Cambridge0
- Norwich0
- Peterborough0
- Ipswich0
- Colchester0
- Chelmsford0
- Luton0
- Southend-on-Sea0
- St Albans0
- Ely0
- Bedford0
- Watford0
- Basildon0
- Stevenage0
- Harlow0
- Brentwood0
- Braintree0
- Clacton-on-Sea0
- Lowestoft0
- Great Yarmouth0
- King's Lynn0
- Bury St Edmunds0
- Huntingdon0
- St Neots0
- Hemel Hempstead0
- Hitchin0
- Hertford0
- Letchworth Garden City0
- Welwyn Garden City0
- Grays0
- Dunstable0
- Leigh-on-Sea0
- Borehamwood0
- Benfleet0
- Wickford0
- Wisbech0
- Billericay0
- Hatfield0
- Bishops Stortford0
- Leighton Buzzard0
- Rickmansworth0
- Maldon0
- Canvey Island0
- Ware0
- Rayleigh0
- Stanford-le-Hope0
- Rochford0
- Halstead0
- Newmarket0
- Sudbury0
- Witham0
- Thetford0
- Stowmarket0
- Dereham0
- Dunmow0
- Saffron Walden0
- Royston0
- Epping0
- St. Ives0
- Woodbridge0
- Bushey0
- Mildenhall0
- Ongar0
- Harpenden0
- Biggleswade0
- Sawbridgeworth0
- Haverhill0
- Westcliff-on-Sea0
- West Horndon0
- March0
- Hockley0
- Ingatestone0
- Swaffham0
- Bourne0
- Kings Langley0
- Diss0
- Norfolk0
- Sandy0
- Suffolk0
- Wymondham0
- Fakenham0
- Beccles0
- Burnham-on-Crouch0
- Attleborough0
- Buntingford0
- Downham Market0
- Shefford0
- Halesworth0
- Radlett0
- Welwyn0
- Harleston0
- Hadleigh0
- Abbots Langley0
- Manningtree0
- Harwich0
- Chatteris0
- Felixstowe0
- Bungay0
- Brandon0
- Chorleywood0
- Stansted0
- London Colney0
- Baldock0
- Saxmundham0
- Frinton-on-Sea0
- Tiptree0
- Great Chesterford0
- North Walsham0
- Cromer0
South East
- Brighton and Hove0
- Southampton1
- Portsmouth0
- Oxford0
- Reading0
- Milton Keynes1
- Canterbury0
- Chichester0
- Winchester0
- Maidstone0
- Crawley0
- Guildford0
- Slough0
- High Wycombe0
- Basingstoke0
- Eastbourne0
- Hastings0
- Worthing0
- Aylesbury0
- Woking0
- Medway Towns0
- Tunbridge Wells0
- Ashford0
- Folkestone0
- Margate0
- Ramsgate0
- Dover0
- Sevenoaks0
- Dartford0
- Gravesend0
- Tonbridge0
- Bracknell0
- Wokingham0
- Maidenhead0
- Newbury0
- Andover0
- Farnborough0
- Aldershot0
- Fareham0
- Gosport0
- Havant0
- Bognor Regis0
- Horsham0
- Reigate0
- Epsom0
- Banbury0
- Bicester0
- Witney0
- Abingdon0
- Didcot0
- Isle of Wight0
- Lewes0
- Bexhill-on-Sea0
- Waterlooville0
- Brighton0
- Rochester0
- Chatham0
- Sidcup0
- Gillingham0
- Eastleigh0
- Hove0
- Camberley0
- Sittingbourne0
- Farnham0
- Bexleyheath0
- Redhill0
- Erith0
- Haywards Heath0
- West Malling0
- Westerham0
- Hailsham0
- Welling0
- East Grinstead0
- Chesham0
- Windsor0
- Burgess Hill0
- Southsea0
- Herne Bay0
- Gerrards Cross0
- Littlehampton0
- Horley0
- Dorking0
- Aylesford0
- Fleet0
- Romsey0
- Whitstable0
- Beaconsfield0
- Thatcham0
- Belvedere0
- Iver0
- Godalming0
- Sheerness0
- Hook0
- Hampshire0
- Buckingham0
- Lancing0
- Alton0
- Crowborough0
- Rye0
- Marlow0
- Berkhamsted0
- Shoreham-by-Sea0
- Wantage0
- Tring0
- Ascot0
- St. Leonards-on-Sea0
- Newport Pagnell0
- Kidlington0
- Polegate0
- Uckfield0
- Bordon0
- Deal0
- Lymington0
- Faversham0
- Hungerford0
- Amersham0
- Cranleigh0
- Broadstairs0
- Petersfield0
- East Sussex0
- Edenbridge0
- Swanscombe0
- Cranbrook0
- Oxted0
- Heathfield0
- Hassocks0
- Haslemere0
- Sandhurst0
- Longfield0
- Greenhithe0
- Thame0
- Crowthorne0
- West Sussex0
- Tadley0
- Wallingford0
- Peacehaven0
- Berkshire0
- Hayling Island0
- Ryde0
- Tenterden0
- Lingfield0
- Liphook0
- Newhaven0
- Henley-on-Thames0
- Battle0
- Pulborough0
- Princes Risborough0
- Billingshurst0
- Bedfordshire0
- Seaford0
- Emsworth0
- Chipping Norton0
- Cowes0
- Bagshot0
- Yateley0
- Herts0
- New Romney0
- Bexhill0
- Steyning0
- Hythe0
- Oxfordshire0
- Carterton0
- Bourne End0
- Sandown0
- Henfield0
- Alresford0
- Snodland0
- Chandlers Ford0
- Buckinghamshire0
- Forest Row0
- Chinnor0
- Sandwich0
- Arundel0
- Biggin Hill0
- Southwick0
- Cosham0
- Pevensey0
- Olney0
- Godstone0
- Stockbridge0
- Chalfont St. Giles0
- Pevensey Bay0
South West
- Bristol0
- Plymouth0
- Exeter0
- Bath0
- Gloucester0
- Swindon0
- Bournemouth0
- Poole0
- Cheltenham0
- Torquay0
- Truro0
- Salisbury0
- Wells0
- Taunton0
- Weston-super-Mare0
- Yeovil0
- Bridgwater0
- Exmouth0
- Barnstaple0
- Newquay0
- Falmouth0
- Penzance0
- St Austell0
- Frome0
- Chippenham0
- Trowbridge0
- Stroud0
- Dorchester0
- Weymouth0
- Christchurch0
- Newton Abbot0
- Paignton0
- Tiverton0
- Wimborne0
- Radstock0
- Ferndown0
- Cirencester0
- Redruth0
- Bideford0
- Ivybridge0
- Ringwood0
- Crediton0
- Tewkesbury0
- Melksham0
- Helston0
- Clevedon0
- Saltash0
- Devon0
- Dorset0
- Devizes0
- Calne0
- Teignmouth0
- Stonehouse0
- Swanage0
- Liskeard0
- New Milton0
- Bodmin0
- Blandford Forum0
- Sherborne0
- Westbury0
- Honiton0
- Broadstone0
- Camborne0
- Wellington0
- Marlborough0
- Lydney0
- Shepton Mallet0
- Bude0
- Tetbury0
- Kingsbridge0
- Shaftesbury0
- Somerset0
- Bridport0
- Dursley0
- Wiltshire0
- Warminster0
- Cinderford0
- Glastonbury0
- Cullompton0
- Portland0
- Gloucestershire0
- Somerton0
- Launceston0
- Axminster0
- Okehampton0
- Ilminster0
- Totnes0
- Cornwall0
- Verwood0
- Wadebridge0
- Callington0
- Wotton-under-Edge0
- Sturminster Newton0
- Fordingbridge0
- Holsworthy0
- Street0
- Penryn0
- Chard0
- Brixham0
- Hayle0
- Wareham0
- Martock0
- Seaton0
- Coleford0
- Faringdon0
- Malmesbury0
- Minehead0
- Langport0
- Buckfastleigh0
- Corsham0
- Bradford-on-Avon0
- Tavistock0
- Newent0
- Dawlish0
- Warmley0
Scotland
- Glasgow1
- Edinburgh1
- Aberdeen0
- Dundee0
- Inverness0
- Perth0
- Stirling0
- Dunfermline0
- Paisley0
- East Kilbride0
- Livingston0
- Ayr0
- Kilmarnock0
- Falkirk0
- Motherwell0
- Hamilton0
- Cumbernauld0
- Greenock0
- Irvine0
- Dumfries0
- Glenrothes0
- Kirkcaldy0
- Elgin0
- Fort William0
- Oban0
- Arbroath0
- Peterhead0
- St Andrews0
- Galashiels0
- Airdrie0
- Coatbridge0
- Bathgate0
- Clydebank0
- Dalkeith0
- Lanark0
- Musselburgh0
- Wishaw0
- Larkhall0
- Bellshill0
- Inverurie0
- Renfrew0
- Broxburn0
- Shetland0
- Montrose0
- Penicuik0
- Alloa0
- Loanhead0
- Grangemouth0
- Fraserburgh0
- Dingwall0
- Hawick0
- Tain0
- Leven0
- Buckie0
- Lochgelly0
- Tranent0
- Forfar0
- Dumbarton0
- Johnstone0
- Kinross0
- Turriff0
- Cupar0
- Westhill0
- Carluke0
- Thurso0
- Blairgowrie0
- Helensburgh0
- Banchory0
- Ellon0
- Berwick upon Tweed0
- Cowdenbeath0
- Nairn0
- Carnoustie0
- Stonehaven0
- Kelso0
- Rosyth0
- Dalry0
- Crieff0
- Prestonpans0
- Prestwick0
- Cumnock0
- Alexandria0
- Denny0
Wales
- Cardiff0
- Swansea0
- Newport0
- Wrexham0
- Bangor (Gwynedd)0
- St Davids0
- St Asaph0
- Barry0
- Neath0
- Bridgend0
- Llanelli0
- Merthyr Tydfil0
- Aberystwyth0
- Rhyl0
- Llandudno0
- Caernarfon0
- Carmarthen0
- Haverfordwest0
- Pontypridd0
- Caerphilly0
- Cwmbran0
- Port Talbot0
- Abergavenny0
- Brecon0
- Colwyn Bay0
- Holyhead0
- Mold0
- Bangor0
- Pontypool0
- Blackwood0
- Aberdare0
- Ammanford0
- Pontyclun0
- Tredegar0
- Monmouth0
- Milford Haven0
- Penarth0
- Mountain Ash0
- Chepstow0
- Porth0
- Pwllheli0
- Tonypandy0
- Caldicot0
- Cardigan0
- Prestatyn0
- Ebbw Vale0
- Cowbridge0
- Abertillery0
- Porthcawl0
- Treorchy0
- Maesteg0
- Llandrindod Wells0
- Treharris0
- Llandeilo0
- Hengoed0
- Bargoed0
- Fishguard0
Northern Ireland
- Belfast0
- Derry/Londonderry0
- Lisburn0
- Newry0
- Armagh0
- Bangor (County Down)0
- Ballymena0
- Newtownabbey0
- Coleraine0
- Omagh0
- Enniskillen0
- Larne0
- Carrickfergus0
- Portadown0
- Lurgan0
- Dungannon0
- Banbridge0
- Antrim0
- Londonderry0
- Craigavon0
- Magherafelt0
- Newtownards0
- Derry0
- Strabane0
- Limavady0
- Downpatrick0
- Cookstown0
- Castlewellan0
- Maghera0
- Dromore0
- Ballynahinch0
- Ballymoney0
- Ballyclare0
- Co Tyrone0
- Co Down0
- Dungiven0