// Adds dimensions UUID, Author and Topic into GA4
Tuesday, July 14, 2026
31.6 C
Singapore

GE 2020: The main results

People’s Action Party (PAP)

In the General Election 2020, the People’s Action Party (PAP) has once again come out on top, garnering 83 out of a total 93 seats.

Receiving a total of 1,524,781 votes, Secretary-General Lee Hsien Loong and his party garnered a total of 61.24 per cent of votes in contested seats. This number has gone down from the election in 2015.

Workers’ Party

Out of a total 21 seats contested, the Workers’ Party, led by Chief Pritam Singh won 10 seats in Parliament. They garnered 279,245 votes or 50.49 per cent of votes in contested seats. This means an increase of about 10 percentage points from the 2015 elections.

Progress Singapore Party (PSP)

Dr Tan Cheng Bock’s PSP contested 24 seats but did not garner any. However, the party received a total of 253,459 votes or 40.85 per cent of votes in contested seats.

Singapore Democratic Party (SDP)

The SDP, led by Dr Chee Soon Juan and Chairman Paul Tambyah contested a total 11 seats but did not win any seats. They received a total of 110,827 votes or 37.04 per cent of votes in contested seats.

- Advertisement -

Hot this week

WP MP Kenneth Tiong: Heartland Singaporeans are concerned over loss of income when RTS opens

"The train starts running in 2027. DBS estimates $1.5 to $2.1 billion of retail spending a year will move across the Causeway. The Government is helping shops spruce up and giving out vouchers. I s...

How Johor gave the ex-PM a new lifeline for freedom

There are many reasons why Najib Razak is still a popular topic in the Johor elections, certainly among political figures from all sides of the political class. And this is probably why it is the c...

Popular Categories

document.addEventListener("DOMContentLoaded", () => { const trigger = document.getElementById("ads-trigger"); if ('IntersectionObserver' in window && trigger) { const observer = new IntersectionObserver((entries, observer) => { entries.forEach(entry => { if (entry.isIntersecting) { lazyLoader(); // You should define lazyLoader() elsewhere or inline here observer.unobserve(entry.target); // Run once } }); }, { rootMargin: '800px', threshold: 0.1 }); observer.observe(trigger); } else { // Fallback setTimeout(lazyLoader, 3000); } });
// //
Enable Notifications OK No thanks