Skip to content

Portugal · RNBP municipal services · 2024 administrative returns

Monograph lending and collection additions in Portugal’s RNBP municipalities, 2024

Among 234 RNBP municipalities with complete monograph counts for 2024, 46 combine above-median lending per year-end monograph with below-median additions. Comparing municipalities within population bands identifies 47, but only 35 appear under both rules. These are descriptive comparisons of municipal records, not diagnoses of shortages or underfunding.

Published
Share
Share this page
EmailCite & reuse this study
Key findings as text
Reusable imagesMonograph lending and collection additions in Portugal’s RNBP municipalities, 2024 — 234 / 257: Municipal records with all three monograph measures. 2024 RNBP network returns; 23 excluded from paired ratios without imputation.Download sharing image (JPG) ↓

Key findings

234 / 257

Municipal records with all three monograph measures

2024 RNBP network returns; 23 excluded from paired ratios without imputation.

9.95 / 1.51

Median annual loans / acquisitions per 100 monographs held at year end

Separate municipal medians for 234 complete cases. Acquisitions include purchases, donations and exchanges.

46 / 234

Above-median lending ratio and below-median additions ratio

Strict comparisons against complete-case medians. Descriptive thresholds, not adequacy standards.

35

Municipalities selected under both overall and population-band median rules

Overall rule selects 46; within-band rules select 47. Similar counts conceal different membership.

Two questions about a library collection

A municipal library’s collection serves readers over many years, while lending and acquisitions describe activity during a particular year. Looking at these measures together offers a useful way to ask how an existing collection is being used and how much material is being added. A service can record relatively frequent borrowing from its holdings without recording a similarly high additions ratio. Whether that combination signals a practical problem depends on information about the collection and the service that an administrative spreadsheet cannot supply.

This study examines that combination in Portugal’s Rede Nacional de Bibliotecas Públicas, or RNBP, using the official municipal returns for 2024. It compares home loans of monographs with monograph copies held at the end of the year, and compares acquisitions of monographs with that same stock. The shared category makes the two calculations interpretable together. The analysis keeps the original municipal counts available, shows which records have missing values, and tests how the comparison changes when municipalities are grouped by population.

Among the 234 municipalities with all three required measures, 46 have a lending ratio above the complete-case median and an additions ratio below it. Using separate medians within three population bands identifies 47 municipalities, but only 35 appear under both rules. The close headline counts therefore conceal a change in which municipalities are selected. This sensitivity is part of the finding. Neither rule supplies a list of inadequate collections or establishes how many libraries need additional funding.

The observation is a municipal service, not a building

DGLAB, Portugal’s Direção-Geral do Livro, dos Arquivos e das Bibliotecas, collected responses from 257 municipalities for the 2024 RNBP report. The official introduction describes 485 libraries in the network and explains that the inquiry covers central municipal libraries, their branches and mobile libraries. The data file has 257 distinct municipal records and 257 distinct source codes. A row should therefore be read as a municipal reporting unit rather than as an individual building with its own independent collection and lending count.

That distinction matters when comparing places. A municipality with branches can distribute its stock and services across several locations. Another municipality may organize its provision differently. The paired ratios summarize the reported municipal activity; they cannot reveal whether a particular neighborhood, branch, mobile stop or opening period is well served. Counting every row as a single physical library would misstate the underlying unit and could make an apparently simple comparison misleading.

The network also has a defined boundary. Its 257 respondents are the municipalities surveyed by DGLAB for this RNBP collection. They do not constitute a random sample drawn for this article, and their results are not expanded to all Portuguese libraries. The report notes that some services undergoing works or relocation remain in the inquiry when they reported activity in other areas. Differences in operating circumstances can therefore affect lending without making a record invalid. The analysis preserves those records rather than removing them on an assumption about normal operations.

Why the comparison uses monographs

The source organizes collections by document type. Monographs have corresponding fields for copies held, copies acquired and home lending: questionnaire items 3.1.1, 4.1.1 and 8.1.1. Selecting those matched categories avoids joining a broad stock measure to a narrower flow. It also prevents the study from drifting into a claim about fiction, romance, newly released books or all reading formats. The administrative category does not identify those audiences or genres.

Using the totals across every document type would introduce additional complications. The spreadsheet labels periodical holdings as titles, while periodical home lending is recorded in copies. Ebook holdings and acquisitions also have their own categories. A total assembled from differently described components is not the cleanest denominator for the present question. The monograph-only scope is a deliberate measurement decision, rather than an attempt to select the category with the strongest result.

The original opportunity was framed around collection renewal and heavily used books. Those phrases need care. These returns do not match an individual title’s borrowing history to whether another copy or a newer edition was acquired. They also do not establish which books readers requested but could not obtain. The analysis can describe the relationship between two municipal ratios within a common document category. It cannot show that the most-used titles were neglected, that the collection was outdated, or that readers were unable to find books they wanted.

Annual activity is divided by stock at year end

The questionnaire reproduced in the official report identifies collection holdings at 31 December 2024 and acquisitions during 2024. For each complete municipal record, this analysis divides reported home-loaned monographs by year-end monograph stock. It separately divides monograph acquisitions by the same year-end stock. Multiplying either ratio by 100 expresses the result per 100 monographs held. Both calculations use observed administrative counts from the same municipal row.

Year-end stock is a snapshot, whereas loans and acquisitions accumulate over the year. The denominator is not average inventory during 2024. If a substantial addition arrived late in the year, the closing stock could include material that had little opportunity to circulate. Withdrawals and other collection changes can also affect the relationship between the annual flow and the closing balance. The dataset does not provide a monthly stock series with which to replace that denominator. The article therefore calls the measure loans per year-end monograph, rather than implying an exact inventory-turnover rate.

Acquisitions require a further distinction. DGLAB’s report explains that they may arrive through purchases, offers, donations or exchanges. The additions ratio does not measure only purchased books, recent publication dates, expenditure or the share of old items replaced. Nor does it measure net collection growth: withdrawals are a separate process. A relatively low additions ratio can be described accurately without assigning a reason to it. An interpretation about budget constraints or collection freshness would require additional evidence about acquisition sources, selection decisions and the collection itself.

Full survey response still leaves missing measurements

All 257 municipalities returned the survey, but that does not mean every question has a value for every municipality. DGLAB explicitly distinguishes overall response from item response. In the published file, monograph stock is missing for six municipalities, acquisitions for four and home-loaned monographs for sixteen. Some of these missing fields occur in the same records. Requiring all three measures leaves 234 complete cases and excludes 23 municipalities from the paired analysis.

The missing values are not converted to zero. A recorded zero describes an observed administrative answer and remains in the calculations; an empty field does not establish an absence of stock, acquisitions or loans. The full table retains the excluded municipalities and identifies which inputs are unavailable. Lisboa is among the exclusions because its monograph lending field is empty in this file. Its exclusion concerns that field in this analysis, not whether the municipal library service operated or lent documents.

On the same set of 234 complete records, the supplied counts sum to 14,117,251 monographs held, 2,141,441 monographs home-loaned and 283,965 acquired. These are matched-case totals, not totals for all 257 respondents. The raw source’s wider item totals use different numbers of answering municipalities and are retained in the audit. Joining those different denominators would undermine the paired comparison. The complete-case selection avoids that mismatch but does not remove potential bias if the missing municipalities differ systematically from those retained.

What the median comparison describes

Across the 234 complete municipalities, the median is approximately 9.95 annual monograph loans per 100 monographs held at year end. The median additions ratio is approximately 1.51 acquisitions per 100 held. These are medians of municipal ratios: each complete municipality contributes one observation to each distribution. The figures describe the middle of those municipal distributions, not the ratio obtained by adding every numerator and denominator first.

The distinction is visible in the combined counts. Dividing the complete-case total loans by complete-case total stock gives approximately 15.17 loans per 100 held. Dividing total acquisitions by that stock gives approximately 2.01 acquisitions per 100 held. These pooled ratios give more influence to municipalities with larger stocks. The municipal medians and the pooled ratios answer different questions; neither should be substituted for the other without changing the description of what is being summarized.

For the primary comparison, a municipality is selected only when its lending ratio is strictly above the complete-case lending median and its additions ratio is strictly below the additions median. Forty-six of the 234 records satisfy both conditions, or approximately 19.66%. The thresholds are descriptive reference points calculated from this dataset. They are not minimum service standards, recommended acquisition rates or a professionally assessed boundary between adequate and inadequate provision. A point on either side of a median can be close to that median, so the classification should always be read alongside the underlying numbers.

Population groups change the comparison set

A reader may reasonably ask whether municipalities of very different sizes should be compared with one overall median. To explore that sensitivity, the analysis uses the population value supplied in each municipal row and forms three declared groups: fewer than 25,000 residents, 25,000 to 50,000 inclusive, and more than 50,000. These are analytic comparison bands, not a claim that all municipalities within a band have equivalent services or needs. No additional population data are joined to the returns.

The smallest band contains 142 complete municipalities. Its medians are about 7.09 loans and 1.39 acquisitions per 100 held, and 29 municipalities meet the within-band rule. The middle band has 41 complete cases, medians of about 15.28 loans and 1.80 acquisitions, and nine selected municipalities. The largest band has 51 complete cases, medians of about 17.13 loans and 2.05 acquisitions, and nine selected municipalities. The same three measures are required in every band.

Together, the band-specific comparisons identify 47 municipalities. Thirty-five also appear among the 46 selected by the overall rule; eleven appear only under the overall rule and twelve only under the band-specific rule. Reporting only 46 versus 47 would miss this change in membership. The grouping is a descriptive sensitivity check, not statistical adjustment for staffing, accessibility, income, branch structure or reader demand. The supplied population field is used as a size proxy, with the source’s population-description inconsistency disclosed in the methods rather than silently resolved.

A stricter threshold gives a much smaller group

The median split is useful for describing relative position, but it is only one possible threshold. The analysis also tests a stricter version: lending must be above the seventy-fifth percentile and acquisitions below the twenty-fifth percentile of the complete-case distributions. Quantiles use the explicitly documented inclusive interpolation method. Under that rule, four municipalities are selected in the overall comparison. Applying the same percentile rule separately within the population bands selects six.

The large difference between the median and quartile counts is a warning against turning a convenient analytic rule into a diagnostic label. The number of municipalities described as relatively high lending and relatively low additions depends on how those words are defined. None of these thresholds was established as a validated test of service pressure. The full numeric table allows readers to inspect continuous values rather than relying solely on a yes-or-no category.

The extent of the data also needs to remain visible. Machico has an additions-to-stock ratio of approximately 56.69%, and Santa Maria da Feira has a lending-to-stock ratio of approximately 89.74%. These observations are retained. They are not removed merely because most records occupy a smaller range. A figure may use an explicitly labelled inset to show the denser area, but its full-range view must preserve the observed extent. An unusual ratio is a reason to examine the source and context, not automatic evidence of an error or exceptional service quality.

How these measures connect to reading research

Administrative library measures and household reading surveys illuminate different parts of the reading environment. Library lending records transactions reported by a service. A survey may ask individuals whether they completed books, how often they read or how they obtained a recent book. Those units cannot be exchanged. One person can borrow repeatedly, several people can read a borrowed item, and reading can take place without any public-library transaction. This study does not estimate the proportion of Portuguese residents who read books.

The same caution applies to acquisition data. A copy added to a library can support access for many future readers, but the number of additions does not tell us how many people will use it or whether it fills a particular gap. Some reading needs concern availability of a specific title, language, accessible format, location or opening time. The monograph totals do not resolve those dimensions. They provide a bounded administrative comparison that can help formulate more precise questions for local service review.

For journalists and library professionals, the useful contribution is the paired municipal evidence and its sensitivity to comparison choices. DGLAB already publishes national totals, item response counts and geographic summaries. This article credits that work rather than presenting the underlying totals as a newly discovered fact. The added analysis links compatible municipal fields, preserves exclusions and shows how a simple characterization changes under alternative rules. A locally informed investigation could build on those records, but the national spreadsheet alone does not supply interviews, operational explanations or a judgement about any named municipality.

Reproduce the comparison before reusing the headline

The downloads provide all 257 municipal rows with the selected source counts, population band, complete-case status and calculated ratios where available. Missing measurements remain identifiable. A standalone Python script recalculates the complete-case selection, medians, pooled totals, population-band comparisons and threshold sensitivity from that public table. It uses standard-library functions, preserves the documented rules and produces a machine-readable result for comparison. The methods file identifies the source columns and their questionnaire codes.

Source provenance is kept separate from interpretation. The official CSV and XLSX were retrieved from the DGLAB dataset on dados.gov.pt, and their checksums matched the publisher’s recorded values. The selected fields were checked between the two formats, and their observed counts and sums reconciled with the official spreadsheet summaries. The public package supplies source URLs and hashes rather than copying the original workbook with its unrelated metadata. Readers can obtain the official source directly and compare the selected values against it.

When citing a result, retain the observation year, the municipal network scope, the complete-case denominator and the chosen threshold. For example, the median-based count concerns 46 of 234 complete municipal records in the 2024 RNBP returns. It does not establish that 46 libraries were underfunded or that Portuguese reading declined. The data are distributed under the source’s CC BY 4.0 terms with DGLAB attribution and the transformations identified. New translations or visualizations should preserve these qualifications as carefully as they preserve the numerical values.

Lending and collection additions

Annual monograph loans and additions relative to year-end holdings; each dot is one municipal service network.

Full chart and source
Two-panel scatter: all 234 complete municipalities on the left, with a clearly bounded detail on the right. Machico has 56.69 additions per 100 held; Santa Maria da Feira has 89.74 loans per 100 held. Zero observations remain visible.

Scroll horizontally to inspect the chart. ↔

Chart and values

Scroll horizontally to see all columns.

All 257 municipal records and complete-case status
Source codeMunicipalitySource populationPopulation bandMonographs held at year endMonographs acquired during yearHome-loaned monographsLoans per 100 heldAcquisitions per 100 heldAnalysis statusMissing-field reason
30401Abrantes3377025000-50000114282810104379.132671810.70877304CompleteNo missing required fields
20101Águeda4772725000-500009236821762168723.478910452.35579421CompleteNo missing required fields
20601Aguiar da Beira5326<2500016787176MissingNot calculatedNot calculatedExcludedloaned_monographs missing
40301Alandroal4973<25000181793910405.720886740.21453325CompleteNo missing required fields
20102Albergaria-a-Velha2617125000-500007919610541435018.119602001.33087530CompleteNo missing required fields
50101Albufeira4880725000-5000063870243033005.166744953.80460310CompleteNo missing required fields
40101Alcácer do Sal11036<2500035265717MissingNot calculatedNot calculatedExcludedloaned_monographs missing
30402Alcanena12876<2500042068307681716.204716170.72977085CompleteNo missing required fields
30101Alcobaça57973>5000018500943579231.308108115.09729730CompleteNo missing required fields
30301Alcochete20462<2500067935131043926.465003311.92831383CompleteNo missing required fields
30102Alenquer4947425000-5000085003156436804.329258971.83993506CompleteNo missing required fields
10801Alfândega da Fé4178<2500014883423132.103070620.28220117CompleteNo missing required fields
10701Alijó10296<25000Missing2693312Not calculatedNot calculatedExcludedstock_monographs missing
40401Aljustrel8923<2500037619903590.954305010.23924081CompleteNo missing required fields
30302Almada183643>5000010155247005102550.245194584.62817079CompleteNo missing required fields
20801Almeida5634<25000205134013501.706235071.95485789CompleteNo missing required fields
30501Almeirim23087<2500040058541608815.197962951.35054171CompleteNo missing required fields
40402Almodôvar6652<2500032456331768423.675129411.01984225CompleteNo missing required fields
30502Alpiarça7493<2500022359873247511.069368043.90446800CompleteNo missing required fields
40201Alter do Chão3222<2500017170308625.020384390.17472335CompleteNo missing required fields
20401Alvaiázere6479<25000285408914365.031534690.31184303CompleteNo missing required fields
40403Alvito2303<250003443316926117.582842040.49080824CompleteNo missing required fields
30201Amadora181607>5000011321412732792124.662144261.12441924CompleteNo missing required fields
10501Amarante52169>50000360741128908.011310080.03049288CompleteNo missing required fields
10201Amares19782<2500027881317MissingNot calculatedNot calculatedExcludedloaned_monographs missing
20103Anadia2851225000-50000819145311298315.849549530.64824084CompleteNo missing required fields
20402Ansião11930<250003277613127248.310959240.39968269CompleteNo missing required fields
10101Arcos de Valdevez20819<2500048696102123924.912107772.09668145CompleteNo missing required fields
20403Arganil11447<2500054723727755313.802240371.32850904CompleteNo missing required fields
10601Arouca20826<25000359106341093930.462266781.76552492CompleteNo missing required fields
40302Arraiolos6870<2500020555228294914.346874241.10921917CompleteNo missing required fields
30103Arruda dos Vinhos15752<250002772869721477.743075592.51370456CompleteNo missing required fields
20104Aveiro88154>500009951123073133931.493000772.31833667CompleteNo missing required fields
40203Avis3759<25000182408285342.927631584.53947368CompleteNo missing required fields
30503Azambuja23448<250005140927881056320.546985945.42317493CompleteNo missing required fields
10502Baião17088<250002314424616006.913238851.06291047CompleteNo missing required fields
10202Barcelos116959>500005018118801002719.981666373.74643789CompleteNo missing required fields
30303Barreiro81131>5000084916111569038.129210041.31306232CompleteNo missing required fields
20301Batalha16894<2500050385187777915.439118790.37114221CompleteNo missing required fields
40405Beja3395425000-5000017082615872980917.449919800.92901549CompleteNo missing required fields
21001Belmonte6265<250008950459901.005586595.12849162CompleteNo missing required fields
30504Benavente3313125000-5000046801768677114.467639581.64099058CompleteNo missing required fields
30104Bombarral14272<250008800000.000000000.00000000CompleteNo missing required fields
40303Borba6378<25000164541858735.305700741.12434666CompleteNo missing required fields
10802Boticas4832<2500042000100021005.000000002.38095238CompleteNo missing required fields
10203Braga203519>5000046389084776836214.736683271.82737287CompleteNo missing required fields
10803Bragança3558125000-5000056069744911216.251404521.32693645CompleteNo missing required fields
10503Cabeceiras de Basto15538<25000122155708466.925910774.66639378CompleteNo missing required fields
30105Cadaval14711<250004986952149739.972126971.04473721CompleteNo missing required fields
30106Caldas da Rainha55206>50000874198591516817.350919140.98262391CompleteNo missing required fields
58002Câmara de Lobos3324325000-5000074687506413571.816915936.78029644CompleteNo missing required fields
10102Caminha16604<2500052186Missing2723Not calculatedNot calculatedExcludedacquired_monographs missing
40204Campo Maior7877<250001586166920.580039090.41611500CompleteNo missing required fields
20201Cantanhede3539925000-500006007613011192719.853185962.16559025CompleteNo missing required fields
10703Carrazeda de Ansiães5368<250001916211991090.568834156.25717566CompleteNo missing required fields
20602Carregal do Sal9261<2500041159891510812.410408422.16477563CompleteNo missing required fields
30505Cartaxo24711<2500015156234156910.352335711.54394299CompleteNo missing required fields
30202Cascais222339>5000017047939004594826.952293242.28767180CompleteNo missing required fields
20404Castanheira de Pêra2756<250001584521110896.872830551.33165036CompleteNo missing required fields
20901Castelo Branco53342>50000115888230949274.251518711.99244098CompleteNo missing required fields
10504Castelo de Paiva15395<250001929257612216.329048312.98569355CompleteNo missing required fields
40205Castelo de Vide3180<2500014939453952.644085950.30122498CompleteNo missing required fields
20603Castro Daire13790<250002510243419647.824077761.72894590CompleteNo missing required fields
50104Castro Marim6983<250002648852613485.089096951.98580489CompleteNo missing required fields
40406Castro Verde6946<2500053090652650012.243360331.22810322CompleteNo missing required fields
20802Celorico da Beira6635<2500013848360167212.073945702.59965338CompleteNo missing required fields
10505Celorico de Basto17637<250001410851741MissingNot calculatedNot calculatedExcludedloaned_monographs missing
30506Chamusca8549<2500018781215247213.162238431.14477397CompleteNo missing required fields
10804Chaves3732225000-5000044813153MissingNot calculatedNot calculatedExcludedloaned_monographs missing
10506Cinfães17293<2500023830397663127.826269411.66596727CompleteNo missing required fields
20202Coimbra146899>500007689831040110693013.905378921.35256566CompleteNo missing required fields
20203Condeixa-a-Nova17882<2500027736412848530.592010381.48543409CompleteNo missing required fields
30403Constância4020<2500020343300212710.455685001.47470875CompleteNo missing required fields
30507Coruche17298<2500020883257442021.165541351.23066609CompleteNo missing required fields
21002Covilhã4660625000-500006871914861282318.660050352.16242960CompleteNo missing required fields
40206Crato3249<25000164351424382.665044110.86400974CompleteNo missing required fields
40407Cuba4469<250001446561MissingNot calculatedNot calculatedExcludedloaned_monographs missing
40207Elvas20325<2500013521325021311.576031890.18489346CompleteNo missing required fields
30404Entroncamento22604<2500025284478442417.497231451.89052365CompleteNo missing required fields
10401Espinho3273625000-500004937611591192824.157485422.34729423CompleteNo missing required fields
10204Esposende3772225000-50000619528181272720.543323861.32037707CompleteNo missing required fields
20105Estarreja2747425000-500007444633841132315.209682194.54557666CompleteNo missing required fields
40304Estremoz12482<250004882552227985.730670761.06912442CompleteNo missing required fields
10301Fafe4842025000-5000051061456830916.272693450.89304949CompleteNo missing required fields
50105Faro70347>50000785423221913124.357668510.40997173CompleteNo missing required fields
10507Felgueiras55223>5000073445547860211.712165570.74477500CompleteNo missing required fields
40408Ferreira do Alentejo7902<250002497217312054.825404450.69277591CompleteNo missing required fields
30405Ferreira do Zêzere8115<2500019481562541327.786047942.88486217CompleteNo missing required fields
20204Figueira da Foz61397>50000194495172356812.920897710.88588396CompleteNo missing required fields
20405Figueiró dos Vinhos5325<250003754118118144.832050290.48213953CompleteNo missing required fields
20701Fornos de Algodres4400<25000192135637804.059751212.93030760CompleteNo missing required fields
10704Freixo de Espada à Cinta3058<2500012983735MissingNot calculatedNot calculatedExcludedloaned_monographs missing
40208Fronteira2974<2500012091411471.215780330.33909519CompleteNo missing required fields
21003Fundão2728525000-500005293713981414726.724219362.64087500CompleteNo missing required fields
30406Gavião3263<2500013162105612209.269108048.02309679CompleteNo missing required fields
20406Góis3822<25000147542091971.335231121.41656500CompleteNo missing required fields
30508Golegã5488<25000300012568752.916569450.85330489CompleteNo missing required fields
10402Gondomar169388>500005310517541324924.948686563.30289050CompleteNo missing required fields
20702Gouveia12301<25000311091373500216.078948214.41351377CompleteNo missing required fields
40102Grândola14226<250004129012851268030.709614923.11213369CompleteNo missing required fields
20804Guarda4004625000-50000133462105046743.502120450.78674080CompleteNo missing required fields
10302Guimarães156513>5000034181588653899811.409095562.59350818CompleteNo missing required fields
20902Idanha-a-Nova8541<250002605015611094.257197700.59884837CompleteNo missing required fields
20106Ílhavo4321025000-500007348925912166629.481963293.52569772CompleteNo missing required fields
50106Lagoa2553525000-500008085627261753521.686702293.37142574CompleteNo missing required fields
50107Lagos3524125000-50000Missing189017077Not calculatedNot calculatedExcludedstock_monographs missing
20302Leiria136006>5000011359428953291228.973361272.54855010CompleteNo missing required fields
30203Lisboa575739>5000054801023345MissingNot calculatedNot calculatedExcludedloaned_monographs missing
50108Loulé75764>5000010687038281965518.391503703.58192196CompleteNo missing required fields
30204Loures209877>5000011047836431848816.734553493.29748909CompleteNo missing required fields
30107Lourinhã2897825000-500003624031091253434.586092728.57891832CompleteNo missing required fields
20407Lousã17662<25000556181671462326.291847960.30026250CompleteNo missing required fields
10508Lousada4865225000-500003769261622175.881884751.63429906CompleteNo missing required fields
20501Mação6399<250002998210007802.601560943.33533453CompleteNo missing required fields
10805Macedo de Cavaleiros14253<250008826314136315.443009293.55767052CompleteNo missing required fields
58004Machico19679<2500012689719312539.8746946256.68689416CompleteNo missing required fields
57014Madalena6559<2500055712127725304.541211952.29214532CompleteNo missing required fields
30108Mafra91248>5000016810820372525915.025459821.21172104CompleteNo missing required fields
10403Maia144664>5000011881023292852424.008080131.96027270CompleteNo missing required fields
20604Mangualde18766<250005414838516683.080446180.71101426CompleteNo missing required fields
20805Manteigas2951<25000158916466374.008558304.06519414CompleteNo missing required fields
10509Marco de Canaveses4950125000-5000024228783258210.657090973.23179792CompleteNo missing required fields
20303Marinha Grande4177325000-50000460892881504332.639024500.62487795CompleteNo missing required fields
10404Matosinhos181046>50000Missing1557MissingNot calculatedNot calculatedExcludedstock_monographs missing; loaned_monographs missing
20107Mealhada20023<25000360782252744720.641388106.24203115CompleteNo missing required fields
20806Meda4594<2500018005553MissingNot calculatedNot calculatedExcludedloaned_monographs missing
10103Melgaço7557<250002093533016227.747790781.57630762CompleteNo missing required fields
40409Mértola6066<2500029922606925730.937103132.02526569CompleteNo missing required fields
20205Mira12720<250002163222418648.616863911.03550296CompleteNo missing required fields
20408Miranda do Corvo12269<2500028887379MissingNot calculatedNot calculatedExcludedloaned_monographs missing
10806Miranda do Douro6220<2500041736262625114.977477480.62775541CompleteNo missing required fields
10807Mirandela21344<250006875727419592.849164450.39850488CompleteNo missing required fields
10808Mogadouro8169<2500025954Missing1620Not calculatedNot calculatedExcludedacquired_monographs missing
10707Moimenta da Beira9776<25000195857724952.527444473.94179219CompleteNo missing required fields
30304Moita70399>50000847361117980611.572413141.31821186CompleteNo missing required fields
10104Monção18004<2500016293193300018.412815321.18455779CompleteNo missing required fields
10510Mondim de Basto6394<250002994167013534.518887142.23773421CompleteNo missing required fields
40210Monforte3017<250001932020514947.732919251.06107660CompleteNo missing required fields
10809Montalegre9100<250002274397410724.713538234.28263642CompleteNo missing required fields
40306Montemor-o-Novo15912<250006575310449168.304182514.71482890CompleteNo missing required fields
20206Montemor-o-Velho2513125000-500002912361413154.515331522.10829928CompleteNo missing required fields
30305Montijo60612>500009516019239234.122530470.20176545CompleteNo missing required fields
20605Mortágua9104<25000256563527863.063610851.37199875CompleteNo missing required fields
40410Moura13331<250007897839548136.094102160.50013928CompleteNo missing required fields
10810Murça5229<25000Missing35MissingNot calculatedNot calculatedExcludedstock_monographs missing; loaned_monographs missing
20108Murtosa11360<250008403Missing788Not calculatedNot calculatedExcludedacquired_monographs missing
30109Nazaré15856<250003989716620525.143243850.41607138CompleteNo missing required fields
20606Nelas13508<2500046862372587412.534676280.79382015CompleteNo missing required fields
40212Nisa5633<250003446125430158.749020630.73706509CompleteNo missing required fields
30110Óbidos13720<2500023762108MissingNot calculatedNot calculatedExcludedloaned_monographs missing
40103Odemira3386625000-5000036733526625817.036452241.43195492CompleteNo missing required fields
30208Odivelas156278>500007140721991641622.989342783.07953002CompleteNo missing required fields
30205Oeiras177866>50000129802804110810483.283770676.19481980CompleteNo missing required fields
50110Olhão4545225000-5000046925844905419.294619071.79861481CompleteNo missing required fields
10603Oliveira de Azeméis67471>50000494188871592832.231170831.79489255CompleteNo missing required fields
20607Oliveira de Frades9840<2500017796763732.095976620.42706226CompleteNo missing required fields
20109Oliveira do Bairro2577925000-5000083960813917510.927822770.96831825CompleteNo missing required fields
20409Oliveira do Hospital19610<250003739735514553.890686420.94927401CompleteNo missing required fields
30411Ourém4698825000-50000368393230831122.560330088.76788186CompleteNo missing required fields
40411Ourique4785<2500019493414245012.568614372.12383933CompleteNo missing required fields
20110Ovar57680>50000741797511794424.190134671.01241591CompleteNo missing required fields
10511Paços de Ferreira56071>5000064885185826104.022501352.86352778CompleteNo missing required fields
30306Palmela74462>500007192521061166016.211331252.92805005CompleteNo missing required fields
20410Pampilhosa da Serra4182<2500095321540.041963910.15736467CompleteNo missing required fields
10512Paredes86560>5000015196887735.086864960.57909976CompleteNo missing required fields
10105Paredes de Coura8688<2500021267917263.413739600.42789298CompleteNo missing required fields
20411Pedrógão Grande3718<25000345692527562.186930490.72897683CompleteNo missing required fields
20207Penacova12951<2500022819153537123.537403040.67049389CompleteNo missing required fields
10513Penafiel70421>50000845897972616830.935464420.94220289CompleteNo missing required fields
20608Penalva do Castelo7414<2500025246424480319.024796011.67947398CompleteNo missing required fields
20903Penamacor4821<2500019978705672.838121930.35038542CompleteNo missing required fields
20412Penela5714<2500014627333300620.551035762.27661175CompleteNo missing required fields
30111Peniche2779225000-50000153371797210013.6923779111.71676338CompleteNo missing required fields
10709Peso da Régua14275<2500017322537177710.258630643.10010391CompleteNo missing required fields
20807Pinhel7817<25000145295676794.673411803.90253975CompleteNo missing required fields
20304Pombal52573>500007133814591554221.786425192.04519331CompleteNo missing required fields
10106Ponte da Barca11210<250001952629010125.182833151.48519922CompleteNo missing required fields
10107Ponte de Lima4106625000-500001550931763128208.266008141.13673731CompleteNo missing required fields
40213Ponte de Sor15123<25000494683405641.140130990.68731301CompleteNo missing required fields
40214Portalegre21754<250004930436235727.244848290.73422035CompleteNo missing required fields
40308Portel5734<250002174814316447.559315800.65753173CompleteNo missing required fields
50111Portimão64466>500005965018921580826.501257333.17183571CompleteNo missing required fields
10405Porto252687>5000081077991688185310.095599421.13076436CompleteNo missing required fields
20305Porto de Mós24310<250004591413682095745.644030142.97948338CompleteNo missing required fields
10303Póvoa de Lanhoso22931<25000209033493MissingNot calculatedNot calculatedExcludedloaned_monographs missing
10406Póvoa de Varzim68459>50000175939235782064.664116541.33966886CompleteNo missing required fields
57009Praia da Vitória19862<2500032575246719515.989255567.57329240CompleteNo missing required fields
20503Proença-a-Nova7102<250004076426829857.322637620.65744284CompleteNo missing required fields
40309Redondo6290<250006220452311271.811780590.84078194CompleteNo missing required fields
40310Reguengos de Monsaraz9840<250002459410414085.724973570.42286737CompleteNo missing required fields
58008Ribeira Brava13322<25000172093276043.509791391.90016852CompleteNo missing required fields
10515Ribeira de Pena5840<25000178160MissingNot calculatedNot calculatedExcludedloaned_monographs missing
30509Rio Maior22678<2500031072316899128.936019571.01699279CompleteNo missing required fields
30510Salvaterra de Magos23827<250003123676728819.223332052.45550006CompleteNo missing required fields
20609Santa Comba Dão11022<25000188211486083.230434090.78635567CompleteNo missing required fields
58009Santa Cruz4481625000-500001800025011036.127777781.38888889CompleteNo missing required fields
10602Santa Maria da Feira140568>50000172898431215516189.741350392.49395597CompleteNo missing required fields
30511Santarém61664>50000142033146565284.596114991.03145044CompleteNo missing required fields
40104Santiago do Cacém2829425000-5000094092122893379.923266591.30510564CompleteNo missing required fields
10304Santo Tirso67713>5000093876274952515.593548942.92833099CompleteNo missing required fields
50112São Brás de Alportel11730<250007271154921800924.767916827.55319003CompleteNo missing required fields
10604São João da Madeira24247<2500047699723728115.264470951.51575505CompleteNo missing required fields
10712São João da Pesqueira6743<25000671717616052.389424010.11314407CompleteNo missing required fields
20610São Pedro do Sul15296<2500018408313309316.802477181.70034767CompleteNo missing required fields
57015São Roque do Pico3461<250006683753044.548855301.12225049CompleteNo missing required fields
58011São Vicente5123<2500012446155994.812791260.12052065CompleteNo missing required fields
30407Sardoal3638<250001754561012737.255628383.47677401CompleteNo missing required fields
20611Sátão11265<250003336406301.888262800.00000000CompleteNo missing required fields
20703Seia21410<2500027530890326511.859789323.23283691CompleteNo missing required fields
30307Seixal176883>5000013891011492474417.812972430.82715427CompleteNo missing required fields
10713Sernancelhe5818<25000200805512576.259960160.27390438CompleteNo missing required fields
40412Serpa13673<2500027578526313211.356878671.90731743CompleteNo missing required fields
20504Sertã14983<2500026465819972336.739089363.09465332CompleteNo missing required fields
30308Sesimbra56576>500006726713861225418.216956312.06044569CompleteNo missing required fields
30309Setúbal124339>500009444524951311213.883212452.64174917CompleteNo missing required fields
20111Sever do Vouga11023<2500027432160275510.043015460.58326043CompleteNo missing required fields
50113Silves4030925000-5000049385228754615.279943300.46167865CompleteNo missing required fields
40105Sines14796<250002733745623838.717123311.66806892CompleteNo missing required fields
30206Sintra400947>500001990821649119836.019127800.82830191CompleteNo missing required fields
30112Sobral de Monte Agraço12214<2500023369670797934.143523472.86704609CompleteNo missing required fields
20208Soure17302<2500023061327914039.634014141.41797841CompleteNo missing required fields
40311Sousel4403<25000153932244943.209250961.45520691CompleteNo missing required fields
20413Tábua11784<250002453945523939.751823631.85419129CompleteNo missing required fields
50114Tavira2828025000-5000062148138860439.723563112.23337839CompleteNo missing required fields
30408Tomar3703925000-5000080803126666838.270732521.56677351CompleteNo missing required fields
20612Tondela2595725000-500005052911813932.756832710.23352926CompleteNo missing required fields
10716Torre de Moncorvo6638<25000233716818593.675495272.91386761CompleteNo missing required fields
30409Torres Novas3498625000-50000735434651144615.563683830.63228315CompleteNo missing required fields
30113Torres Vedras89526>500007077914771212417.129374532.08677715CompleteNo missing required fields
20809Trancoso8402<25000167383623131.869996422.16274346CompleteNo missing required fields
10308Trofa4029425000-500001582916216894.3527702310.24069745CompleteNo missing required fields
20112Vagos2516725000-50000275942450554620.098572158.87874176CompleteNo missing required fields
10605Vale de Cambra21239<2500043201957537812.448785912.21522650CompleteNo missing required fields
10108Valença14297<2500052408318588411.227293540.60677759CompleteNo missing required fields
10407Valongo101464>500007551023302320630.732353333.08568402CompleteNo missing required fields
10811Valpaços14532<250001441510212428.616024970.70759625CompleteNo missing required fields
40312Vendas Novas11591<25000Missing1051497Not calculatedNot calculatedExcludedstock_monographs missing
40313Viana do Alentejo5592<250003489331518085.181555040.90275987CompleteNo missing required fields
10109Viana do Castelo86975>5000010316513622271122.014249021.32021519CompleteNo missing required fields
40413Vidigueira5261<25000152442179406.166360541.42351089CompleteNo missing required fields
10305Vieira do Minho12067<250001959929511005.612531251.50517884CompleteNo missing required fields
20505Vila de Rei3455<25000179251913812.125523011.06555091CompleteNo missing required fields
10408Vila do Conde85871>50000153260Missing18876Not calculatedNot calculatedExcludedacquired_monographs missing
10717Vila Flor6022<250002718521926689.814235790.80559132CompleteNo missing required fields
30207Vila Franca de Xira140711>5000016575355684435526.759696663.35921522CompleteNo missing required fields
10110Vila Nova de Cerveira9425<25000387386351055327.241984611.63921731CompleteNo missing required fields
10306Vila Nova de Famalicão136704>5000017512812012099911.990658260.68578411CompleteNo missing required fields
10409Vila Nova de Gaia312984>5000021020213165166877.938554346.26302319CompleteNo missing required fields
20414Vila Nova de Poiares7261<2500018909655983.162515200.34375165CompleteNo missing required fields
10812Vila Pouca de Aguiar11819<25000Missing0MissingNot calculatedNot calculatedExcludedstock_monographs missing; loaned_monographs missing
10719Vila Real50043>500001507394032113647.538858562.67482204CompleteNo missing required fields
50116Vila Real de Santo António19546<2500072981436041175.641194285.97415766CompleteNo missing required fields
20904Vila Velha de Ródão3577<250002806346110583.770088731.64273242CompleteNo missing required fields
10206Vila Verde4870125000-5000028891864323011.179952232.99055069CompleteNo missing required fields
10813Vimioso4174<2500010727100200018.644541810.93222709CompleteNo missing required fields
20614Viseu103502>5000010279130231701216.550087072.94091895CompleteNo missing required fields
10307Vizela24688<2500015880281440027.707808561.76952141CompleteNo missing required fields

2024 RNBP; copies and reported home-loaned monographs. Ratios per 100 year-end monographs. Missing values retained; no imputation. Source population is only a size proxy. This is not a ranked adequacy table.

234 complete municipalities; 23 excluded for missing data. Holdings at 31 December 2024. Additions include purchases, gifts and exchanges. Reference medians are not adequacy standards. Source: DGLAB, RNBP 2024 · CC BY 4.0 · Derived calculations: Alisson Bento

Download chart (SVG) ↓ · Download chart (PNG) ↓

Data & downloads

Scroll horizontally to see all columns.

All 257 municipal records and complete-case status
Source codeMunicipalitySource populationPopulation bandMonographs held at year endMonographs acquired during yearHome-loaned monographsLoans per 100 heldAcquisitions per 100 heldAnalysis statusMissing-field reason
30401Abrantes3377025000-50000114282810104379.132671810.70877304CompleteNo missing required fields
20101Águeda4772725000-500009236821762168723.478910452.35579421CompleteNo missing required fields
20601Aguiar da Beira5326<2500016787176MissingNot calculatedNot calculatedExcludedloaned_monographs missing
40301Alandroal4973<25000181793910405.720886740.21453325CompleteNo missing required fields
20102Albergaria-a-Velha2617125000-500007919610541435018.119602001.33087530CompleteNo missing required fields
50101Albufeira4880725000-5000063870243033005.166744953.80460310CompleteNo missing required fields
40101Alcácer do Sal11036<2500035265717MissingNot calculatedNot calculatedExcludedloaned_monographs missing
30402Alcanena12876<2500042068307681716.204716170.72977085CompleteNo missing required fields
30101Alcobaça57973>5000018500943579231.308108115.09729730CompleteNo missing required fields
30301Alcochete20462<2500067935131043926.465003311.92831383CompleteNo missing required fields
30102Alenquer4947425000-5000085003156436804.329258971.83993506CompleteNo missing required fields
10801Alfândega da Fé4178<2500014883423132.103070620.28220117CompleteNo missing required fields
10701Alijó10296<25000Missing2693312Not calculatedNot calculatedExcludedstock_monographs missing
40401Aljustrel8923<2500037619903590.954305010.23924081CompleteNo missing required fields
30302Almada183643>5000010155247005102550.245194584.62817079CompleteNo missing required fields
20801Almeida5634<25000205134013501.706235071.95485789CompleteNo missing required fields
30501Almeirim23087<2500040058541608815.197962951.35054171CompleteNo missing required fields
40402Almodôvar6652<2500032456331768423.675129411.01984225CompleteNo missing required fields
30502Alpiarça7493<2500022359873247511.069368043.90446800CompleteNo missing required fields
40201Alter do Chão3222<2500017170308625.020384390.17472335CompleteNo missing required fields
20401Alvaiázere6479<25000285408914365.031534690.31184303CompleteNo missing required fields
40403Alvito2303<250003443316926117.582842040.49080824CompleteNo missing required fields
30201Amadora181607>5000011321412732792124.662144261.12441924CompleteNo missing required fields
10501Amarante52169>50000360741128908.011310080.03049288CompleteNo missing required fields
10201Amares19782<2500027881317MissingNot calculatedNot calculatedExcludedloaned_monographs missing
20103Anadia2851225000-50000819145311298315.849549530.64824084CompleteNo missing required fields
20402Ansião11930<250003277613127248.310959240.39968269CompleteNo missing required fields
10101Arcos de Valdevez20819<2500048696102123924.912107772.09668145CompleteNo missing required fields
20403Arganil11447<2500054723727755313.802240371.32850904CompleteNo missing required fields
10601Arouca20826<25000359106341093930.462266781.76552492CompleteNo missing required fields
40302Arraiolos6870<2500020555228294914.346874241.10921917CompleteNo missing required fields
30103Arruda dos Vinhos15752<250002772869721477.743075592.51370456CompleteNo missing required fields
20104Aveiro88154>500009951123073133931.493000772.31833667CompleteNo missing required fields
40203Avis3759<25000182408285342.927631584.53947368CompleteNo missing required fields
30503Azambuja23448<250005140927881056320.546985945.42317493CompleteNo missing required fields
10502Baião17088<250002314424616006.913238851.06291047CompleteNo missing required fields
10202Barcelos116959>500005018118801002719.981666373.74643789CompleteNo missing required fields
30303Barreiro81131>5000084916111569038.129210041.31306232CompleteNo missing required fields
20301Batalha16894<2500050385187777915.439118790.37114221CompleteNo missing required fields
40405Beja3395425000-5000017082615872980917.449919800.92901549CompleteNo missing required fields
21001Belmonte6265<250008950459901.005586595.12849162CompleteNo missing required fields
30504Benavente3313125000-5000046801768677114.467639581.64099058CompleteNo missing required fields
30104Bombarral14272<250008800000.000000000.00000000CompleteNo missing required fields
40303Borba6378<25000164541858735.305700741.12434666CompleteNo missing required fields
10802Boticas4832<2500042000100021005.000000002.38095238CompleteNo missing required fields
10203Braga203519>5000046389084776836214.736683271.82737287CompleteNo missing required fields
10803Bragança3558125000-5000056069744911216.251404521.32693645CompleteNo missing required fields
10503Cabeceiras de Basto15538<25000122155708466.925910774.66639378CompleteNo missing required fields
30105Cadaval14711<250004986952149739.972126971.04473721CompleteNo missing required fields
30106Caldas da Rainha55206>50000874198591516817.350919140.98262391CompleteNo missing required fields
58002Câmara de Lobos3324325000-5000074687506413571.816915936.78029644CompleteNo missing required fields
10102Caminha16604<2500052186Missing2723Not calculatedNot calculatedExcludedacquired_monographs missing
40204Campo Maior7877<250001586166920.580039090.41611500CompleteNo missing required fields
20201Cantanhede3539925000-500006007613011192719.853185962.16559025CompleteNo missing required fields
10703Carrazeda de Ansiães5368<250001916211991090.568834156.25717566CompleteNo missing required fields
20602Carregal do Sal9261<2500041159891510812.410408422.16477563CompleteNo missing required fields
30505Cartaxo24711<2500015156234156910.352335711.54394299CompleteNo missing required fields
30202Cascais222339>5000017047939004594826.952293242.28767180CompleteNo missing required fields
20404Castanheira de Pêra2756<250001584521110896.872830551.33165036CompleteNo missing required fields
20901Castelo Branco53342>50000115888230949274.251518711.99244098CompleteNo missing required fields
10504Castelo de Paiva15395<250001929257612216.329048312.98569355CompleteNo missing required fields
40205Castelo de Vide3180<2500014939453952.644085950.30122498CompleteNo missing required fields
20603Castro Daire13790<250002510243419647.824077761.72894590CompleteNo missing required fields
50104Castro Marim6983<250002648852613485.089096951.98580489CompleteNo missing required fields
40406Castro Verde6946<2500053090652650012.243360331.22810322CompleteNo missing required fields
20802Celorico da Beira6635<2500013848360167212.073945702.59965338CompleteNo missing required fields
10505Celorico de Basto17637<250001410851741MissingNot calculatedNot calculatedExcludedloaned_monographs missing
30506Chamusca8549<2500018781215247213.162238431.14477397CompleteNo missing required fields
10804Chaves3732225000-5000044813153MissingNot calculatedNot calculatedExcludedloaned_monographs missing
10506Cinfães17293<2500023830397663127.826269411.66596727CompleteNo missing required fields
20202Coimbra146899>500007689831040110693013.905378921.35256566CompleteNo missing required fields
20203Condeixa-a-Nova17882<2500027736412848530.592010381.48543409CompleteNo missing required fields
30403Constância4020<2500020343300212710.455685001.47470875CompleteNo missing required fields
30507Coruche17298<2500020883257442021.165541351.23066609CompleteNo missing required fields
21002Covilhã4660625000-500006871914861282318.660050352.16242960CompleteNo missing required fields
40206Crato3249<25000164351424382.665044110.86400974CompleteNo missing required fields
40407Cuba4469<250001446561MissingNot calculatedNot calculatedExcludedloaned_monographs missing
40207Elvas20325<2500013521325021311.576031890.18489346CompleteNo missing required fields
30404Entroncamento22604<2500025284478442417.497231451.89052365CompleteNo missing required fields
10401Espinho3273625000-500004937611591192824.157485422.34729423CompleteNo missing required fields
10204Esposende3772225000-50000619528181272720.543323861.32037707CompleteNo missing required fields
20105Estarreja2747425000-500007444633841132315.209682194.54557666CompleteNo missing required fields
40304Estremoz12482<250004882552227985.730670761.06912442CompleteNo missing required fields
10301Fafe4842025000-5000051061456830916.272693450.89304949CompleteNo missing required fields
50105Faro70347>50000785423221913124.357668510.40997173CompleteNo missing required fields
10507Felgueiras55223>5000073445547860211.712165570.74477500CompleteNo missing required fields
40408Ferreira do Alentejo7902<250002497217312054.825404450.69277591CompleteNo missing required fields
30405Ferreira do Zêzere8115<2500019481562541327.786047942.88486217CompleteNo missing required fields
20204Figueira da Foz61397>50000194495172356812.920897710.88588396CompleteNo missing required fields
20405Figueiró dos Vinhos5325<250003754118118144.832050290.48213953CompleteNo missing required fields
20701Fornos de Algodres4400<25000192135637804.059751212.93030760CompleteNo missing required fields
10704Freixo de Espada à Cinta3058<2500012983735MissingNot calculatedNot calculatedExcludedloaned_monographs missing
40208Fronteira2974<2500012091411471.215780330.33909519CompleteNo missing required fields
21003Fundão2728525000-500005293713981414726.724219362.64087500CompleteNo missing required fields
30406Gavião3263<2500013162105612209.269108048.02309679CompleteNo missing required fields
20406Góis3822<25000147542091971.335231121.41656500CompleteNo missing required fields
30508Golegã5488<25000300012568752.916569450.85330489CompleteNo missing required fields
10402Gondomar169388>500005310517541324924.948686563.30289050CompleteNo missing required fields
20702Gouveia12301<25000311091373500216.078948214.41351377CompleteNo missing required fields
40102Grândola14226<250004129012851268030.709614923.11213369CompleteNo missing required fields
20804Guarda4004625000-50000133462105046743.502120450.78674080CompleteNo missing required fields
10302Guimarães156513>5000034181588653899811.409095562.59350818CompleteNo missing required fields
20902Idanha-a-Nova8541<250002605015611094.257197700.59884837CompleteNo missing required fields
20106Ílhavo4321025000-500007348925912166629.481963293.52569772CompleteNo missing required fields
50106Lagoa2553525000-500008085627261753521.686702293.37142574CompleteNo missing required fields
50107Lagos3524125000-50000Missing189017077Not calculatedNot calculatedExcludedstock_monographs missing
20302Leiria136006>5000011359428953291228.973361272.54855010CompleteNo missing required fields
30203Lisboa575739>5000054801023345MissingNot calculatedNot calculatedExcludedloaned_monographs missing
50108Loulé75764>5000010687038281965518.391503703.58192196CompleteNo missing required fields
30204Loures209877>5000011047836431848816.734553493.29748909CompleteNo missing required fields
30107Lourinhã2897825000-500003624031091253434.586092728.57891832CompleteNo missing required fields
20407Lousã17662<25000556181671462326.291847960.30026250CompleteNo missing required fields
10508Lousada4865225000-500003769261622175.881884751.63429906CompleteNo missing required fields
20501Mação6399<250002998210007802.601560943.33533453CompleteNo missing required fields
10805Macedo de Cavaleiros14253<250008826314136315.443009293.55767052CompleteNo missing required fields
58004Machico19679<2500012689719312539.8746946256.68689416CompleteNo missing required fields
57014Madalena6559<2500055712127725304.541211952.29214532CompleteNo missing required fields
30108Mafra91248>5000016810820372525915.025459821.21172104CompleteNo missing required fields
10403Maia144664>5000011881023292852424.008080131.96027270CompleteNo missing required fields
20604Mangualde18766<250005414838516683.080446180.71101426CompleteNo missing required fields
20805Manteigas2951<25000158916466374.008558304.06519414CompleteNo missing required fields
10509Marco de Canaveses4950125000-5000024228783258210.657090973.23179792CompleteNo missing required fields
20303Marinha Grande4177325000-50000460892881504332.639024500.62487795CompleteNo missing required fields
10404Matosinhos181046>50000Missing1557MissingNot calculatedNot calculatedExcludedstock_monographs missing; loaned_monographs missing
20107Mealhada20023<25000360782252744720.641388106.24203115CompleteNo missing required fields
20806Meda4594<2500018005553MissingNot calculatedNot calculatedExcludedloaned_monographs missing
10103Melgaço7557<250002093533016227.747790781.57630762CompleteNo missing required fields
40409Mértola6066<2500029922606925730.937103132.02526569CompleteNo missing required fields
20205Mira12720<250002163222418648.616863911.03550296CompleteNo missing required fields
20408Miranda do Corvo12269<2500028887379MissingNot calculatedNot calculatedExcludedloaned_monographs missing
10806Miranda do Douro6220<2500041736262625114.977477480.62775541CompleteNo missing required fields
10807Mirandela21344<250006875727419592.849164450.39850488CompleteNo missing required fields
10808Mogadouro8169<2500025954Missing1620Not calculatedNot calculatedExcludedacquired_monographs missing
10707Moimenta da Beira9776<25000195857724952.527444473.94179219CompleteNo missing required fields
30304Moita70399>50000847361117980611.572413141.31821186CompleteNo missing required fields
10104Monção18004<2500016293193300018.412815321.18455779CompleteNo missing required fields
10510Mondim de Basto6394<250002994167013534.518887142.23773421CompleteNo missing required fields
40210Monforte3017<250001932020514947.732919251.06107660CompleteNo missing required fields
10809Montalegre9100<250002274397410724.713538234.28263642CompleteNo missing required fields
40306Montemor-o-Novo15912<250006575310449168.304182514.71482890CompleteNo missing required fields
20206Montemor-o-Velho2513125000-500002912361413154.515331522.10829928CompleteNo missing required fields
30305Montijo60612>500009516019239234.122530470.20176545CompleteNo missing required fields
20605Mortágua9104<25000256563527863.063610851.37199875CompleteNo missing required fields
40410Moura13331<250007897839548136.094102160.50013928CompleteNo missing required fields
10810Murça5229<25000Missing35MissingNot calculatedNot calculatedExcludedstock_monographs missing; loaned_monographs missing
20108Murtosa11360<250008403Missing788Not calculatedNot calculatedExcludedacquired_monographs missing
30109Nazaré15856<250003989716620525.143243850.41607138CompleteNo missing required fields
20606Nelas13508<2500046862372587412.534676280.79382015CompleteNo missing required fields
40212Nisa5633<250003446125430158.749020630.73706509CompleteNo missing required fields
30110Óbidos13720<2500023762108MissingNot calculatedNot calculatedExcludedloaned_monographs missing
40103Odemira3386625000-5000036733526625817.036452241.43195492CompleteNo missing required fields
30208Odivelas156278>500007140721991641622.989342783.07953002CompleteNo missing required fields
30205Oeiras177866>50000129802804110810483.283770676.19481980CompleteNo missing required fields
50110Olhão4545225000-5000046925844905419.294619071.79861481CompleteNo missing required fields
10603Oliveira de Azeméis67471>50000494188871592832.231170831.79489255CompleteNo missing required fields
20607Oliveira de Frades9840<2500017796763732.095976620.42706226CompleteNo missing required fields
20109Oliveira do Bairro2577925000-5000083960813917510.927822770.96831825CompleteNo missing required fields
20409Oliveira do Hospital19610<250003739735514553.890686420.94927401CompleteNo missing required fields
30411Ourém4698825000-50000368393230831122.560330088.76788186CompleteNo missing required fields
40411Ourique4785<2500019493414245012.568614372.12383933CompleteNo missing required fields
20110Ovar57680>50000741797511794424.190134671.01241591CompleteNo missing required fields
10511Paços de Ferreira56071>5000064885185826104.022501352.86352778CompleteNo missing required fields
30306Palmela74462>500007192521061166016.211331252.92805005CompleteNo missing required fields
20410Pampilhosa da Serra4182<2500095321540.041963910.15736467CompleteNo missing required fields
10512Paredes86560>5000015196887735.086864960.57909976CompleteNo missing required fields
10105Paredes de Coura8688<2500021267917263.413739600.42789298CompleteNo missing required fields
20411Pedrógão Grande3718<25000345692527562.186930490.72897683CompleteNo missing required fields
20207Penacova12951<2500022819153537123.537403040.67049389CompleteNo missing required fields
10513Penafiel70421>50000845897972616830.935464420.94220289CompleteNo missing required fields
20608Penalva do Castelo7414<2500025246424480319.024796011.67947398CompleteNo missing required fields
20903Penamacor4821<2500019978705672.838121930.35038542CompleteNo missing required fields
20412Penela5714<2500014627333300620.551035762.27661175CompleteNo missing required fields
30111Peniche2779225000-50000153371797210013.6923779111.71676338CompleteNo missing required fields
10709Peso da Régua14275<2500017322537177710.258630643.10010391CompleteNo missing required fields
20807Pinhel7817<25000145295676794.673411803.90253975CompleteNo missing required fields
20304Pombal52573>500007133814591554221.786425192.04519331CompleteNo missing required fields
10106Ponte da Barca11210<250001952629010125.182833151.48519922CompleteNo missing required fields
10107Ponte de Lima4106625000-500001550931763128208.266008141.13673731CompleteNo missing required fields
40213Ponte de Sor15123<25000494683405641.140130990.68731301CompleteNo missing required fields
40214Portalegre21754<250004930436235727.244848290.73422035CompleteNo missing required fields
40308Portel5734<250002174814316447.559315800.65753173CompleteNo missing required fields
50111Portimão64466>500005965018921580826.501257333.17183571CompleteNo missing required fields
10405Porto252687>5000081077991688185310.095599421.13076436CompleteNo missing required fields
20305Porto de Mós24310<250004591413682095745.644030142.97948338CompleteNo missing required fields
10303Póvoa de Lanhoso22931<25000209033493MissingNot calculatedNot calculatedExcludedloaned_monographs missing
10406Póvoa de Varzim68459>50000175939235782064.664116541.33966886CompleteNo missing required fields
57009Praia da Vitória19862<2500032575246719515.989255567.57329240CompleteNo missing required fields
20503Proença-a-Nova7102<250004076426829857.322637620.65744284CompleteNo missing required fields
40309Redondo6290<250006220452311271.811780590.84078194CompleteNo missing required fields
40310Reguengos de Monsaraz9840<250002459410414085.724973570.42286737CompleteNo missing required fields
58008Ribeira Brava13322<25000172093276043.509791391.90016852CompleteNo missing required fields
10515Ribeira de Pena5840<25000178160MissingNot calculatedNot calculatedExcludedloaned_monographs missing
30509Rio Maior22678<2500031072316899128.936019571.01699279CompleteNo missing required fields
30510Salvaterra de Magos23827<250003123676728819.223332052.45550006CompleteNo missing required fields
20609Santa Comba Dão11022<25000188211486083.230434090.78635567CompleteNo missing required fields
58009Santa Cruz4481625000-500001800025011036.127777781.38888889CompleteNo missing required fields
10602Santa Maria da Feira140568>50000172898431215516189.741350392.49395597CompleteNo missing required fields
30511Santarém61664>50000142033146565284.596114991.03145044CompleteNo missing required fields
40104Santiago do Cacém2829425000-5000094092122893379.923266591.30510564CompleteNo missing required fields
10304Santo Tirso67713>5000093876274952515.593548942.92833099CompleteNo missing required fields
50112São Brás de Alportel11730<250007271154921800924.767916827.55319003CompleteNo missing required fields
10604São João da Madeira24247<2500047699723728115.264470951.51575505CompleteNo missing required fields
10712São João da Pesqueira6743<25000671717616052.389424010.11314407CompleteNo missing required fields
20610São Pedro do Sul15296<2500018408313309316.802477181.70034767CompleteNo missing required fields
57015São Roque do Pico3461<250006683753044.548855301.12225049CompleteNo missing required fields
58011São Vicente5123<2500012446155994.812791260.12052065CompleteNo missing required fields
30407Sardoal3638<250001754561012737.255628383.47677401CompleteNo missing required fields
20611Sátão11265<250003336406301.888262800.00000000CompleteNo missing required fields
20703Seia21410<2500027530890326511.859789323.23283691CompleteNo missing required fields
30307Seixal176883>5000013891011492474417.812972430.82715427CompleteNo missing required fields
10713Sernancelhe5818<25000200805512576.259960160.27390438CompleteNo missing required fields
40412Serpa13673<2500027578526313211.356878671.90731743CompleteNo missing required fields
20504Sertã14983<2500026465819972336.739089363.09465332CompleteNo missing required fields
30308Sesimbra56576>500006726713861225418.216956312.06044569CompleteNo missing required fields
30309Setúbal124339>500009444524951311213.883212452.64174917CompleteNo missing required fields
20111Sever do Vouga11023<2500027432160275510.043015460.58326043CompleteNo missing required fields
50113Silves4030925000-5000049385228754615.279943300.46167865CompleteNo missing required fields
40105Sines14796<250002733745623838.717123311.66806892CompleteNo missing required fields
30206Sintra400947>500001990821649119836.019127800.82830191CompleteNo missing required fields
30112Sobral de Monte Agraço12214<2500023369670797934.143523472.86704609CompleteNo missing required fields
20208Soure17302<2500023061327914039.634014141.41797841CompleteNo missing required fields
40311Sousel4403<25000153932244943.209250961.45520691CompleteNo missing required fields
20413Tábua11784<250002453945523939.751823631.85419129CompleteNo missing required fields
50114Tavira2828025000-5000062148138860439.723563112.23337839CompleteNo missing required fields
30408Tomar3703925000-5000080803126666838.270732521.56677351CompleteNo missing required fields
20612Tondela2595725000-500005052911813932.756832710.23352926CompleteNo missing required fields
10716Torre de Moncorvo6638<25000233716818593.675495272.91386761CompleteNo missing required fields
30409Torres Novas3498625000-50000735434651144615.563683830.63228315CompleteNo missing required fields
30113Torres Vedras89526>500007077914771212417.129374532.08677715CompleteNo missing required fields
20809Trancoso8402<25000167383623131.869996422.16274346CompleteNo missing required fields
10308Trofa4029425000-500001582916216894.3527702310.24069745CompleteNo missing required fields
20112Vagos2516725000-50000275942450554620.098572158.87874176CompleteNo missing required fields
10605Vale de Cambra21239<2500043201957537812.448785912.21522650CompleteNo missing required fields
10108Valença14297<2500052408318588411.227293540.60677759CompleteNo missing required fields
10407Valongo101464>500007551023302320630.732353333.08568402CompleteNo missing required fields
10811Valpaços14532<250001441510212428.616024970.70759625CompleteNo missing required fields
40312Vendas Novas11591<25000Missing1051497Not calculatedNot calculatedExcludedstock_monographs missing
40313Viana do Alentejo5592<250003489331518085.181555040.90275987CompleteNo missing required fields
10109Viana do Castelo86975>5000010316513622271122.014249021.32021519CompleteNo missing required fields
40413Vidigueira5261<25000152442179406.166360541.42351089CompleteNo missing required fields
10305Vieira do Minho12067<250001959929511005.612531251.50517884CompleteNo missing required fields
20505Vila de Rei3455<25000179251913812.125523011.06555091CompleteNo missing required fields
10408Vila do Conde85871>50000153260Missing18876Not calculatedNot calculatedExcludedacquired_monographs missing
10717Vila Flor6022<250002718521926689.814235790.80559132CompleteNo missing required fields
30207Vila Franca de Xira140711>5000016575355684435526.759696663.35921522CompleteNo missing required fields
10110Vila Nova de Cerveira9425<25000387386351055327.241984611.63921731CompleteNo missing required fields
10306Vila Nova de Famalicão136704>5000017512812012099911.990658260.68578411CompleteNo missing required fields
10409Vila Nova de Gaia312984>5000021020213165166877.938554346.26302319CompleteNo missing required fields
20414Vila Nova de Poiares7261<2500018909655983.162515200.34375165CompleteNo missing required fields
10812Vila Pouca de Aguiar11819<25000Missing0MissingNot calculatedNot calculatedExcludedstock_monographs missing; loaned_monographs missing
10719Vila Real50043>500001507394032113647.538858562.67482204CompleteNo missing required fields
50116Vila Real de Santo António19546<2500072981436041175.641194285.97415766CompleteNo missing required fields
20904Vila Velha de Ródão3577<250002806346110583.770088731.64273242CompleteNo missing required fields
10206Vila Verde4870125000-5000028891864323011.179952232.99055069CompleteNo missing required fields
10813Vimioso4174<2500010727100200018.644541810.93222709CompleteNo missing required fields
20614Viseu103502>5000010279130231701216.550087072.94091895CompleteNo missing required fields
10307Vizela24688<2500015880281440027.707808561.76952141CompleteNo missing required fields

2024 RNBP; copies and reported home-loaned monographs. Ratios per 100 year-end monographs. Missing values retained; no imputation. Source population is only a size proxy. This is not a ranked adequacy table.

Scroll horizontally to see all columns.

Population-band sensitivity
Population bandCompleteExcludedMedian loans per 100 heldMedian additions per 100 heldAbove/below median countStrict quartile count
<25000142187.085379531.39428188294
25000-5000041215.279943301.7986148191
>5000051317.129374532.0451933191

Separate medians within each band. Thresholds describe relative position, not validated service standards.

Evidence & method

How we calculated it

  1. Select the 257 municipal rows with observation year 2024 from the official cp1252 semicolon CSV. Match questionnaire fields 3.1.1 (stock), 4.1.1 (acquisitions) and 8.1.1 (home loans). Source codes remain strings. Municipalities aggregate their reporting service; no individual-building duplication is introduced.
  2. Require all three measures and positive stock. Retain observed zeros; leave blanks missing. 234 complete cases remain, 23 excluded. All selected field counts and sums reconcile with the official spreadsheet summary; selected source cells agree between CSV and XLSX.
  3. Calculate loans/stock and acquisitions/stock using 31 December 2024 holdings. Compare each ratio with its complete-case median using strict inequalities. Repeat within source-population bands below 25,000, 25,000–50,000 inclusive and above 50,000. Quantile sensitivity uses inclusive interpolation for 75th-percentile loans and 25th-percentile acquisitions.
  4. This is secondary descriptive analysis of a bounded administrative network, without imputation, random-sample inference or causal modeling. An independent raw-CSV review reproduced the complete-case count, medians, threshold results and population-band overlap. The public script recalculates the same rules from the selected source inputs.

What the data cannot tell us

  • Coverage is the 257 surveyed RNBP municipalities; paired results cover 234 complete records. Missingness is not assumed random. Overall survey response 100% does not mean complete item response. Lisboa has a missing monograph-loan field and is excluded from the paired calculations.
  • Year-end stock is not average stock. Additions include purchases, offers, donations and exchanges; the ratio does not measure replacement, newly published books or net growth. Monograph home-loan counts are administrative transactions, not unique readers or titles. Renewal-counting conventions are not fully resolved by the supplied questionnaire.
  • Median and quartile thresholds are analytic reference points, not adequacy standards. Population bands are descriptive groupings, not adjustment for staffing, branch networks or demand. Some municipal services under renovation remain in the source survey.
  • The report inconsistently describes the source population in two passages. Supplied values are used only as size proxies. No independent population reconciliation, shortage diagnosis, funding effect, all-Portugal extrapolation or author-sales inference is claimed.

Original sources

  1. DGLAB — Estatística RNBP 2024, official CSV/XLSX dataset

    DGLAB dataset CSV/XLSX, updated 14 April 2026: source fields and municipal records. Original official data carry CC BY 4.0; source hashes are recorded in the public provenance download.

    Accessed October 30, 2026

  2. DGLAB — Relatório Estatístico RNBP 2024 and questionnaire

    DGLAB Relatório Estatístico RNBP 2024,p4: municipal network scope and item nonresponse;p5: purchases, offers, donations and exchanges;p79: closed/relocating services may remain when reporting activity;pp84–85: questionnaire dates and matched monograph fields. Existing national totals and geographic summaries are credited prior analysis.

    Accessed October 30, 2026

  3. dados.gov.pt — Dataset API metadata

    The report introduction identifies provisional resident estimates for 31 December 2024. A later methods passage refers inconsistently to Censos 2024. This study retains the supplied population values solely for size-band sensitivity, rather than silently resolving the discrepancy.

    Accessed October 30, 2026

  4. dados.gov.pt — Data reuse licenses

    dados.gov.pt licensing explanation confirms CC BY 4.0 reuse with source attribution, including adaptation. Source PDF/design is not republished in this package.

    Accessed October 30, 2026

Cite & reuse this study

Alisson Bento. Monograph lending and collection additions in Portugal’s RNBP municipalities, 2024. Original secondary analysis of DGLAB Estatística RNBP 2024; source CSV updated 14 April 2026, retrieved 30 October 2026. https://alissonbento.com/research/portugal-library-monograph-lending-and-additions-2024/

Direção-Geral do Livro, dos Arquivos e das Bibliotecas (DGLAB), Estatística RNBP 2024, CSV resource updated 14 April 2026, retrieved 30 October 2026. Source data: CC BY 4.0. Original secondary analysis and explanation: Alisson Bento. Changes: selected monograph fields, matched complete cases, stock-normalized ratios, population bands and threshold sensitivity. No endorsement by DGLAB is implied. Reuse adapted data under CC BY 4.0: https://creativecommons.org/licenses/by/4.0/. Retain source attribution, observation/access dates and indication of changes. This permission does not assert a license for source report design, logos or third-party graphics. The original reproduction script has its separate included permissive license.

Corrections or editorial questions

Pass it on.

Monograph lending and collection additions in Portugal’s RNBP municipalities, 2024 | Alisson Bentoalissonbento.com

WhatsAppFacebookXTelegramRedditThreadsEmailSMS