CCW supports thousands of customers with complaints they have been unable to resolve directly with their water company.
In addition, we carry out research on a wide range of water issues and publish our findings to influence the future direction of the industry in a way that benefits consumers. Our Committees in England and Wales and team of Consumer Advocates represent consumer interests to a wide range of stakeholders, including Government, regulators and water companies.
Our history
- A non-departmental public body (NDPB) in England and a statutory body in Wales, sponsored by Defra and Welsh Government respectively.
- Established on 1 October 2005 under the Water Industry Act 1991 as amended by the Water Act 2003, to represent consumers of water and sewerage services in England and Wales.
- Replaced the WaterVoice committees, which were part of the industry economic regulator, Ofwat, to become an independent statutory consumer
Values and behaviours
Colleagues at CCW are:
- Positive Energy
- Respect for all
- Innovative spirit
- Deliver Our Promises
- Work together as one
Our vision and values
As we look ahead to the coming years, we have a clear vision of what we aim to achieve on behalf of water consumers in England and Wales. This mission is supported by strategic ambitions and delivered through a series of key campaigns.
In addition, colleagues across CCW embrace a set of corporate values that embody the way we do business. Through our focus on personal development, diversity and inclusion, we want to make sure that CCW is a fun, energetic place to work where every colleague feels that their individual contribution is making a difference.
Equality and diversity
At CCW, we define our diversity as having people with a wide range of traits, backgrounds and experiences. Being inclusive means we all feel comfortable sharing our ideas and perspectives because our differences are respected and valued. Every member of the organisation feels safe, accepted and appreciated with an equal opportunity to grow and succeed at work.
![](/documents/23441697/23441909/EDI+Logo.png)
![](/documents/23441697/23441909/CCW+PRIDE+Values+V4-01.png)
Interested?
The following has evaluated to null or missing: ==> propsUtil.get(ucmLocaleKey) [in template "64056#64102#365043" at line 28, column 19] ---- Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: #assign locale = propsUtil.get(ucmLoc... [in template "64056#64102#365043" at line 28, column 1] ----
1<div id="outer-footer" class="updatedFooter" style="padding-left: 0px; width: 1640px;">
2 <div id="inner-footer-expert" class="">
3 <div id="footerLogo">
4 <#--<#if FooterLogo.getData()?? && FooterLogo.getData() != "">
5 <#assign footerLogoHTML = "${FooterLogo.getData()}"/>
6 <#if (footerLogoHTML?length > 0)>
7 ${footerLogoHTML}
8 <#else>
9 <img src="https://www/hays.co.uk/cs/HaysMicroSites/assets/img/hayslogo.gif" id="defaultLogo" alt="Hays
10 footer logo">
11 </#if>
12 </#if>-->
13 <#assign haysLogo = propsUtil.get("HAYS_LOGO")/>
14 <img src="${haysLogo}" id="defaultLogo" alt="Hays
15 footer logo" style="max-width:200px!important;margin:0px 15px;">
16 </div>
17 <div id="footerLogo-Links">
18 <#if Link.getSiblings()?has_content>
19 <#list Link.getSiblings() as cur_Link>
20 <#if cur_Link.getData()?? && cur_Link.getData() != "">
21 <#assign linkData = "${cur_Link.getData()}"/>
22 ${linkData}
23 </#if>
24 </#list>
25 </#if>
26 </div>
27 <#assign ucmLocaleKey = themeDisplay.getLocale()+"."+siteType+"."+"ucmLocale">
28<#assign locale = propsUtil.get(ucmLocaleKey)/>
29<#assign apiUrl = propsUtil.get("WEB72_API_DOMAIN")/>
30
31<#assign lr74CutoverCountryCode = propsUtil.get("LR74_CUTOVER_COUNTRY_CODE")/>
32<#if lr74CutoverCountryCode??>
33<#list lr74CutoverCountryCode?split(",") as countryCode>
34 <#if countryCode = themeDisplay.getLocale()?keep_after_last("_") >
35 <#assign apiUrl = propsUtil.get("API_DOMAIN")/>
36 </#if>
37</#list>
38</#if>
39
40<#attempt>
41
42<#if httpUtil.URLtoString(apiUrl+"/o/HaysContentStructure/getcontentstructure/expertFooter/"+locale)??>
43<#assign response = httpUtil.URLtoString(apiUrl+"/o/HaysContentStructure/getcontentstructure/expertFooter/"+locale)>
44<#assign responseObj = jsonFactoryUtil.createJSONObject(response)>
45<#assign getResponseResultArray = responseObj.getJSONArray("results")>
46<div id="footer-bottom">
47 <#if getResponseResultArray.length() gt 0>
48 <#assign siteUrl = getResponseResultArray.get(0).siteUrl>
49
50 <#if getResponseResultArray.get(0).getJSONArray("GroupHeading")?? && getResponseResultArray.get(0).getJSONArray("GroupHeading").length()?? && getResponseResultArray.get(0).getJSONArray("GroupHeading").length() gt 1>
51
52 <#assign groupHeadingArr = getResponseResultArray.get(0).getJSONArray("GroupHeading")>
53 <div class="row single-col gpHeading">
54 <div class="col col-12">
55 <nav>
56 <ul>
57 <#list 0 ..< groupHeadingArr.length()?number as i>
58 <#if groupHeadingArr.get(i).Link?starts_with("/")>
59 <#assign linkUrl = siteUrl + groupHeadingArr.get(i).Link>
60 <li>
61 <a href="${linkUrl}" target="">${groupHeadingArr.get(i).GroupHeading}</a>
62 </li>
63 <#else>
64 <li>
65 <a href="${groupHeadingArr.get(i).Link}" target="">${groupHeadingArr.get(i).GroupHeading}</a>
66 </li>
67 </#if>
68 </#list>
69 </ul>
70 </nav>
71 </div>
72 </div>
73 <#elseif getResponseResultArray.get(0).getJSONArray("FooterLink")??>
74 <#assign FooterLinkArr = getResponseResultArray.get(0).getJSONArray("FooterLink")>
75 <div class="row single-col">
76 <div class="col col-12">
77 <nav>
78 <ul>
79 <#list 0 ..< FooterLinkArr.length()?number as i>
80 <#assign linkUrl = FooterLinkArr.get(i).FooterLink?replace("href=\"/", "href=\""+siteUrl+"/" ) >
81 <li>
82 ${linkUrl}
83 </li>
84 </#list>
85 </ul>
86 </nav>
87 </div>
88 </div>
89
90 </#if>
91 <div class="row single-col">
92 <div class="col col-12">
93 <p class="last">${getResponseResultArray.get(0).CopyrightHTML}</p>
94 </div>
95 </div>
96 </#if>
97</div>
98</#if>
99<#recover>
100
101</#attempt>
102
103 <div id="copyright-text">
104 <#if CopyrightText?? && CopyrightText.getData()?? && CopyrightText.getData() != "">
105 ${CopyrightText.getData()}
106 </#if>
107 </div>
108 </div>
109</div>
110<script>
111$(document).ready(function(){
112 if((Liferay.ThemeDisplay.getLanguageId() != "en_GB") && (location.href.indexOf("/web/") != -1)) {
113 console.log("link update required on the site");
114 $('a').each(function(index) {
115 var layoutRelativeUrl = Liferay.ThemeDisplay.getLayoutRelativeURL();
116 var getSiteUrl = layoutRelativeUrl.substring(0, layoutRelativeUrl.lastIndexOf("/"));
117 var linkVal = $(this).attr("href");
118 if((typeof linkVal !== "undefined") && linkVal.indexOf("https") == -1 && linkVal.indexOf("/")!= -1 && (linkVal.indexOf("/") === linkVal.lastIndexOf("/"))){
119 var updatedLink = getSiteUrl + linkVal ;
120 $(this).attr("href", updatedLink)
121 console.log("link updated - " + updatedLink);
122 }
123 });
124 }
125});
126</script>