<!DOCTYPE html> <html <?php language_attributes(); ?>> <head> <meta charset="<?php bloginfo( 'charset' ); ?>" /> <?php elegant_description(); elegant_keywords(); elegant_canonical(); /** * Fires in the head, before {@see wp_head()} is called. This action can be used to * insert elements into the beginning of the head before any styles or scripts. * * @since 1.0 */ do_action( 'et_head_meta' ); $template_directory_uri = get_template_directory_uri(); ?> <link rel="pingback" href="<?php bloginfo('pingback_url'); ?>" /> <script type="text/javascript"> document.documentElement.className = 'js'; </script> <script src="https://consent-eu.cookiefirst.com/sites/redcresearch.com-1107a607-dd63-4fcc-b9df-d4ca23e4e85c/consent.js"></script> <style> .search_sep{ width: 1px; height: 22px; } .search_icons{ display: flex; width: 20px; height: 20px; justify-content: center; align-items: center; cursor: pointer; } .search_icon_header-x{ display: none; } .search-outer_{ display: inline-flex; justify-content: flex-end; align-items: center; gap: 20px; } .top-bar-outer { display: flex; justify-content: space-between; } .search_container_header { padding-top: 14px; padding-bottom: 14px; background-color: white; display: none; position: absolute; width: 100%; z-index: 999999; left: 0; right: 0; } .search_container_header .col-search .et-search-form input{ background: var(--Colours-Slate-50, #F8FAFC) !important; width: 800px; } .search_container_header .col-search{ text-align: center; } .mobile-search-header{ padding-left: 20px; padding-right: 20px; padding-top: 20px; padding-bottom: 20px; border-bottom: 1px solid var(--color_slate_200); } .mobile-search-header .col-search .et-search-form { width: 100% !important; max-width: 100% !important; position: relative !important; } .mobile-search-header .col-search .et-search-form input{ background: var(--Colours-Slate-50, #F8FAFC); width: 100%; padding-left: 28px; } .mobile-search-header .col-search .et-search-form img { display: flex; width: 14px; height: 14px; justify-content: center; align-items: center; flex-shrink: 0; position: absolute; top: 14px; bottom: 0; right: 18px; } </style> <?php wp_head(); ?> <!-- Google tag (gtag.js) --> <script async src="https://www.googletagmanager.com/gtag/js?id=G-FR3DFL48H2"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-FR3DFL48H2'); </script> </head> <body <?php body_class(); ?>> <div class="mobile-menu-redc"> <div class="mobile-menu-inner"> <div class="close-icon-m"> <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M3.99988 19.999L20.0001 3.9988" stroke="#0F172A" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> <path d="M20.0001 20.0012L3.99988 4.00098" stroke="#0F172A" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> </svg> </div> <div class="mobile-search-header"> <div class="col-search"> <form role="search" method="get" class="et-search-form" action="<?php echo esc_url( home_url( '/' ) ); ?>"> <img src="<?=site_url(); ?>/wp-content/uploads/2024/09/mobile-search.png"> <?php printf( '<input type="search" class="et-search-field" placeholder="%1$s" value="%2$s" name="s" title="%3$s" />', esc_attr__( 'Search RED C Research...', 'Divi' ), get_search_query(), esc_attr__( 'Search RED C Research...', 'Divi' ) ); ?> <?php /** * Fires inside the search form element, just before its closing tag. * * @since ?? */ do_action( 'et_search_form_fields' ); ?> <!-- <button type="submit" id="searchsubmit_header">Search</button> --> </form> </div> </div> <?php $cta_buttons = get_field('cta_buttons', 'option'); ?> <div class="header-cta-btns header-cta-btns_mobile"> <a href="<?=$cta_buttons['button_1_url']; ?>"><?=$cta_buttons['button_1_text']; ?></a> <a href="<?=$cta_buttons['button_2_url']; ?>"><?=$cta_buttons['button_2_text']; ?></a> </div> <div class="redc-mobile-nav"> <?php $primaryNav = wp_nav_menu( array( 'theme_location' => 'primary-menu', 'container' => '', 'fallback_cb' => '', 'menu_class' => $menuClass, 'menu_id' => 'top-menu', 'echo' => false ) ); echo et_core_esc_wp( $primaryNav ); ?> </div> </div> </div> <?php wp_body_open(); $product_tour_enabled = et_builder_is_product_tour_enabled(); $page_container_style = $product_tour_enabled ? ' style="padding-top: 0px;"' : ''; ?> <div id="page-container"<?php echo et_core_intentionally_unescaped( $page_container_style, 'fixed_string' ); ?>> <?php if ( $product_tour_enabled || is_page_template( 'page-template-blank.php' ) ) { return; } $et_secondary_nav_items = et_divi_get_top_nav_items(); $et_phone_number = $et_secondary_nav_items->phone_number; $et_email = $et_secondary_nav_items->email; $et_contact_info_defined = $et_secondary_nav_items->contact_info_defined; $show_header_social_icons = $et_secondary_nav_items->show_header_social_icons; $et_secondary_nav = $et_secondary_nav_items->secondary_nav; $et_top_info_defined = $et_secondary_nav_items->top_info_defined; $et_slide_header = 'slide' === et_get_option( 'header_style', 'left' ) || 'fullscreen' === et_get_option( 'header_style', 'left' ) ? true : false; $show_search_icon = ( false !== et_get_option( 'show_search_icon', true ) && ! $et_slide_header ) || is_customize_preview(); ?> <?php if ( $et_top_info_defined && ! $et_slide_header || is_customize_preview() ) : ?> <?php ob_start(); ?> <div id="top-header"<?php echo $et_top_info_defined ? '' : 'style="display: none;"'; ?>> <div class="container clearfix"> <?php if ( $et_contact_info_defined ) : ?> <div id="et-info"> <?php if ( ! empty( $et_phone_number = et_get_option( 'phone_number' ) ) ) : ?> <span id="et-info-phone"><?php echo et_core_esc_previously( et_sanitize_html_input_text( strval( $et_phone_number ) ) ); ?></span> <?php endif; ?> <?php if ( ! empty( $et_email = et_get_option( 'header_email' ) ) ) : ?> <a href="<?php echo esc_attr( 'mailto:' . $et_email ); ?>"><span id="et-info-email"><?php echo esc_html( $et_email ); ?></span></a> <?php endif; ?> <?php if ( true === $show_header_social_icons ) { get_template_part( 'includes/social_icons', 'header' ); } ?> </div> <?php endif; // true === $et_contact_info_defined ?> <div id="et-secondary-menu"> <?php if ( ! $et_contact_info_defined && true === $show_header_social_icons ) { get_template_part( 'includes/social_icons', 'header' ); } else if ( $et_contact_info_defined && true === $show_header_social_icons ) { ob_start(); get_template_part( 'includes/social_icons', 'header' ); $duplicate_social_icons = ob_get_contents(); ob_end_clean(); printf( '<div class="et_duplicate_social_icons"> %1$s </div>', et_core_esc_previously( $duplicate_social_icons ) ); } if ( '' !== $et_secondary_nav ) { echo et_core_esc_wp( $et_secondary_nav ); } et_show_cart_total(); ?> </div> </div> </div> <?php $top_header = ob_get_clean(); /** * Filters the HTML output for the top header. * * @since 3.10 * * @param string $top_header */ echo et_core_intentionally_unescaped( apply_filters( 'et_html_top_header', $top_header ), 'html' ); ?> <?php endif; // true ==== $et_top_info_defined ?> <?php if ( $et_slide_header || is_customize_preview() ) : ?> <?php ob_start(); ?> <div class="et_slide_in_menu_container"> <?php if ( 'fullscreen' === et_get_option( 'header_style', 'left' ) || is_customize_preview() ) { ?> <span class="mobile_menu_bar et_toggle_fullscreen_menu"></span> <?php } ?> <?php if ( $et_contact_info_defined || true === $show_header_social_icons || false !== et_get_option( 'show_search_icon', true ) || class_exists( 'woocommerce' ) || is_customize_preview() ) { ?> <div class="et_slide_menu_top"> <?php if ( 'fullscreen' === et_get_option( 'header_style', 'left' ) ) { ?> <div class="et_pb_top_menu_inner"> <?php } ?> <?php } if ( true === $show_header_social_icons ) { get_template_part( 'includes/social_icons', 'header' ); } et_show_cart_total(); ?> <?php if ( false !== et_get_option( 'show_search_icon', true ) || is_customize_preview() ) : ?> <?php if ( 'fullscreen' !== et_get_option( 'header_style', 'left' ) ) { ?> <div class="clear"></div> <?php } ?> <form role="search" method="get" class="et-search-form" action="<?php echo esc_url( home_url( '/' ) ); ?>"> <?php printf( '<input type="search" class="et-search-field" placeholder="%1$s" value="%2$s" name="s" title="%3$s" />', esc_attr__( 'Search …', 'Divi' ), get_search_query(), esc_attr__( 'Search for:', 'Divi' ) ); /** * Fires inside the search form element, just before its closing tag. * * @since ?? */ do_action( 'et_search_form_fields' ); ?> <button type="submit" id="searchsubmit_header"></button> </form> <?php endif; // true === et_get_option( 'show_search_icon', false ) ?> <?php if ( $et_contact_info_defined ) : ?> <div id="et-info"> <?php if ( ! empty( $et_phone_number = et_get_option( 'phone_number' ) ) ) : ?> <span id="et-info-phone"><?php echo et_core_esc_previously( et_sanitize_html_input_text( strval( $et_phone_number ) ) ); ?></span> <?php endif; ?> <?php if ( ! empty( $et_email = et_get_option( 'header_email' ) ) ) : ?> <a href="<?php echo esc_attr( 'mailto:' . $et_email ); ?>"><span id="et-info-email"><?php echo esc_html( $et_email ); ?></span></a> <?php endif; ?> </div> <?php endif; // true === $et_contact_info_defined ?> <?php if ( $et_contact_info_defined || true === $show_header_social_icons || false !== et_get_option( 'show_search_icon', true ) || class_exists( 'woocommerce' ) || is_customize_preview() ) { ?> <?php if ( 'fullscreen' === et_get_option( 'header_style', 'left' ) ) { ?> </div> <?php } ?> </div> <?php } ?> <div class="et_pb_fullscreen_nav_container"> <?php $slide_nav = ''; $slide_menu_class = 'et_mobile_menu'; $slide_nav = wp_nav_menu( array( 'theme_location' => 'primary-menu', 'container' => '', 'fallback_cb' => '', 'echo' => false, 'items_wrap' => '%3$s' ) ); $slide_nav .= wp_nav_menu( array( 'theme_location' => 'secondary-menu', 'container' => '', 'fallback_cb' => '', 'echo' => false, 'items_wrap' => '%3$s' ) ); ?> <ul id="mobile_menu_slide" class="<?php echo esc_attr( $slide_menu_class ); ?>"> <?php if ( '' === $slide_nav ) : ?> <?php if ( 'on' === et_get_option( 'divi_home_link' ) ) { ?> <li <?php if ( is_home() ) echo( 'class="current_page_item"' ); ?>><a href="<?php echo esc_url( home_url( '/' ) ); ?>"><?php esc_html_e( 'Home', 'Divi' ); ?></a></li> <?php }; ?> <?php show_page_menu( $slide_menu_class, false, false ); ?> <?php show_categories_menu( $slide_menu_class, false ); ?> <?php else : echo et_core_esc_wp( $slide_nav ) ; endif; ?> </ul> </div> </div> <?php $slide_header = ob_get_clean(); /** * Filters the HTML output for the slide header. * * @since 3.10 * * @param string $top_header */ echo et_core_intentionally_unescaped( apply_filters( 'et_html_slide_header', $slide_header ), 'html' ); ?> <?php endif; // true ==== $et_slide_header ?> <?php ob_start(); ?> <header id="main-header" data-height-onload="<?php echo esc_attr( et_get_option( 'menu_height', '66' ) ); ?>"> <div class="container clearfix et_menu_container top-social-search-bar"> <?php $social_linking = get_field('social_linking', 'option'); $fb_url = $social_linking['facebook_profile_url']; $tw_url = $social_linking['twitter_profile_url']; $insta_url = $social_linking['instagram_profile_url']; $yt_url = $social_linking['youtube_profile_url']; ?> <div class="top-bar-outer"> <div class="social-outer_"> <ul> <?php if(!empty($fb_url)): ?> <li> <a href="<?=$fb_url;?>"> <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg"> <g clip-path="url(#clip0_2381_16032)"> <path d="M18 9C18 4.02943 13.9706 0 9 0C4.02943 0 0 4.02943 0 9C0 13.4921 3.29115 17.2155 7.59375 17.8907V11.6016H5.30859V9H7.59375V7.01719C7.59375 4.76156 8.93742 3.51562 10.9932 3.51562C11.9779 3.51562 13.0078 3.69141 13.0078 3.69141V5.90625H11.873C10.755 5.90625 10.4062 6.60006 10.4062 7.3118V9H12.9023L12.5033 11.6016H10.4062V17.8907C14.7088 17.2155 18 13.4923 18 9Z" fill="#22505F"/> </g> <defs> <clipPath id="clip0_2381_16032"> <rect width="18" height="18" fill="white"/> </clipPath> </defs> </svg> </a> </li> <?php endif; ?> <?php if(!empty($tw_url)): ?> <li> <a href="<?=$tw_url;?>"> <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M18 3.90133C17.3384 4.19431 16.6217 4.38075 15.8775 4.46065C16.6493 4.00787 17.2282 3.31538 17.5038 2.48971C16.7871 2.88923 15.9877 3.20884 15.1608 3.36864C14.4992 2.67615 13.5345 2.25 12.4594 2.25C10.4196 2.25 8.7657 3.84806 8.7657 5.81901C8.7657 6.11199 8.79326 6.37833 8.84839 6.64467C5.78867 6.48487 3.05972 5.07324 1.24043 2.91586C0.909648 3.44855 0.744257 4.06114 0.744257 4.70036C0.744257 5.95218 1.40582 7.04419 2.39816 7.68341C1.79173 7.65678 1.21286 7.49697 0.716692 7.23063C0.716692 7.25726 0.716692 7.25726 0.716692 7.2839C0.716692 9.01513 1.98469 10.4534 3.69372 10.773C3.39051 10.8529 3.05972 10.9062 2.72894 10.9062C2.48086 10.9062 2.26034 10.8795 2.03982 10.8529C2.50842 12.2645 3.88668 13.3033 5.48545 13.3299C4.21746 14.2887 2.61868 14.8481 0.882083 14.8481C0.578867 14.8481 0.303216 14.8214 0 14.7948C1.62634 15.8069 3.58346 16.3929 5.67841 16.3929C12.487 16.3929 16.2083 10.9594 16.2083 6.21852C16.2083 6.05872 16.2083 5.89891 16.2083 5.76574C16.8698 5.25968 17.5038 4.62046 18 3.90133Z" fill="#22505F"/> </svg> </a> </li> <?php endif; ?> <?php if(!empty($insta_url)): ?> <li> <a href="<?=$insta_url;?>"> <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg"> <g clip-path="url(#clip0_8_40035)"> <path d="M15.5454 0H2.45461C1.09897 0 0 1.09897 0 2.45461V15.5454C0 16.901 1.09897 18 2.45461 18H15.5454C16.901 18 18 16.901 18 15.5454V2.45461C18 1.09897 16.901 0 15.5454 0Z" fill="#22505F"/> <path d="M6.48421 4.90922C6.48421 5.75648 5.79726 6.44344 4.94999 6.44344C4.10272 6.44344 3.41577 5.75648 3.41577 4.90922C3.41577 4.06195 4.10272 3.375 4.94999 3.375C5.79726 3.375 6.48421 4.06195 6.48421 4.90922Z" fill="white"/> <path d="M6.13651 7.46633V14.2441C6.13757 14.4536 5.96882 14.6245 5.75929 14.6255H4.14034C3.93081 14.6263 3.7603 14.4568 3.75995 14.2473C3.75995 14.2466 3.75995 14.2459 3.75995 14.2452V7.46633C3.75995 7.25609 3.93046 7.08594 4.14034 7.08594H5.75718C5.96706 7.08664 6.13651 7.2568 6.13651 7.46633Z" fill="white"/> <path d="M14.5881 10.9942V14.275C14.5888 14.4676 14.433 14.6241 14.2404 14.6248C14.2397 14.6248 14.239 14.6248 14.2383 14.6248H12.4998C12.3072 14.6255 12.1507 14.4697 12.15 14.2771C12.15 14.2764 12.15 14.2757 12.15 14.275V11.0954C12.15 10.6208 12.2892 9.01734 10.9093 9.01734C9.84059 9.01734 9.62262 10.1146 9.57973 10.6078V14.2753C9.57973 14.4666 9.4261 14.6223 9.2352 14.6251H7.55578C7.36313 14.6251 7.20703 14.469 7.20703 14.2764V7.43602C7.20633 7.24336 7.36207 7.08691 7.55473 7.08621H9.2352C9.42821 7.08621 9.585 7.24266 9.585 7.43602V8.02699C9.98192 7.4318 10.5697 6.97266 11.8248 6.97266C14.6046 6.97266 14.5881 9.56824 14.5881 10.9942V10.9942Z" fill="white"/> </g> <defs> <clipPath id="clip0_8_40035"> <rect width="18" height="18" fill="white"/> </clipPath> </defs> </svg> </a> </li> <?php endif; ?> <?php if(!empty($yt_url)): ?> <li> <a href="<?=$yt_url;?>"> <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M18 9.39208C18 9.39208 18 12.3462 17.6287 13.7749C17.4206 14.5547 16.8131 15.1694 16.0424 15.38C14.6306 15.75 8.99997 15.75 8.99997 15.75C8.99997 15.75 3.38061 15.75 1.95749 15.3573C1.18687 15.1467 0.579373 14.5319 0.371249 13.7521C0 12.3462 0 9.375 0 9.375C0 9.375 0 6.42087 0.371249 4.99788C0.579373 4.21808 1.20375 3.58627 1.95749 3.37567C3.36936 3 8.99997 3 8.99997 3C8.99997 3 14.6306 3 16.0424 3.39275C16.8131 3.60335 17.4206 4.21808 17.6287 4.99788C18.0112 6.42087 18 9.39208 18 9.39208ZM7.2056 12.1071L11.8912 9.375L7.2056 6.64286V12.1071Z" fill="#22505F"/> </svg> </a> </li> <?php endif; ?> </ul> </div> <div class="search-outer_"> <img src="<?=site_url(); ?>/wp-content/uploads/2024/09/Seperator.png" class="search_sep"> <img src="<?=site_url(); ?>/wp-content/uploads/2024/09/Icon.png" alt="" class="search_icon_header search_icons"> <img src="<?=site_url(); ?>/wp-content/uploads/2024/09/Icon-1.png" alt="" class="search_icon_header-x search_icons"> </div> </div> </div> <div class="container search_container_header"> <div class="col-search"> <form role="search" method="get" class="et-search-form" action="<?php echo esc_url( home_url( '/' ) ); ?>"> <?php printf( '<input type="search" class="et-search-field" placeholder="%1$s" value="%2$s" name="s" title="%3$s" />', esc_attr__( 'Search RED C Research...', 'Divi' ), get_search_query(), esc_attr__( 'Search RED C Research...', 'Divi' ) ); ?> <?php /** * Fires inside the search form element, just before its closing tag. * * @since ?? */ do_action( 'et_search_form_fields' ); ?> <button type="submit" id="searchsubmit_header">Search</button> </form> </div> </div> <div class="container clearfix et_menu_container et_menu_header_"> <?php $logo = ( $user_logo = et_get_option( 'divi_logo' ) ) && ! empty( $user_logo ) ? $user_logo : $template_directory_uri . '/images/logo.png'; // Get logo image size based on attachment URL. $logo_size = et_get_attachment_size_by_url( $logo ); $logo_width = ( ! empty( $logo_size ) && is_numeric( $logo_size[0] ) ) ? $logo_size[0] : '93'; // 93 is the width of the default logo. $logo_height = ( ! empty( $logo_size ) && is_numeric( $logo_size[1] ) ) ? $logo_size[1] : '43'; // 43 is the height of the default logo. ob_start(); ?> <div class="logo_container"> <a href="<?php echo esc_url( home_url( '/' ) ); ?>"> <img src="<?php the_field('logo', 'option'); ?>" width="<?php echo esc_attr( $logo_width ); ?>" height="<?php echo esc_attr( $logo_height ); ?>" alt="<?php echo esc_attr( get_bloginfo( 'name' ) ); ?>" id="logo" data-height-percentage="<?php echo esc_attr( et_get_option( 'logo_height', '54' ) ); ?>" /> </a> </div> <?php $logo_container = ob_get_clean(); /** * Filters the HTML output for the logo container. * * @since 3.10 * * @param string $logo_container */ echo et_core_intentionally_unescaped( apply_filters( 'et_html_logo_container', $logo_container ), 'html' ); ?> <div id="et-top-navigation" data-height="<?php echo esc_attr( et_get_option( 'menu_height', '66' ) ); ?>" data-fixed-height="<?php echo esc_attr( et_get_option( 'minimized_menu_height', '40' ) ); ?>"> <?php if ( ! $et_slide_header || is_customize_preview() ) : ?> <nav id="top-menu-nav"> <?php $menuClass = 'nav'; if ( 'on' === et_get_option( 'divi_disable_toptier' ) ) $menuClass .= ' et_disable_top_tier'; $primaryNav = ''; $primaryNav = wp_nav_menu( array( 'theme_location' => 'primary-menu', 'container' => '', 'fallback_cb' => '', 'menu_class' => $menuClass, 'menu_id' => 'top-menu', 'echo' => false ) ); if ( empty( $primaryNav ) ) : ?> <ul id="top-menu" class="<?php echo esc_attr( $menuClass ); ?>"> <?php if ( 'on' === et_get_option( 'divi_home_link' ) ) { ?> <li <?php if ( is_home() ) echo( 'class="current_page_item"' ); ?>><a href="<?php echo esc_url( home_url( '/' ) ); ?>"><?php esc_html_e( 'Home', 'Divi' ); ?></a></li> <?php }; ?> <?php show_page_menu( $menuClass, false, false ); ?> <?php show_categories_menu( $menuClass, false ); ?> </ul> <?php else : echo et_core_esc_wp( $primaryNav ); endif; ?> </nav> <?php endif; ?> <?php if ( ! $et_top_info_defined && ( ! $et_slide_header || is_customize_preview() ) ) { et_show_cart_total( array( 'no_text' => true, ) ); } ?> <?php if ( $et_slide_header || is_customize_preview() ) : ?> <span class="mobile_menu_bar et_pb_header_toggle et_toggle_<?php echo esc_attr( et_get_option( 'header_style', 'left' ) ); ?>_menu"></span> <?php endif; ?> <?php /** * Fires at the end of the 'et-top-navigation' element, just before its closing tag. * * @since 1.0 */ do_action( 'et_header_top' ); ?> </div> <!-- #et-top-navigation --> <?php $cta_buttons = get_field('cta_buttons', 'option'); ?> <div class="header-cta-btns header-cta-btns_desktop"> <a href="<?=$cta_buttons['button_1_url']; ?>"><?=$cta_buttons['button_1_text']; ?></a> <a href="<?=$cta_buttons['button_2_url']; ?>"><?=$cta_buttons['button_2_text']; ?></a> </div> </div> <!-- .container --> </header> <!-- #main-header --> <?php $main_header = ob_get_clean(); /** * Filters the HTML output for the main header. * * @since 3.10 * * @param string $main_header */ echo et_core_intentionally_unescaped( apply_filters( 'et_html_main_header', $main_header ), 'html' ); ?> <div id="et-main-area"> <?php /** * Fires after the header, before the main content is output. * * @since 3.10 */ do_action( 'et_before_main_content' );

Following the historical result at the weekend’s 8th Amendment referendum, RED C have done our normal compilation of polls to evaluate how accurate they were in relation to the final result.
The first point to make, is that the argument that no one expected the result that came about, should probably be put to bed. Two polling companies had polls on the final weekend before the referendum, that actually predicted the result with extraordinary accuracy.
The most accurate poll was RED C’s final poll published in the Sunday Business Post the Sunday before the referendum. This poll was very accurate, with an error of just 1.1% vs. the final result. In fact, it was actually more accurate than both the Exit polls, which should be far more accurate as they don’t have the issues of undecided voters and are based on much larger sample sizes.
It should not have been a surprise either, given that the two previous polls published by RED C in March and April also showed a similar story, and in fact both were within the margin of error of the final result.
The second pollster with an accurate pre-referendum poll was Behaviour and Attitudes. Their poll was published in The Sunday Times, and had an error of 2%, which is also within the margin of error for a poll of this nature.
The rest of the polls conducted by other companies were not quite as accurate in their prediction. But the margin of error was no worse than had been seen at the last referendum, and all at least predicted a Yes result by at least 57% or more.
The problem was perhaps that many didn’t really believe that the polls from RED C and B&A could be accurate. “How could the result be even greater than for the Marriage Referendum?” was one comment.
To be honest, this is not really a surprise. Over recent years polling has become much more difficult task, as reaching a truly representative sample becomes more difficult. Polls also haven’t had a great track record in referendums or elections. In fact, an analysis of referendum polling prior to this weekend, has consistently showed that polls have over emphasised the Yes vote in nearly every referendum. At the Marriage Equality referendum, polls over predicted Yes support by as much as 7-10%.
As a result, much work has been done to try and understand this, and there have been papers written by people far more academic than I, about the Status Quo and Shy undecided voter. It is natural that, as an industry we look at the errors in previous elections and referenda and try to better understand why these have occurred. This is why many, including me, predicted that the race may well be tighter than our final poll suggested.
This feeling that the result would tighten, was further exacerbated by our Wisdom of Crowds approach. This was very successfully used at the Marriage Equality referendum and predicted the result with 100% accuracy. As such, deploying it again at this referendum made perfect sense, in order to try and help us to understand underlying shy or undecided voters. The Wisdom of Crowds predicted a 56% to 44% result, which also pointed to a possibly tighter race than we were seeing in our stated vote intention polls. However, it appears the Crowds were not so wise this time around!
At this stage it’s difficult to understand why, but perhaps the Crowd was simply reflecting the opinion among the population as a whole, that the race might be tighter than expected. It is also the case that having to provide equal airtime to both sides in a referendum, may well also have heightened the public’s views of a stronger No vote. No one watching the Claire Byrne debate would think that the No’s were only 34% of the population.
So why were some of the stated pre-referendum polls so accurate this time around? The first thing to take on board is that no election or referendum is exactly the same as the last. This makes accurate polling extremely difficult. Just ask all the UK pollsters that adjusted their techniques to take account of findings from the polling enquiry following the Brexit referendum, and ended up getting the last General Election result in the UK horribly wrong as a result of implementing those changes.
Having said that RED C have made a number of changes to our polls since the last general election, in order to try and provide a more accurate sample. These include changing the quota and weighting matrix we use, adding an education weight, spreading out fieldwork to reach all groups, and ensuring a minimum landline sample in our polls. Turnout could also have helped, as it appears in this referendum, that those saying in polls they would turn out, appear to have done so. Whereas often they say they will vote, but actually don’t manage it.
A word about the Citizens Assembly. If there is one thing that has come out of this referendum, it is the impact that the assembly had on the process, and how the assembly led the way by truly representing the population. The difficulty of recruiting members to the assembly that broadly represented the population was no easy task. RED C as the chosen recruitment company, acknowledged from the start that trying to get 100 people to be truly representative would be very difficult. In fact, the members of the Assembly voted to repeal in the 8th Amendment in very similar proportions to the electorate as a whole. I am proud that the procedures and processes we put in place, using tried and tested professional market research approaches in an effort to try and get a broadly representative group of members, has been now shown to have been so successful.
Finally, a shout out to the two companies that conducted Exit Polls. Getting the result right should be easier at an exit poll, as the sample is much greater and people have certainly made up their minds after the leave the polling booth. Having said that the task of completing 4000 interviews in one day and ensuing these are representative of all voters is not easy. The Irish Times exit poll conducted by Ipsos MRBI was produced astonishingly quickly, with great accuracy, a first for the industry. The RTE Exit poll, conducted by Behaviour and Attitudes, was released a little later, but the extra information included in the poll, was extremely useful to better understand voters and how they made their decisions.
All in all, not a bad reflection on the polling industry in Ireland. Roll on the next General Election!