Last Updated May 7, 2026
Debt and fiscal space matter for sustainable development because development is not constrained only by ideas, institutions, or technical capability. It is also constrained by the room states have to spend, invest, borrow, and respond to crisis without undermining long-run stability. Debt shapes that room. When debt service rises, refinancing becomes expensive, or financial conditions tighten, fiscal space narrows and governments face harder choices between infrastructure, social protection, climate resilience, public wages, debt repayment, and macroeconomic credibility.
Sustainable development therefore depends not only on how much a state wants to do, but on whether it retains enough fiscal space to do it. Borrowing can expand developmental possibility by funding infrastructure, social investment, productive transformation, and crisis response. But debt can also become a constraint when repayment burdens rise faster than fiscal capacity, export earnings, or growth. Debt is therefore not simply a stock of liabilities. It is a structuring condition of state action across time.
Main Library
Publications
Article Map
Sustainable Development
Related Topic
Economic Systems

The deeper reason debt matters is that it mediates the relationship between present financing and future policy capacity. Borrowing can bring future resources into the present, but it also creates future claims on public revenue. Fiscal space is therefore not only a technical budget concept. In development terms, it is the usable capacity of the state to mobilize and allocate resources without triggering unsustainable financing, destabilizing macroeconomic conditions, or crowding out essential commitments.
Debt burdens are also never neutral. They reflect interest-rate conditions, exchange-rate exposure, creditor composition, development strategy, tax capacity, aid dependence, and the wider global financial architecture. Countries with weaker market access, more external-currency borrowing, narrower export bases, or higher exposure to commodity and climate shocks often face tighter constraints than others. Debt is therefore not only a domestic policy issue. It is also a condition structured by unequal access to finance and unequal room to absorb risk.
What Debt and Fiscal Space Mean in Development
Debt, in development terms, is more than public borrowing in the abstract. It includes the obligations states take on to finance spending, invest in infrastructure, smooth shocks, refinance past liabilities, and manage development needs over time. Fiscal space refers to the room governments have to pursue these goals without endangering sustainability, losing financing access, or compressing future developmental capacity.
This matters because sustainable development depends on whether borrowing expands productive and social capacity or narrows future policy room. Debt can support development when it finances infrastructure, social systems, productive upgrading, climate resilience, and institutional capacity. It becomes constraining when repayment burdens grow faster than the economy’s capacity to service them or when financing terms force governments into repeated retrenchment. Debt is therefore best understood as a temporal instrument: it transfers capacity across time, but not without cost or risk.
Fiscal space is also more than the difference between current spending and a formal deficit target. It is shaped by revenue capacity, spending commitments, borrowing terms, debt maturity, currency exposure, creditor expectations, external vulnerability, growth prospects, institutional credibility, and the political capacity to maintain essential investment. A government may appear to have room in one narrow fiscal measure while lacking usable space once refinancing risk, debt service, and social obligations are considered.
This is why fiscal space must be treated as a development condition rather than only a budget concept. It determines whether public commitments can be translated into infrastructure, services, adaptation, and social protection. If fiscal space contracts, development becomes less a matter of planning and more a matter of triage.
To ask what debt and fiscal space mean is therefore to ask how much developmental room a state actually possesses once debt service, financing conditions, creditor expectations, macroeconomic constraints, and vulnerability are taken seriously. Sustainable development depends on debt systems that preserve this room rather than quietly erode it.
Why Debt Matters for Sustainable Development
Debt matters because sustainable development requires front-loaded investment while many of its benefits are delayed. Infrastructure, climate adaptation, public-health systems, industrial upgrading, digital capacity, social protection, education, housing, and water systems all require states to spend now for future stability and capability. Borrowing can make that possible. But when debt becomes too costly, too volatile, or too rigid, it constrains precisely those forms of long-horizon investment.
This matters because development is not only a problem of scarce resources. It is also a problem of when resources can be deployed and under what financial conditions. A government facing heavy debt-service payments may cut infrastructure maintenance, delay adaptation, compress health and education spending, reduce public employment, defer capital projects, or postpone structural investment even where these are developmentally urgent.
Debt can therefore be developmental or anti-developmental depending on its structure and use. Borrowing for productive infrastructure, resilient public systems, and capability-building may expand future fiscal space if it raises growth, reduces vulnerability, or strengthens state capacity. Borrowing for consumption smoothing, repeated refinancing, crisis containment, or poorly governed projects may leave future governments with liabilities but little new capacity. The distinction is not always clean, but it is central.
Debt also shapes the credibility of the state. If debt is managed well, it can help governments act across time and sustain public investment. If it becomes unstable, policy becomes reactive. Governments may shift from planning development to managing markets, creditors, exchange rates, and short-term financing pressures. Development strategy becomes subordinated to debt management.
Sustainable development therefore depends not only on access to borrowing, but on debt structures compatible with long-run public investment and resilience. The question is not whether states borrow, but whether borrowing preserves or undermines their developmental capacity over time.
From Borrowing Capacity to Development Capacity
One of the most important distinctions in development finance is the difference between borrowing capacity and development capacity. A country may still be able to borrow in formal terms while having little effective room to use borrowing productively because interest costs are high, maturities are short, rollover risks are severe, currency exposure is large, or market access is fragile. Borrowing capacity alone does not guarantee developmental space.
This matters because debt can create the appearance of fiscal flexibility while quietly narrowing real policy choice. If new borrowing is largely used to refinance old obligations, stabilize short-term liquidity, cover interest, or defend macroeconomic credibility under pressure, then nominal access to finance may coexist with reduced ability to fund transformative investment. Development capacity depends on whether fiscal room is usable for productive, social, and resilient purposes rather than absorbed by debt-management imperatives.
A country’s borrowing capacity is often judged externally by market access, credit ratings, debt ratios, reserves, and macroeconomic policy credibility. Development capacity requires a broader question: can public finance still sustain the investments necessary for long-run capability? A state can remain technically solvent while becoming developmentally compressed. It can make payments while underinvesting in the very systems that would strengthen future solvency.
This distinction is especially important under climate and infrastructure pressure. Countries may need to borrow for adaptation, energy transition, resilient transport, water systems, food security, and public health. But if the terms of borrowing are too expensive or too short-term, borrowing itself can create vulnerability. The issue is not only whether a loan can be obtained, but whether the loan supports a development pathway that remains viable after repayment begins.
Sustainable development is therefore stronger when fiscal systems convert borrowing into long-run capability rather than repeated refinancing stress. Debt is developmental only when it enlarges future policy room more than it compresses it.
Debt Service and the Crowding Out of Development Investment
Debt service matters because it competes directly with development expenditure. When rising shares of revenue are committed to interest and principal, governments have less room to maintain infrastructure, support social protection, invest in resilience, pay public workers, expand health systems, or sustain capital investment. Debt service can therefore crowd out the very expenditures that make long-run stability and growth more likely.
This matters because crowding out is not an abstract macroeconomic effect. It changes whether schools are staffed, roads are maintained, clinics are supplied, climate adaptation is financed, water systems are repaired, and public institutions can respond to shock. Debt service becomes a development constraint when it turns public finance from a tool of transformation into an instrument of repayment discipline.
Crowding out can also become politically invisible because some deferred expenditures do not produce immediate crisis. Maintenance can be postponed. Adaptation can be delayed. Public-sector capacity can be weakened gradually. Prevention can be cut before anyone can count the disasters it would have avoided. These choices may help close a short-term fiscal gap while increasing long-term vulnerability.
Interest payments are especially important because they do not directly build new public capacity. They may be necessary to preserve credibility and access, but they also represent public resources unavailable for service delivery and investment. When interest consumes a growing share of revenue, the state’s ability to act developmentally narrows even if total spending remains large in headline terms.
Sustainable development therefore depends on whether debt service remains compatible with developmental spending. When repayment burdens become too large, development policy becomes reactive, compressed, and increasingly short-term. Debt sustainability should therefore be judged not only by solvency, but by whether public finance retains enough room to build resilience, inclusion, and productive capability.
Fiscal Space as a Political and Institutional Constraint
Fiscal space is not only a numerical margin in public finance. It is also a political and institutional constraint. Governments facing tight fiscal room must choose which sectors to protect, which groups bear adjustment, which investments are postponed, which subsidies are reduced, which wages are delayed, and what counts as affordable under pressure. These choices are shaped not only by arithmetic, but by institutions, public expectations, creditor relations, and political legitimacy.
This matters because sustainable development often requires maintaining investment in areas whose benefits are delayed or politically diffuse, such as resilience, maintenance, prevention, adaptation, public health, or structural upgrading. Under fiscal stress, these are often the first to be cut because their absence is less immediately visible than wage arrears, subsidy withdrawal, exchange-rate pressure, or financial instability. Fiscal space therefore shapes not only how much governments can spend, but which forms of development remain politically survivable.
Fiscal institutions matter because they determine how constraint is managed. Strong public-finance systems can prioritize investment, improve tax collection, reduce waste, protect social spending, disclose risks, and maintain credibility. Weak fiscal institutions may respond to constraint through arbitrary cuts, opaque borrowing, arrears, under-maintenance, or politically selective protection. The same debt ratio can therefore produce different development outcomes depending on institutional quality.
Fiscal space is also shaped by legitimacy. Governments may need to raise revenue or reform spending, but these measures require public trust. If people believe debt was accumulated unfairly, squandered, or imposed through unequal global conditions, adjustment becomes politically harder. If public services are already weak, austerity can further erode legitimacy. Debt management therefore cannot be separated from the political foundations of the state.
Development capacity depends on whether fiscal institutions can protect long-horizon priorities when short-horizon pressures intensify. A state may understand what it should invest in and still be unable to sustain those investments once fiscal space contracts.
External Debt, Currency Risk, and Financial Vulnerability
External debt matters because it exposes development finance to exchange-rate risk, external-interest-rate conditions, investor sentiment, reserve adequacy, and export performance. Debt denominated in foreign currency can become far more burdensome when domestic currencies depreciate or export earnings weaken. This makes development financing especially fragile in countries exposed to commodity volatility, climate shocks, capital-flow reversals, or tighter global financial conditions.
This matters because fiscal space can disappear quickly when external conditions shift. Even countries with manageable domestic fiscal systems may face sharp tightening if refinancing costs rise, concessional flows fall, import bills increase, or access to foreign exchange weakens. External debt links domestic development capacity to global financial conditions in ways states do not fully control.
Currency mismatch is especially important. Governments collect much of their revenue in domestic currency, but external debt service may require foreign currency. If the exchange rate depreciates, the domestic fiscal cost of debt service can rise abruptly. This can force spending cuts even when the underlying development need has not changed. Currency risk therefore turns external shocks into domestic budget constraints.
External debt also interacts with export structure. Countries with diversified exports and stable foreign-exchange earnings have more room to manage external obligations. Countries dependent on a few commodities, tourism, remittances, or climate-sensitive sectors may face more volatile debt-service capacity. A shock to export earnings can become a shock to fiscal space.
Sustainable development requires debt structures and financing strategies that reduce exposure to sudden external deterioration. Where external vulnerability is high, long-horizon development can be destabilized by events well beyond domestic policy control. Debt management is therefore also a resilience strategy.
Debt, Climate Risk, and the Cost of Resilience
Debt now interacts increasingly with climate risk. Countries facing high physical vulnerability often need more investment in adaptation, resilient infrastructure, disaster preparedness, water systems, food security, and social protection, yet many of those same countries also face tighter fiscal space and more expensive financing conditions. This creates a developmental paradox: the places that most need long-horizon resilience investment may have the least room to finance it.
This matters because delayed resilience investment increases future loss, repair costs, humanitarian needs, and fiscal pressure. Borrowing for resilience can be developmental if it reduces future disruption, protects infrastructure, and strengthens public capacity. But climate shocks can also worsen debt sustainability by damaging exports, tax bases, public assets, livelihoods, and macroeconomic stability. Debt and resilience must therefore be understood together rather than as separate agendas.
Climate vulnerability also affects the cost of capital. If investors view climate-exposed countries as riskier, borrowing costs can rise precisely where adaptation needs are greatest. That creates a vicious cycle: high vulnerability raises financing costs, high financing costs reduce adaptation investment, and underinvestment increases future vulnerability. Sustainable development finance must find ways to break this cycle before climate stress becomes debt distress.
Resilience investment also often produces benefits that are difficult to monetize directly. A flood defense, early-warning system, drought-resistant water network, or heat-resilient public-health system may prevent future losses rather than generate cash flows. Conventional debt finance may therefore be ill suited unless supported by concessional finance, grants, guarantees, climate funds, or public investment frameworks that value avoided loss.
Sustainable development depends on whether fiscal systems and international financing arrangements can make resilience investment possible before climate stress translates into deeper debt distress and weaker state capacity. A debt system that leaves vulnerable countries unable to adapt is not fiscally prudent in any meaningful developmental sense.
The Global Financial Architecture and Unequal Policy Space
Debt constraints cannot be understood only at the national level because fiscal space is also shaped by the wider global financial architecture. Borrowing costs, creditor diversity, market perceptions, restructuring mechanisms, credit ratings, reserve currencies, and access to concessional finance all vary sharply across countries. The result is unequal policy space: some states can finance transition and resilience on relatively manageable terms, while others face high spreads, tighter conditions, or repeated restructuring risk that compresses developmental choice.
This matters because countries do not borrow on equal terms. The international system distributes room to invest unevenly, and that unevenness affects whether governments can sustain infrastructure, social protection, and structural transformation without entering repeated adjustment. Debt is therefore not simply a domestic public-finance problem. It is also a question of global financial governance.
Unequal policy space affects development strategy. A country with reserve-currency privileges, deep domestic capital markets, and low borrowing costs can sustain investment under conditions that would be impossible for a country borrowing in foreign currency at higher rates. A climate-vulnerable country may need to invest more in resilience but face worse financing terms. A lower-income country may be asked to preserve fiscal discipline while lacking the concessional support needed to protect development investment.
Restructuring systems also matter. When debt becomes unsustainable, delays, creditor fragmentation, and uncertainty can prolong crisis and deepen developmental damage. A restructuring process that restores solvency but leaves no room for public investment may resolve a financial problem while preserving a development problem. Sustainable debt governance must therefore ask whether outcomes restore capacity, not only payment feasibility.
Sustainable development depends partly on whether the international financial system allows countries enough room to invest in structural transformation and resilience rather than trapping them in recurrent stabilization and refinancing cycles. The debt question is therefore inseparable from debates about global fairness, international cooperation, and the legitimacy of financial rules.
Debt Transparency, Creditor Composition, and Governance
Debt governance matters because sustainable borrowing depends on transparency, creditor coordination, and reliable debt data. Borrowing becomes riskier when obligations are opaque, creditor landscapes are fragmented, or public institutions cannot monitor liabilities clearly across time. Debt problems are not only about volume. They are also about complexity and governability.
This matters because incomplete reporting, weak debt-management institutions, contingent liabilities, state-owned-enterprise borrowing, public-private partnership obligations, collateralized debt, and hidden guarantees can make fiscal risk harder to see until it becomes acute. Governments may lose sight of the full structure of obligations, while investors and citizens have less basis for evaluating sustainability or accountability. Development capacity weakens when debt systems become opaque enough to conceal cumulative fragility.
Creditor composition also matters. A country borrowing from multilateral lenders, bilateral creditors, domestic markets, commercial bondholders, and private lenders may face different interest rates, maturities, legal terms, restructuring processes, and political pressures. Fragmented creditor structures can complicate coordination when stress appears. They can also create uneven bargaining power, especially when some obligations are harder to restructure than others.
Transparency is therefore a democratic issue as well as a financial issue. Citizens have a stake in knowing what obligations have been taken on, on what terms, for what purposes, and with what developmental results. Public debt should not be treated as a technical domain sealed off from public accountability. Borrowing creates future claims on public resources, and those claims shape future policy choices.
Sustainable development depends on debt systems that are legible, governable, and credible enough to support borrowing without hidden instability. Transparent debt management is part of development capacity, not a side issue to it.
Growth, Austerity, and the Politics of Adjustment
When fiscal space narrows, governments often face pressure to adjust through spending cuts, tax increases, subsidy reform, wage restraint, privatization, or compressed investment. These are not only technical corrections. They are deeply political decisions about whose claims the state can still sustain under debt constraint and which expenditures are deemed deferrable or indispensable.
This matters because adjustment can protect macroeconomic stability while simultaneously weakening long-run development if it cuts maintenance, prevention, education, public health, climate adaptation, or capital investment too deeply. Conversely, delaying adjustment indefinitely can magnify refinancing stress and credibility loss. Sustainable development is therefore caught between the dangers of excessive compression and the dangers of unmanaged debt escalation.
Austerity is developmentally damaging when it protects repayment at the expense of the social and productive foundations of future capacity. But fiscal irresponsibility is also damaging when it leads to inflation, arrears, crisis, or loss of financing access. The difficult question is how to preserve necessary adjustment while protecting investment in resilience, capability, and human development. That requires institutions able to distinguish wasteful spending from developmental spending, and short-term savings from long-term damage.
Growth also matters because stronger growth can ease debt ratios and expand revenue. But growth alone does not solve debt if it is narrow, volatile, unequal, or ecologically fragile. Growth that depends on commodity booms, speculative inflows, or unsustainable extraction may create temporary relief while leaving future fiscal space exposed. Debt sustainability requires development quality, not only output expansion.
The politics of adjustment shape whether development constraints are distributed progressively, regressively, or opaquely. Fiscal space is never just an economic margin; it is also a field of conflict over priorities, burdens, and the legitimacy of sacrifice.
Path Dependence, Debt Traps, and Development Lock-In
Debt can become path dependent. Once large shares of revenue are committed to service, once refinancing becomes frequent, or once states are forced into repeated rounds of short-term stabilization, development strategy can narrow dramatically. Investment is postponed, growth potential weakens, resilience gaps persist, and future borrowing becomes harder to justify on favorable terms. This is one way debt traps operate: not as a single dramatic event, but as cumulative erosion of policy room.
This matters because underinvestment today can worsen debt sustainability tomorrow by reducing growth, resilience, and state capability. Deferred maintenance, weak infrastructure, underfunded education, inadequate health systems, fragile tax capacity, and delayed climate adaptation can all raise future fiscal burdens. Debt distress therefore is not only a financing problem. It can become a structural development trap in which weak fiscal space and weak development reinforce one another.
Debt traps also operate through expectations. If investors, citizens, and institutions come to expect recurring crisis, investment may fall, borrowing costs may rise, and political energy may shift toward short-term stabilization. The state becomes less able to plan because it is constantly managing the consequences of past borrowing and present financing stress. Development becomes locked into survival mode.
Path dependence can also be created by what debt financed. If borrowing supported productive infrastructure, resilient systems, and higher capacity, repayment may be easier over time. If borrowing supported poorly governed projects, narrow consumption, prestige infrastructure, or repeated crisis management, liabilities remain without corresponding capacity. Debt history therefore becomes part of development structure.
Sustainable development requires breaking this cycle by preserving enough fiscal room for productive and social investment even while debt risks are managed. Otherwise, debt governance becomes a mechanism of permanent developmental compression.
Debt Relief, Restructuring, and Developmental Recovery
Debt relief and restructuring become necessary when existing obligations prevent a state from maintaining solvency, stability, or essential development investment. Relief can take many forms: maturity extensions, interest-rate reductions, principal reduction, debt swaps, temporary suspension, concessional refinancing, or coordinated restructuring among creditors. The development question is whether such measures restore real fiscal space, not merely payment schedules.
This matters because a restructuring that reduces near-term pressure but leaves public investment impossible may stabilize accounts without enabling recovery. A country can exit a formal debt operation while still lacking room to invest in infrastructure, social protection, adaptation, or productive transformation. Sustainable restructuring should therefore be judged by whether it restores developmental capacity as well as financial sustainability.
Debt relief also raises governance questions. New fiscal room must be used well. Relief that creates space for renewed unsustainable borrowing, corruption, or poorly chosen projects can recreate the same problem. Relief should therefore be paired with stronger public investment management, debt transparency, tax capacity, climate resilience planning, and accountability for how restored space is used.
Debt-for-climate or debt-for-nature arrangements can be useful when designed carefully, but they are not a universal solution. They must be large enough to matter, transparent, locally legitimate, and aligned with national development priorities. They should not become a way for creditors to define environmental priorities while leaving deeper debt and development constraints intact.
Developmental recovery requires more than making payments manageable. It requires restoring the state’s ability to invest, maintain services, adapt to shocks, and build productive capacity. Debt restructuring is therefore strongest when it is embedded in a broader strategy for fiscal recovery, institutional strengthening, and sustainable development.
Why Debt Relief Alone Is Not Enough
Debt relief can be necessary, but it is not sufficient by itself. Relief may restore temporary room, yet development constraints can re-emerge if tax capacity remains weak, export structures remain narrow, borrowing remains expensive, climate shocks intensify, public investment systems are fragile, or global financial conditions continue to penalize vulnerable countries. Relief can create space, but it does not automatically transform the conditions that produced distress.
This matters because sustainable development requires more than escaping immediate crisis. It requires financing systems, debt-management institutions, revenue capacity, public investment systems, and global rules that allow countries to invest in infrastructure, resilience, and structural transformation without repeatedly falling back into unsustainable debt dynamics.
Debt relief also cannot substitute for fairer access to affordable long-term finance. If countries receive relief but then must borrow again on costly, short-term, or foreign-currency terms to finance adaptation and infrastructure, fiscal space may narrow again. Similarly, if climate shocks continue to destroy assets and revenues, relief may only postpone renewed distress unless resilience investment is financed.
Nor can debt relief substitute for domestic accountability. Borrowing decisions, project selection, tax policy, public investment management, and transparency still matter. A fairer global system is necessary, but domestic institutions also determine whether fiscal space is converted into public capability or wasted through weak governance.
The deeper goal is therefore not debt relief as episodic rescue alone, but debt systems and fiscal institutions that preserve developmental capacity across time. Sustainable development depends on that broader standard.
Why This Matters for Sustainable Development
Debt, fiscal space, and development constraints belong together because sustainable development depends not only on resources in the abstract, but on whether states retain enough room to invest in infrastructure, resilience, public services, and structural transformation without being overwhelmed by debt-service pressures and unstable financing conditions. Debt shapes not only what governments owe, but what they can still do.
This is why debt matters so much for sustainable development. It reveals a central truth that narrower macroeconomic narratives can miss: fiscal sustainability is developmental when it preserves capacity for long-horizon public investment, and underdevelopment deepens when debt systems steadily crowd out the very spending needed for resilience, inclusion, and productive change.
The issue is also one of justice. Debt constraints determine whose clinic is underfunded, whose school is understaffed, whose roads are not maintained, whose climate adaptation is delayed, whose social protection is cut, whose public wages are compressed, and whose future is narrowed by obligations incurred under unequal financial conditions. Sustainable development cannot be credible if fiscal discipline means permanent underinvestment in the people and systems most exposed to harm.
To take debt and fiscal space seriously is therefore to take development constraints seriously. Long-run progress depends not only on mobilizing finance, but on whether national and international financial systems are organized in ways that leave states enough room to build, protect, and transform rather than merely service, defer, and compress.
Development becomes credible when debt systems preserve public capacity, when fiscal institutions protect long-horizon investment, when restructuring restores real developmental room, and when global finance no longer forces the most vulnerable societies to choose between repayment and resilience.
Mathematical Lens
Debt and fiscal space can be clarified by expressing development constraint as a relationship between debt-service pressure, fiscal capacity, and vulnerability. Let \(D_s\) represent debt-service burden, \(F_c\) fiscal capacity, and \(V\) vulnerability to external or climate shocks:
C = \alpha D_s – \beta F_c + \gamma V
\]
Interpretation: Development constraint rises when debt service and vulnerability increase faster than fiscal capacity.
This captures the article’s central argument: debt is not only a liability stock, but a constraint on the state’s retained capacity to invest, adapt, and govern.
Fiscal crowding out can be represented more directly by comparing debt service with development-relevant spending:
K = \frac{R}{I + S}
\]
Interpretation: Crowding-out pressure rises when debt service consumes a larger share of resources that might otherwise support public investment and social spending.
Here, \(R\) is total debt service, \(I\) is public investment, and \(S\) is social spending. Higher \(K\) suggests that repayment obligations are exerting more pressure on development expenditure.
Refinancing risk can be expressed as a function of gross financing needs, maturity structure, and market access:
Q = \delta G + \epsilon M^{-1} + \zeta A^{-1}
\]
Interpretation: Refinancing risk rises when gross financing needs are high, average maturity is short, and market access is weak.
Here, \(G\) is gross financing needs, \(M\) is average maturity, and \(A\) is market access. This captures a key point: nominal access to borrowing does not equal real policy room if financing must constantly be rolled over under deteriorating terms.
Finally, usable fiscal space can be represented as public revenue after unavoidable commitments and vulnerability buffers are considered:
F_u = Y – R – O – B_v
\]
Interpretation: Usable fiscal space falls when debt service, operating obligations, and vulnerability buffers absorb public revenue.
Here, \(F_u\) is usable fiscal space, \(Y\) is public revenue, \(R\) is debt service, \(O\) is other unavoidable obligations, and \(B_v\) is the buffer needed for vulnerability and shock response.
| Term | Meaning | Interpretive role |
|---|---|---|
| \(C\) | Development constraint | Represents the degree to which debt pressure, low fiscal capacity, and vulnerability restrict public action. |
| \(D_s\) | Debt-service burden | Represents repayment pressure on current public resources. |
| \(F_c\) | Fiscal capacity | Represents the state’s ability to mobilize and allocate resources sustainably. |
| \(V\) | Vulnerability | Represents exposure to external, climate, commodity, or macrofinancial shocks. |
| \(K\) | Crowding-out pressure | Represents the ratio of debt service to development-relevant spending. |
| \(Q\) | Refinancing risk | Represents pressure created by gross financing needs, short maturities, and weak market access. |
| \(F_u\) | Usable fiscal space | Represents remaining public room after debt service, obligations, and vulnerability buffers are considered. |
The equations are conceptual rather than predictive. Their value is to make visible the structure of the problem: debt affects sustainable development through service burdens, refinancing risk, currency exposure, fiscal capacity, climate vulnerability, and the retained ability of the state to invest across time.
Advanced Python Workflow: Debt-Service Burden, Fiscal Space, and Stress Scenarios
This Python workflow translates the article’s core argument into a structured fiscal-diagnostics model. Instead of treating debt as a single headline ratio, it scores the interaction among debt stocks, debt service, gross financing needs, foreign-exchange exposure, concessional buffers, tax capacity, public investment, social spending, climate vulnerability, and market access. That helps distinguish between countries that can still borrow and countries that retain usable developmental room.
from __future__ import annotations
import pandas as pd
import numpy as np
INPUT_FILE = "sovereign_debt_fiscal_space_data.csv"
OUTPUT_FILE = "debt_fiscal_space_scores.csv"
SCENARIO_OUTPUT_FILE = "debt_fiscal_space_stress_scenarios.csv"
def load_data(path: str) -> pd.DataFrame:
"""Load sovereign debt and fiscal-space data."""
df = pd.read_csv(path)
required_columns = [
"country",
"region",
"year",
"public_debt_gdp_ratio",
"external_debt_export_ratio",
"debt_service_revenue_ratio",
"interest_revenue_ratio",
"gross_financing_needs_gdp_ratio",
"avg_maturity_years",
"share_fx_debt",
"share_concessional_debt",
"tax_revenue_gdp_ratio",
"public_investment_gdp_ratio",
"social_spending_gdp_ratio",
"climate_vulnerability_index",
"market_access_index",
"growth_rate",
]
missing = [col for col in required_columns if col not in df.columns]
if missing:
raise ValueError(f"Missing required columns: {missing}")
return df
def validate_inputs(df: pd.DataFrame) -> pd.DataFrame:
"""Validate core ratios, indexes, and maturity values."""
bounded_index_columns = [
"share_fx_debt",
"share_concessional_debt",
"climate_vulnerability_index",
"market_access_index",
]
for col in bounded_index_columns:
if df[col].isna().any():
raise ValueError(f"Column '{col}' contains missing values.")
if ((df[col] < 0) | (df[col] > 1)).any():
raise ValueError(f"Column '{col}' must be in [0, 1].")
if df["avg_maturity_years"].isna().any() or (df["avg_maturity_years"] <= 0).any():
raise ValueError("avg_maturity_years must be complete and greater than zero.")
numeric_columns = [
"public_debt_gdp_ratio",
"external_debt_export_ratio",
"debt_service_revenue_ratio",
"interest_revenue_ratio",
"gross_financing_needs_gdp_ratio",
"tax_revenue_gdp_ratio",
"public_investment_gdp_ratio",
"social_spending_gdp_ratio",
"growth_rate",
]
for col in numeric_columns:
if df[col].isna().any():
raise ValueError(f"Column '{col}' contains missing values.")
return df
def bounded_scale(
series: pd.Series,
lower: float,
upper: float,
inverse: bool = False,
) -> pd.Series:
"""Scale a series into [0, 1] using bounded linear scaling."""
scaled = (series - lower) / (upper - lower)
scaled = scaled.clip(lower=0, upper=1)
if inverse:
return 1 - scaled
return scaled
def compute_stress_components(df: pd.DataFrame) -> pd.DataFrame:
"""Create interpretable debt, buffer, and vulnerability components."""
df = df.copy()
df["debt_stock_stress"] = bounded_scale(df["public_debt_gdp_ratio"], 30, 120)
df["external_stress"] = bounded_scale(df["external_debt_export_ratio"], 50, 300)
df["debt_service_stress"] = bounded_scale(df["debt_service_revenue_ratio"], 5, 30)
df["interest_burden_stress"] = bounded_scale(df["interest_revenue_ratio"], 3, 20)
df["gross_financing_stress"] = bounded_scale(df["gross_financing_needs_gdp_ratio"], 5, 25)
df["fx_exposure_stress"] = bounded_scale(df["share_fx_debt"], 0.10, 0.80)
df["climate_vulnerability_stress"] = bounded_scale(df["climate_vulnerability_index"], 0.20, 0.90)
df["maturity_buffer_stress"] = bounded_scale(df["avg_maturity_years"], 2, 12, inverse=True)
df["concessional_buffer_stress"] = bounded_scale(
df["share_concessional_debt"],
0.05,
0.80,
inverse=True,
)
df["tax_capacity_stress"] = bounded_scale(df["tax_revenue_gdp_ratio"], 8, 30, inverse=True)
df["market_access_stress"] = bounded_scale(df["market_access_index"], 0.10, 0.95, inverse=True)
df["growth_stress"] = bounded_scale(df["growth_rate"], -3, 8, inverse=True)
return df
def compute_fiscal_space_scores(df: pd.DataFrame) -> pd.DataFrame:
"""Compute debt pressure, crowding out, refinancing risk, and overall constraint."""
df = df.copy()
df["debt_pressure_score"] = (
0.16 * df["debt_stock_stress"] +
0.13 * df["external_stress"] +
0.18 * df["debt_service_stress"] +
0.12 * df["interest_burden_stress"] +
0.12 * df["gross_financing_stress"] +
0.10 * df["fx_exposure_stress"] +
0.10 * df["climate_vulnerability_stress"] +
0.09 * df["tax_capacity_stress"]
).clip(lower=0, upper=1)
low_investment_stress = bounded_scale(
df["public_investment_gdp_ratio"],
1,
8,
inverse=True,
)
low_social_spending_stress = bounded_scale(
df["social_spending_gdp_ratio"],
2,
18,
inverse=True,
)
df["development_crowding_out_score"] = (
0.36 * df["debt_service_stress"] +
0.20 * df["interest_burden_stress"] +
0.18 * low_investment_stress +
0.16 * low_social_spending_stress +
0.10 * df["tax_capacity_stress"]
).clip(lower=0, upper=1)
df["refinancing_risk_score"] = (
0.32 * df["gross_financing_stress"] +
0.23 * df["maturity_buffer_stress"] +
0.20 * df["fx_exposure_stress"] +
0.15 * df["market_access_stress"] +
0.10 * df["growth_stress"]
).clip(lower=0, upper=1)
df["overall_constraint_score"] = (
0.40 * df["debt_pressure_score"] +
0.30 * df["development_crowding_out_score"] +
0.30 * df["refinancing_risk_score"]
).clip(lower=0, upper=1)
df["constraint_band"] = np.select(
[
df["overall_constraint_score"] >= 0.75,
df["overall_constraint_score"] >= 0.55,
df["overall_constraint_score"] >= 0.35,
],
[
"Severe constraint",
"Elevated constraint",
"Moderate constraint",
],
default="Lower constraint",
)
df["fiscal_warning"] = np.select(
[
df["debt_service_stress"] >= 0.75,
df["refinancing_risk_score"] >= 0.75,
df["fx_exposure_stress"] >= 0.75,
df["climate_vulnerability_stress"] >= 0.75,
],
[
"High debt-service pressure",
"High refinancing risk",
"High FX-debt exposure",
"High climate vulnerability pressure",
],
default="Lower fiscal-space warning",
)
return df
def build_stress_scenarios(df: pd.DataFrame) -> pd.DataFrame:
"""
Build simple adverse scenarios:
- interest shock increases interest burden and debt-service ratios,
- FX shock raises external and FX-debt pressure,
- climate shock raises vulnerability and lowers growth.
"""
scenarios = []
scenario_definitions = {
"baseline": {
"interest_revenue_ratio_add": 0.0,
"debt_service_revenue_ratio_add": 0.0,
"external_debt_export_ratio_add": 0.0,
"climate_vulnerability_index_add": 0.0,
"growth_rate_add": 0.0,
},
"interest_rate_shock": {
"interest_revenue_ratio_add": 3.0,
"debt_service_revenue_ratio_add": 4.0,
"external_debt_export_ratio_add": 0.0,
"climate_vulnerability_index_add": 0.0,
"growth_rate_add": -0.5,
},
"fx_shock": {
"interest_revenue_ratio_add": 1.0,
"debt_service_revenue_ratio_add": 3.0,
"external_debt_export_ratio_add": 25.0,
"climate_vulnerability_index_add": 0.0,
"growth_rate_add": -0.75,
},
"climate_shock": {
"interest_revenue_ratio_add": 0.5,
"debt_service_revenue_ratio_add": 2.0,
"external_debt_export_ratio_add": 10.0,
"climate_vulnerability_index_add": 0.10,
"growth_rate_add": -1.5,
},
}
for scenario_name, params in scenario_definitions.items():
scenario_df = df.copy()
scenario_df["scenario"] = scenario_name
scenario_df["interest_revenue_ratio"] = (
scenario_df["interest_revenue_ratio"] +
params["interest_revenue_ratio_add"]
)
scenario_df["debt_service_revenue_ratio"] = (
scenario_df["debt_service_revenue_ratio"] +
params["debt_service_revenue_ratio_add"]
)
scenario_df["external_debt_export_ratio"] = (
scenario_df["external_debt_export_ratio"] +
params["external_debt_export_ratio_add"]
)
scenario_df["climate_vulnerability_index"] = (
scenario_df["climate_vulnerability_index"] +
params["climate_vulnerability_index_add"]
).clip(lower=0, upper=1)
scenario_df["growth_rate"] = scenario_df["growth_rate"] + params["growth_rate_add"]
scenario_df = compute_stress_components(scenario_df)
scenario_df = compute_fiscal_space_scores(scenario_df)
scenarios.append(
scenario_df[
[
"country",
"region",
"year",
"scenario",
"overall_constraint_score",
"debt_pressure_score",
"development_crowding_out_score",
"refinancing_risk_score",
"constraint_band",
"fiscal_warning",
]
]
)
return pd.concat(scenarios, ignore_index=True)
def main() -> None:
df = load_data(INPUT_FILE)
df = validate_inputs(df)
scored = compute_stress_components(df)
scored = compute_fiscal_space_scores(scored)
summary = scored[
[
"country",
"region",
"year",
"debt_pressure_score",
"development_crowding_out_score",
"refinancing_risk_score",
"overall_constraint_score",
"constraint_band",
"fiscal_warning",
]
].sort_values(
by=["overall_constraint_score", "debt_pressure_score"],
ascending=[False, False],
)
summary.to_csv(OUTPUT_FILE, index=False)
stress_scenarios = build_stress_scenarios(df)
stress_scenarios.to_csv(SCENARIO_OUTPUT_FILE, index=False)
print("Debt and fiscal-space scoring complete.")
print(summary.to_string(index=False))
if __name__ == "__main__":
main()
This workflow is intentionally transparent. It does not produce a definitive debt-sustainability assessment. Instead, it makes fiscal constraint visible through debt pressure, crowding-out pressure, refinancing risk, vulnerability, and simple adverse scenarios. In practice, it can support comparisons across countries or years, identify where development spending is most exposed to compression, and test how fiscal room changes under interest-rate, currency, or climate stress.
Advanced R Workflow: Cross-Country Fiscal Compression and Vulnerability Analysis
This R workflow is designed for comparative analysis across countries or regions where debt pressure, development spending, and vulnerability need to be read together rather than as separate variables. It builds a fiscal-pressure proxy, a development-space proxy, and a crowding-out summary that helps show whether countries appear to be retaining room for investment or sliding into compression.
library(readr)
library(dplyr)
input_file <- "sovereign_debt_fiscal_space_data.csv"
country_output_file <- "debt_fiscal_space_country_summary.csv"
region_output_file <- "debt_fiscal_space_region_summary.csv"
debt_df <- read_csv(input_file, show_col_types = FALSE)
required_cols <- c(
"country",
"region",
"year",
"public_debt_gdp_ratio",
"debt_service_revenue_ratio",
"interest_revenue_ratio",
"gross_financing_needs_gdp_ratio",
"public_investment_gdp_ratio",
"social_spending_gdp_ratio",
"climate_vulnerability_index",
"market_access_index"
)
missing_cols <- setdiff(required_cols, names(debt_df))
if (length(missing_cols) > 0) {
stop(paste("Missing required columns:", paste(missing_cols, collapse = ", ")))
}
numeric_cols <- setdiff(required_cols, c("country", "region"))
invalid_numeric_cols <- numeric_cols[
vapply(
debt_df[numeric_cols],
function(x) any(is.na(x)),
logical(1)
)
]
if (length(invalid_numeric_cols) > 0) {
stop(
paste(
"Numeric columns must be complete:",
paste(invalid_numeric_cols, collapse = ", ")
)
)
}
index_cols <- c("climate_vulnerability_index", "market_access_index")
invalid_index_cols <- index_cols[
vapply(
debt_df[index_cols],
function(x) any(x < 0 | x > 1),
logical(1)
)
]
if (length(invalid_index_cols) > 0) {
stop(
paste(
"Index columns must be normalized to [0, 1]:",
paste(invalid_index_cols, collapse = ", ")
)
)
}
debt_df <- debt_df %>%
mutate(
fiscal_pressure_proxy = (
pmin(public_debt_gdp_ratio / 120, 1) +
pmin(debt_service_revenue_ratio / 35, 1) +
pmin(interest_revenue_ratio / 25, 1) +
pmin(gross_financing_needs_gdp_ratio / 30, 1)
) / 4,
development_space_proxy = (
pmin(public_investment_gdp_ratio / 10, 1) +
pmin(social_spending_gdp_ratio / 20, 1) +
market_access_index +
(1 - climate_vulnerability_index)
) / 4,
crowding_out_proxy = (
pmin(debt_service_revenue_ratio / 35, 1) +
pmin(interest_revenue_ratio / 25, 1) +
(1 - pmin(public_investment_gdp_ratio / 10, 1)) +
(1 - pmin(social_spending_gdp_ratio / 20, 1))
) / 4
)
country_summary <- debt_df %>%
group_by(country) %>%
summarise(
avg_fiscal_pressure = mean(fiscal_pressure_proxy, na.rm = TRUE),
avg_development_space = mean(development_space_proxy, na.rm = TRUE),
avg_crowding_out = mean(crowding_out_proxy, na.rm = TRUE),
avg_debt_service_ratio = mean(debt_service_revenue_ratio, na.rm = TRUE),
avg_interest_ratio = mean(interest_revenue_ratio, na.rm = TRUE),
avg_public_investment = mean(public_investment_gdp_ratio, na.rm = TRUE),
avg_social_spending = mean(social_spending_gdp_ratio, na.rm = TRUE),
avg_climate_vulnerability = mean(climate_vulnerability_index, na.rm = TRUE),
observations = n(),
.groups = "drop"
) %>%
mutate(
constraint_gap = avg_fiscal_pressure - avg_development_space,
constraint_band = case_when(
constraint_gap >= 0.30 ~ "Severe constraint",
constraint_gap >= 0.15 ~ "Elevated constraint",
constraint_gap >= 0.05 ~ "Moderate constraint",
TRUE ~ "Lower constraint"
)
) %>%
arrange(desc(constraint_gap))
region_summary <- debt_df %>%
group_by(region) %>%
summarise(
avg_fiscal_pressure = mean(fiscal_pressure_proxy, na.rm = TRUE),
avg_development_space = mean(development_space_proxy, na.rm = TRUE),
avg_crowding_out = mean(crowding_out_proxy, na.rm = TRUE),
avg_debt_service_ratio = mean(debt_service_revenue_ratio, na.rm = TRUE),
avg_interest_ratio = mean(interest_revenue_ratio, na.rm = TRUE),
avg_climate_vulnerability = mean(climate_vulnerability_index, na.rm = TRUE),
observations = n(),
.groups = "drop"
) %>%
arrange(desc(avg_fiscal_pressure))
write_csv(country_summary, country_output_file)
write_csv(region_summary, region_output_file)
cat("Country debt and fiscal-space summary exported to:", country_output_file, "\n")
print(country_summary)
cat("\nRegion debt and fiscal-space summary exported to:", region_output_file, "\n")
print(region_summary)
R is useful here because this article is not only about debt stocks. It is about patterned differences across countries and the uneven way debt burdens interact with public investment, social spending, market access, and vulnerability. The grouped summaries help show where fiscal pressure appears to be crowding out development space and where resilience investment may be most exposed to compression.
Advanced Go Workflow: Lightweight Fiscal-Space Scoring Service
This Go workflow is useful when the article’s logic needs to move from analysis into a lightweight operational service. While Python and R are strong for diagnostics and comparative summaries, Go is a good fit for a lean scoring utility that can ingest country records and return a constraint score quickly. In practical terms, this kind of service could sit behind a dashboard or internal policy tool used to flag debt pressure and shrinking fiscal room.
package main
import (
"encoding/csv"
"fmt"
"os"
"strconv"
)
type DebtRecord struct {
Country string
Region string
Year int
PublicDebtGDPRatio float64
ExternalDebtExportRatio float64
DebtServiceRevenueRatio float64
InterestRevenueRatio float64
GrossFinancingNeedsGDP float64
AvgMaturityYears float64
ShareFXDebt float64
ShareConcessionalDebt float64
TaxRevenueGDP float64
PublicInvestmentGDP float64
SocialSpendingGDP float64
ClimateVulnerabilityIndex float64
MarketAccessIndex float64
GrowthRate float64
}
func parseRecord(row []string) (DebtRecord, error) {
if len(row) != 17 {
return DebtRecord{}, fmt.Errorf("invalid record length: expected 17 columns")
}
year, err := strconv.Atoi(row[2])
if err != nil {
return DebtRecord{}, err
}
values := make([]float64, 14)
for i, col := range row[3:] {
value, err := strconv.ParseFloat(col, 64)
if err != nil {
return DebtRecord{}, err
}
values[i] = value
}
if values[5] <= 0 {
return DebtRecord{}, fmt.Errorf("average maturity must be greater than zero")
}
if values[6] < 0 || values[6] > 1 {
return DebtRecord{}, fmt.Errorf("share_fx_debt must be in [0, 1]")
}
if values[7] < 0 || values[7] > 1 {
return DebtRecord{}, fmt.Errorf("share_concessional_debt must be in [0, 1]")
}
if values[11] < 0 || values[11] > 1 {
return DebtRecord{}, fmt.Errorf("climate_vulnerability_index must be in [0, 1]")
}
if values[12] < 0 || values[12] > 1 {
return DebtRecord{}, fmt.Errorf("market_access_index must be in [0, 1]")
}
return DebtRecord{
Country: row[0],
Region: row[1],
Year: year,
PublicDebtGDPRatio: values[0],
ExternalDebtExportRatio: values[1],
DebtServiceRevenueRatio: values[2],
InterestRevenueRatio: values[3],
GrossFinancingNeedsGDP: values[4],
AvgMaturityYears: values[5],
ShareFXDebt: values[6],
ShareConcessionalDebt: values[7],
TaxRevenueGDP: values[8],
PublicInvestmentGDP: values[9],
SocialSpendingGDP: values[10],
ClimateVulnerabilityIndex: values[11],
MarketAccessIndex: values[12],
GrowthRate: values[13],
}, nil
}
func clamp01(x float64) float64 {
if x < 0 {
return 0
}
if x > 1 {
return 1
}
return x
}
func scale(value, lower, upper float64, inverse bool) float64 {
scaled := clamp01((value - lower) / (upper - lower))
if inverse {
return 1 - scaled
}
return scaled
}
func overallConstraint(record DebtRecord) float64 {
debtPressure := 0.18*scale(record.PublicDebtGDPRatio, 30, 120, false) +
0.14*scale(record.ExternalDebtExportRatio, 50, 300, false) +
0.20*scale(record.DebtServiceRevenueRatio, 5, 30, false) +
0.12*scale(record.InterestRevenueRatio, 3, 20, false) +
0.12*scale(record.GrossFinancingNeedsGDP, 5, 25, false) +
0.10*scale(record.ShareFXDebt, 0.10, 0.80, false) +
0.14*scale(record.ClimateVulnerabilityIndex, 0.20, 0.90, false)
crowdingOut := 0.40*scale(record.DebtServiceRevenueRatio, 5, 30, false) +
0.20*scale(record.InterestRevenueRatio, 3, 20, false) +
0.20*scale(record.PublicInvestmentGDP, 1, 8, true) +
0.20*scale(record.SocialSpendingGDP, 2, 18, true)
refinancingRisk := 0.35*scale(record.GrossFinancingNeedsGDP, 5, 25, false) +
0.25*scale(record.AvgMaturityYears, 2, 12, true) +
0.20*scale(record.ShareFXDebt, 0.10, 0.80, false) +
0.20*scale(record.MarketAccessIndex, 0.10, 0.95, true)
return clamp01(0.40*debtPressure + 0.30*crowdingOut + 0.30*refinancingRisk)
}
func constraintBand(score float64) string {
switch {
case score >= 0.75:
return "Severe constraint"
case score >= 0.55:
return "Elevated constraint"
case score >= 0.35:
return "Moderate constraint"
default:
return "Lower constraint"
}
}
func main() {
file, err := os.Open("sovereign_debt_fiscal_space_data.csv")
if err != nil {
fmt.Println("Error opening CSV:", err)
return
}
defer file.Close()
reader := csv.NewReader(file)
rows, err := reader.ReadAll()
if err != nil {
fmt.Println("Error reading CSV:", err)
return
}
for i, row := range rows {
if i == 0 {
continue
}
record, err := parseRecord(row)
if err != nil {
fmt.Println("Parse error:", err)
continue
}
score := overallConstraint(record)
fmt.Printf(
"country=%s region=%s year=%d overall_constraint_score=%.3f band=%s\n",
record.Country,
record.Region,
record.Year,
score,
constraintBand(score),
)
}
}
The point is not to build a full debt-sustainability platform inside the article. The point is to show how fiscal-space logic can be operationalized cleanly: validate country records, scale the major stress components, compute debt pressure, crowding-out pressure, refinancing risk, and return a readable constraint score and band. This gives the article’s macro-development argument a reproducible diagnostic form.
GitHub Repository
Complete Code Repository
The full code distribution for this article, including fiscal-space scoring workflows, refinancing diagnostics, stress-scenario analysis, fiscal-compression summaries, optional scoring-service tooling, supporting documentation, and repository structure, is available on GitHub.
Related Articles
- Sustainable Finance and Development Investment
- Economic Systems
- State Capacity, Public Administration, and Delivery Systems
- Infrastructure as the Material Basis of Development
- Climate Change as a Development Constraint
- Development Under Deep Uncertainty
- Risk, Shock, and Fragility in Development Systems
- Policy Coordination Across Complex Systems
- Industrial Policy and Sustainable Structural Transformation
- Why Institutions Matter for Sustainable Development
Further Reading
- World Bank (2026) A Cross-Country Database of Fiscal Space. Available at: https://www.worldbank.org/en/research/brief/fiscal-space
- UNCTAD (2025) A World of Debt 2025. Available at: https://unctad.org/publication/world-of-debt
- UNCTAD (2025) External Debt Sustainability and Development 2025. Available at: https://unctad.org/publication/external-debt-sustainability-and-development-2025
- OECD (2025) Debt and Debt Sustainability, in Global Outlook on Financing for Sustainable Development 2025. Available at: https://www.oecd.org/en/publications/global-outlook-on-financing-for-sustainable-development-2025_753d5368-en/full-report/debt-and-debt-sustainability_51646937.html
- United Nations DESA Financing for Sustainable Development Office (n.d.) 4th International Conference on Financing for Development. Available at: https://financing.desa.un.org/events/4th-international-conference-financing-development
References
- World Bank (2026) A Cross-Country Database of Fiscal Space. Available at: https://www.worldbank.org/en/research/brief/fiscal-space
- World Bank (2026) Fiscal Space Data. Available at: https://thedocs.worldbank.org/en/doc/31a9f7ffd7c72b9fbed93f3fb79af70a-0050012026/fiscal-space-data
- UNCTAD (2025) A World of Debt 2025. Available at: https://unctad.org/publication/world-of-debt
- UNCTAD (2025) A World of Debt 2025: It Is Time for Reform. Available at: https://unctad.org/system/files/official-document/osgttinf2025d4_en.pdf
- UNCTAD (2025) External Debt Sustainability and Development 2025. Available at: https://unctad.org/publication/external-debt-sustainability-and-development-2025
- OECD (2025) Debt and Debt Sustainability, in Global Outlook on Financing for Sustainable Development 2025. Available at: https://www.oecd.org/en/publications/global-outlook-on-financing-for-sustainable-development-2025_753d5368-en/full-report/debt-and-debt-sustainability_51646937.html
- OECD (2025) Global Outlook on Financing for Sustainable Development 2025. Available at: https://www.oecd.org/en/publications/global-outlook-on-financing-for-sustainable-development-2025_753d5368-en.html
- United Nations DESA Financing for Sustainable Development Office (n.d.) 4th International Conference on Financing for Development. Available at: https://financing.desa.un.org/events/4th-international-conference-financing-development
- United Nations DESA Financing for Sustainable Development Office (2026) 2026 Financing for Development Forum. Available at: https://financing.desa.un.org/events/2026-financing-development-forum
