Data

Jan Paternotte, de snelste spreker van de gemeenteraad

Ik heb de verslagen gedownload van 205 raadsvergaderingen (en 1.116 commissievergaderingen) van de Amsterdamse gemeenteraad. Daar kan je ruim 38 duizend stukjes gesproken tekst van raadsleden uit destilleren. Bij elk stukje tekst staat vermeld hoe lang de spreker aan het woord was. In principe kan je dus berekenen hoe snel raadsleden spreken.

De grafiek hieronder laat de relatie zien tussen de spreektijd en het aantal woorden, voor de huidige raadsperiode (zie Methode voor de slagen om de arm):

Er is een stevige correlatie: hoe langer sprekers aan het woord zijn, hoe meer woorden ze uitspreken (rangcorrelatie van 0.95), wat op zich niet verassend is. De doorsnee snelheid is ruim 158 woorden per minuut, maar de ene spreker is de ander niet. De rode stippen verwijzen naar teksten van Jan Paternotte, de snelste spreker van de gemeenteraad (inmiddels is hij Tweede Kamerlid geworden). Hij haalde deze raadsperiode normaal gesproken ruim 185 woorden per minuut.

Nou is het niet zo dat hij als een gek zijn tekst afraffelt. Hier is een voorbeeld (vanaf plm 59 minuten) waar Paternotte het woord voert met een voor hem karakteristieke snelheid. Ter vergelijking, het verhaal van Daniel van der Ree (vanaf plm 6:08) zit dicht bij de mediane snelheid voor alle raadsleden in de huidige raadsperiode.

Je moet voorzichtig zijn om de uitkomsten te vergelijken met cijfers uit andere bronnen, maar met die slag om de arm: Paternotte spreekt sneller dan een gemiddelde radionieuwslezer van de BBC, maar iets langzamer dan een radionieuwslezer bij de Franse RF of de Italiaanse RAI (om nog maar te zwijgen over de Spaanse RNE).

Hieronder een ranglijstje van de snelste sprekers van de raad, per periode, met tussen haakjes de mediaan voor het aantal woorden per minuut. Let wel, de verschillen zijn vrij klein. Jan Paternotte was in de vergaderingen van de huidige periode de snelste spreker, maar daaruit kan je nog niet concluderen dat hij in z’n algemeenheid een snellere spreker is dan bijvoorbeeld Sofyan Mbarki.

Raadsperiode 2014–2018
Paternotte, J.M. (186.2)
Mbarki, S. (184.6)
Poorter, M.F. (184.5)
Groen, R.J. (180.0)
Dantzig, R.H. van (180.0)
Vink, B.L. (177.4)
Kwint, J.P. (177.1)
Vroege, J.S.A. (176.8)
Roosma, F. (176.5)
Boomsma, D.T. (175.4)

Raadsperiode 2010–2014
Paternotte, Jan (176.4)
Poorter, Maarten (174.9)
Manuel, Ivar (165.0)
Goede, Marco de (162.9)
Bouwmeester, Gerolf (162.9)
Ivens, L.G.F. (162.9)
Velzen, G. van (160.2)
Roemburg, Evelien van (159.2)
Winsemius, Rik (158.4)
Evans-Knaup, Roderic (155.5)

Raadsperiode 2006–2010
Burg, E. van der (161.8)
Bergervoet, M. (161.8)
Manuel, Ivar (161.5)
Unver, Emre (160.0)
Goede, Marco de (160.0)
Geurts, B. (158.2)
Garde, M.C. van der (158.2)
Roos, D.J. (154.6)
Pligt, Maureen van der (153.3)
Verweij, H. (153.1)

UPDATE - Terechte kritiek op de grafiektitel.

Methode (en een update over open raadsinformatie)

Voor deze analyse heb ik gebruik gemaakt van de ‘oude’ raadsinformatie. Toen ik bijna klaar was, verscheen een persbericht dat raadsinformatie nu beschikbaar is als open data. De gemeente doet mee aan het prijzenswaardige project Open Raadsinformatie, dat als doel heeft om de raadsinformatie van meer dan honderd gemeenten op uniforme wijze beschikbaar te stellen als open data. Zo worden de gegevens beter toegankelijk voor journalisten, onderzoekers, app-ontwikkelaars en alle andere geïnteresseerde burgers.

Amsterdamse raadsleden dringen al lange tijd aan op open raadsinformatie. De deelname aan Open Raadsinformatie moest in die behoefte voorzien. Helaas zijn op dit moment alleen raadsverslagen en uitslagenlijsten beschikbaar, en alleen in pdf-vorm. Daarmee steekt de transparantie van de Amsterdamse besluitvorming pover af bij gemeenten als Utrecht.

Open State, een organisatie die een belangrijke rol speelt in het project Open Raadsinformatie, laat weten dat leverancier NotuBiz als pilot op dit moment alleen agenda’s en agendapunten ontsluit. Zij evalueren momenteel samen met VNG en hun klanten of ze in de toekomst meer gegevens en functionaliteit toe kunnen voegen.

Maar goed, voor nu heb ik dus gebruik gemaakt van het ‘oude’ systeem. De zoekfunctie die daaraan gekoppeld is is niet optimaal, maar in dit geval viel dat te omzeilen door de sitemap te scrapen.

De hoeveelheid genotuleerde tekst varieert nogal; vanaf 2015 is er meer tekst beschikbaar dan in voorgaande jaren. Ook is de spreeksnelheid in recentere jaren hoger: een mediaan van 158 wpm voor de huidige periode, tegenover ongeveer 145 wpm daarvoor. Waar dat precies aan ligt weet ik niet, maar het lijkt erop dat de vergaderingen in het verleden minder zorgvuldig zijn genotuleerd. Voor 2015 komt het regelmatig voor dat er geen of bijna geen tekst genotuleerd is. Al met al lijkt het erop dat de gegevens voor de huidige periode het meest betrouwbaar zijn.

Op de grafiek zijn enkele outliers niet zichtbaar. Ook heb ik de spreekteksten van de voorzitters van de raadsvergaderingen bij de analyse buiten beschouwing gelaten; daar zit wat meer ruis in. Het berekenen van de spreeksnelheid van individuele raadsleden heb ik beperkt tot personen die minstens 50 keer aan het woord zijn geweest.

Dit script laat zien hoe ik de gegevens heb verzameld en geanalyseerd.

The fastest speaker of the Amsterdam City Council

I’ve downloaded the reports of 205 city council meetings (as well as 1,116 council committee meetings) from the website of the City of Amsterdam. They contain over 38 thousand text fragments spoken by council members. Each fragment comes with an indication how long the council member had the floor. From this, it should be possible to calculate how fast council members speak.

The chart below shows the correlation between speech duration and the number of words, for the current city council period (see Method for caveats):

There’s a strong correlation: longer speeches contain more words (rank correlation 0.95), which shouldn’t come as a surprise. The median rate is over 158 words per minute, but this varies per council member. The red dots represent Jan Paternotte, the fastest speaker of the city council (he has since become a member of the national parliament). During this council period, his median rate was over 185 words per minute.

This doesn’t mean he rushes through his text. Here is an example (starting at approximately 59 minutes) where Paternotte speaks at his characteristic rate. For comparison, the speech by Daniel van der Ree (starting at approximately 6:08) is close to the median rate for all council members.

It’s tricky to compare these outcomes with data from other sources, but with that caveat: Paternotte speaks faster than the average news reader at BBC radio, but slightly slower than radio news readers of the French RF or the Italian RAI (not to mention the Spanish RNE).

UPDATE - Valid criticism of the chart title here (in Dutch).

Method (and an update on open council data)

For this analysis, I used the ‘old’ source for city council information. When I had almost finished, a press release announced that council information is now available as open data. Amsterdam participates in the commendable Open Raadsinformatie programme, which aims to make the city council information of over one hundred Dutch municipalities available as open data, in a uniform format. This will make it easier for journalists, researchers, app developers and anyone else who is interested to access and use this data.

Council members in Amsterdam have for quite some time been asking for open city council information. Participation in Open Raadsinformatie was meant to provide for this. However, at this moment only council meeting reports and voting results are available, and only in pdf format. This means that Amsterdam trails cities like Utrecht in terms of transparency.

Open State, an organisation that plays a key role in the Open Raadsinformatie programme, indicated that service provider NotuBiz currently makes agendas and agenda items available as part of a pilot. They are currently evaluating the pilot with the national organisation of municipalities VNG and their customers, and considering adding more data and functionality in the future.

For now, I used the ‘old’ source. Its search functionality is sub-optimal, but in this case I could get around this by scraping the site map.

The amount of text in the reports varies considerably; as of 2015, more text is available than in previous years. Further, the speech rate is higher in more recent years: a median of 158 wpm for the current council period, compared to about 145 wpm before that. I’m not sure how this can be explained, but it appears that minute taking has improved over time. Before 2015, there are frequent examples of meetings for which (almost) no speech has been reported. All in all, it appears that the data for the current council period is the most reliable.

The chart omits a few outliers. Further, I excluded speech of the chairmen of meetings from the analysis; this contains more noise. This script shows how I collected and anlysed the data.

Embedding tweets in Leaflet popups

I just created a map showing where so-called Biro’s (small cars) are parked on the pavement and annoying people. Twitter has quite a few photos of the phenomenon. In some cases, finding their location took a bit of detective work.

First you’ll need the embed code for the tweet. You can get it manually from the Twitter website, but if you want to automate your workflow, use a url like the one below. It’ll download a bit of json containing the embed code:

https://publish.twitter.com/oembed?url=https://twitter.com/nieuwsamsterdam/status/958761072214896640

When trying to embed the tweets in Leaflet popups, I ran into a few problems:

  • When popups open, the markers didn’t properly move down. As a result, most of the popup would be outside the screen. The problem and how to solve it are described here.
  • Twitter embed code contains a script tag to load a widget. Apparently you can’t execute javascript by adding it directly to the html for the popup content, but you can add it using a selector (cf here).

Here’s the code that’ll solve both problems:

map.on('popupopen', function(e) {
    $.getScript("https://platform.twitter.com/widgets.js");
    var px = map.project(e.popup._latlng); 
    px.y -= e.popup._container.clientHeight;
    map.panTo(map.unproject(px),{animate: true});
});

You may also want to do something about the width of the popups, because otherwise they will obscure most of the map on mobile screens and it will be difficult to close a popup (which you can normally do by clicking outside of the popup). You can change the width of embedded tweets, but this will not change the width of the popup itself. A simple solution is to give popups a maxWidth of 215 (.bindPopup(html, {maxWidth: 215})).

Of course, you could also vary maxWidth depending on screen width, but I think 215px works well on all screens. Further, embedded tweets appear to have a minimum width of about 200px, so if you want popups narrower than 215px you’ll have to figure out a way to fix that.

If you embed tweets, Twitter can track people who visit your webpage. Add <meta name="twitter:dnt" content="on"> to your page and Twitter promises they won’t track your visitors. I wasn’t sure whether this should be put in the web page itself or in the html content of the popups (I opted for both).

If the popups have a somewhat spartan look and do not contain photos: Good for you! You’re probably using something like Firefox with tracking protection enabled. This blocks sites which have been identified as ‘engaging in cross-site tracking of users’ - including, apparently, platform.twitter.com.

New Year - time to delete your Facebook account?

Around New Year, people turn to Google for advice on how to accomplish their New Year’s resolutions. The chart below (an update of one I created earlier) illustrates this.

Around New Year, there’s is a peak in people googling ‘quit smoking’, but it appears that even more people to try to figure out how to delete their Facebook account. The parallel is not entirely surprising, given claims that platforms like Facebook are designed to be addictive.

Chart updated 1 January 2018

Pages