Rwanda ranks among Africa’s top performers in debt transparency
Listen to article
4 min listen
Audio reading is not supported on this browser.
Ready
Thanks for listening. Continue with a related story, or tap the speaker icon on the next page to listen.

World Bank asks Kenya to improve use of public funds amid rising debt concerns
Lucy Mumbi
·
2 days agoRead nextOpens a fresh page.
Rwanda launched its sovereign investor relations programme in 2025, under the Ministry of Finance and Economic Planning, to improve communication with investors on the country’s fiscal and debt position.
Rwanda has been ranked among Africa’s top performers in the 2026 Institute of International Finance (IIF) Investor Relations and Debt Transparency Report, highlighting the country’s growing reputation for transparency in public debt management and communication with international investors.
The report, published this month, awarded Rwanda 43.4 out of 50 points, placing it alongside South Africa as Africa’s highest-performing country in sovereign investor relations and debt transparency. The IIF is a Washington, D.C-based global association representing the financial services industry.
The annual assessment evaluates how governments communicate with investors and disclose information on public debt.
More To Read
- World Bank asks Kenya to improve use of public funds amid rising debt concerns
- Gor Mahia, Tusker handed tough Kagame Cup draws as Joe Waithira faces Singida Black Stars
- President Paul Kagame named co-chair of new global commission on AI
- Rwanda to use Kenya’s fuel storage under new import deal
- Civil society groups warn Kenya’s Sh13 trillion debt hurting essential services
- DRC sues Rwanda at ICJ over alleged Genocide Convention breaches
It measures countries using 23 criteria, including the availability of economic and fiscal data, debt reporting, investor engagement and the accessibility of official information.
This year’s report covered 57 emerging and developing economies, with Rwanda making its first appearance.
The Ministry of Finance and Economic Planning said on Wednesday, July 15, that the recognition demonstrates Rwanda’s progress in strengthening transparency and building investor confidence.
Latest Stories
- ICC orders Libyan prison official to stand trial on war crimes charges
- New guidance offers hope for reducing the global toll of dementia
- Hitesh Mediratta appointed new KAM Board chair for two-year term
- DR Congo deploys ceasefire monitoring team to Goma as fighting continues
“Rwanda was one of only four countries newly added to the 2026 report and was singled out by the IIF as an example of best practice,” the ministry said.

The report notes that Rwanda scored particularly well in areas related to data transparency, investor communication and governance.
It credits the country’s performance to improvements in the availability of fiscal and debt information, regular engagement with investors and a structured approach to sovereign investor relations.
According to the IIF, countries that consistently provide clear, credible and timely information to investors benefit from what it describes as a “transparency dividend.”
Better transparency helps reduce uncertainty, improve market access, lower borrowing costs and strengthen resilience during periods of economic stress. The report also links stronger investor relations with more stable sovereign credit ratings over time.
Rwanda launched its sovereign investor relations programme in 2025, under the Ministry of Finance and Economic Planning, to improve communication with investors on the country’s fiscal and debt position.
The ministry said the recognition sends a strong signal to international investors that Rwanda communicates its fiscal and debt position “clearly and reliably,” giving it a competitive advantage as global investment capital becomes increasingly selective.
The report also highlights broader progress across Sub-Saharan Africa, where the regional median investor relations score improved compared with last year, although it remains below the global average. The IIF attributes the improvement to stronger transparency practices and growing recognition among governments of the importance of regular engagement with investors.
Besides Rwanda and South Africa, other African countries assessed in the report include Morocco, Côte d’Ivoire, Senegal, Kenya, Nigeria, Angola, Egypt and Ghana.
Globally, the Philippines ranked first with a score of 49.4 out of 50, followed by Türkiye and Brazil.
Other Topics To Read
Top Stories Today
- Ol Kalou poll violence exposes growing threats facing journalists in Kenya
- Court of Appeal Sets one-year deadline to conclude appeals
- Sifuna wants CRB records scrapped from job recruitment
- Murkomen orders probe into Ol Kalou by-election violence
- Djibouti Defence Minister Hassan Omar Mohamed dies in France
- Over 50 per cent of registered voters cast ballots in Ol Kalou by-election amid chaos – IEBC
`;
}
return “;
}
function commentActionsMarkup(comment, canComment) {
const likeLabel = comment.liked_by_me ? ‘Liked’ : ‘Like’;
const likeCount = Number(comment.like_count || 0) > 0
? “
: ”;
const likeButton = canComment && comment.status === ‘approved’
? “
: “;
const replyButton = canComment && comment.status === ‘approved’
? “
: ”;
return `
`;
}
function commentMarkup(comment, canComment, isReply = false) {
const pendingBadge = comment.status && comment.status !== ‘approved’
? “
: ”;
const edited = comment.is_edited
? “
: ”;
const repliesHtml = Array.isArray(comment.replies) && comment.replies.length
? `
`
: “;
return `
`;
}
function replyFormMarkup(commentId) {
return `
`;
}
function setNotice(widget, message, type = ‘info’) {
const notice = widget.querySelector(‘[data-role=”notice”]’);
if (!notice) return;
if (!message) {
notice.hidden = true;
notice.textContent = ”;
notice.classList.remove(‘is-error’);
return;
}
notice.hidden = false;
notice.textContent = message;
notice.classList.toggle(‘is-error’, type === ‘error’);
}
function setCount(widget, total) {
const count = widget.querySelector(‘[data-role=”count”]’);
if (!count) return;
const num = Number(total || 0);
count.textContent = num === 1 ? ‘1 comment’ : `${num} comments`;
}
function openReplyBox(widget, commentId) {
widget.querySelectorAll(‘[data-role=”reply-box”]’).forEach(box => {
box.hidden = true;
box.innerHTML = ”;
});
const targetItem = widget.querySelector(`.ev-comments__item[data-comment-id=”${commentId}”]`);
if (!targetItem) return;
const replyBox = targetItem.querySelector(‘[data-role=”reply-box”]’);
if (!replyBox) return;
replyBox.hidden = false;
replyBox.innerHTML = replyFormMarkup(commentId);
const textarea = replyBox.querySelector(‘textarea’);
if (textarea) textarea.focus();
}
function closeReplyBox(container) {
if (!container) return;
container.hidden = true;
container.innerHTML = ”;
}
async function initCommentsWidget(widget) {
const state = {
articleId: Number(widget.dataset.articleId),
loadUrl: widget.dataset.loadUrl,
storeUrl: widget.dataset.storeUrl,
commentsBaseUrl: widget.dataset.commentsBaseUrl,
canComment: widget.dataset.canComment === ‘1’,
page: 1,
perPage: 10,
sort: ‘newest’,
total: 0,
hasMore: false,
busy: false
};
const list = widget.querySelector(‘[data-role=”list”]’);
const loading = widget.querySelector(‘[data-role=”loading”]’);
const empty = widget.querySelector(‘[data-role=”empty”]’);
const loadMoreBtn = widget.querySelector(‘[data-role=”load-more”]’);
const sortSelect = widget.querySelector(‘[data-role=”sort”]’);
const composerForm = widget.querySelector(‘[data-role=”composer-form”]’);
async function loadComments(reset = true) {
if (state.busy) return;
state.busy = true;
setNotice(widget, ”);
loading.hidden = false;
if (reset) {
state.page = 1;
list.innerHTML = ”;
empty.hidden = true;
}
try {
const url = new URL(state.loadUrl, window.location.origin);
url.searchParams.set(‘page’, state.page);
url.searchParams.set(‘per_page’, state.perPage);
url.searchParams.set(‘sort’, state.sort);
const response = await requestJson(url.toString(), {
method: ‘GET’,
headers: {
‘Accept’: ‘application/json’,
‘X-Requested-With’: ‘XMLHttpRequest’
}
});
const items = Array.isArray(response.data) ? response.data : [];
const meta = response.meta || {};
state.total = Number(meta.total || 0);
state.hasMore = !!meta.has_more;
setCount(widget, state.total);
if (reset) {
list.innerHTML = ”;
}
if (!items.length && reset) {
empty.hidden = false;
} else {
empty.hidden = true;
list.insertAdjacentHTML(
‘beforeend’,
items.map(item => commentMarkup(item, state.canComment, false)).join(”)
);
}
loadMoreBtn.hidden = !state.hasMore;
} catch (error) {
if (!list.children.length) {
empty.hidden = false;
empty.textContent = ‘Unable to load comments right now.’;
}
setNotice(widget, error.message || ‘Unable to load comments.’, ‘error’);
} finally {
loading.hidden = true;
state.busy = false;
}
}
async function submitTopLevelComment(form) {
const textarea = form.querySelector(‘textarea[name=”content”]’);
const button = form.querySelector(‘[data-role=”submit-comment”]’);
if (!textarea) return;
const content = textarea.value.trim();
if (!content) return;
const originalText = button ? button.textContent : ”;
try {
if (button) {
button.disabled = true;
button.textContent = ‘Posting…’;
}
const response = await requestJson(state.storeUrl, {
method: ‘POST’,
headers: buildJsonHeaders(),
body: JSON.stringify({
article_id: state.articleId,
content: content,
source_url: window.location.href
})
});
textarea.value = ”;
if (response?.data) {
list.insertAdjacentHTML(
‘afterbegin’,
commentMarkup(response.data, state.canComment, false)
);
empty.hidden = true;
if ((response.data.status || ”) === ‘approved’) {
state.total += 1;
setCount(widget, state.total);
}
}
setNotice(widget, response.message || ‘Comment posted successfully.’);
} catch (error) {
setNotice(widget, error.message || ‘Unable to post comment.’, ‘error’);
} finally {
if (button) {
button.disabled = false;
button.textContent = originalText || ‘Post comment’;
}
}
}
async function submitReply(form) {
const commentId = Number(form.dataset.commentId || 0);
const textarea = form.querySelector(‘textarea[name=”content”]’);
const button = form.querySelector(‘.ev-comments__reply-submit’);
if (!commentId || !textarea) return;
const content = textarea.value.trim();
if (!content) return;
const originalText = button ? button.textContent : ”;
try {
if (button) {
button.disabled = true;
button.textContent = ‘Posting…’;
}
const response = await requestJson(`${state.commentsBaseUrl}/${commentId}/reply`, {
method: ‘POST’,
headers: buildJsonHeaders(),
body: JSON.stringify({
article_id: state.articleId,
content: content,
source_url: window.location.href
})
});
if (response?.data) {
const parentItem = widget.querySelector(`.ev-comments__item[data-comment-id=”${commentId}”]`);
if (parentItem) {
const repliesWrap = parentItem.querySelector(‘.ev-comments__replies’);
if (repliesWrap) {
repliesWrap.insertAdjacentHTML(
‘beforeend’,
commentMarkup(response.data, state.canComment, true)
);
}
}
}
closeReplyBox(form.closest(‘[data-role=”reply-box”]’));
setNotice(widget, response.message || ‘Reply posted successfully.’);
} catch (error) {
setNotice(widget, error.message || ‘Unable to post reply.’, ‘error’);
} finally {
if (button) {
button.disabled = false;
button.textContent = originalText || ‘Post reply’;
}
}
}
async function toggleLike(button) {
const commentId = Number(button.dataset.commentId || 0);
if (!commentId) return;
const originalHtml = button.innerHTML;
try {
button.disabled = true;
button.innerHTML = ‘Working…’;
const response = await requestJson(`${state.commentsBaseUrl}/${commentId}/like`, {
method: ‘POST’,
headers: buildJsonHeaders(),
body: JSON.stringify({})
});
const liked = !!response?.data?.liked;
const likeCount = Number(response?.data?.like_count || 0);
button.classList.toggle(‘is-liked’, liked);
button.innerHTML = `${liked ? ‘Liked’ : ‘Like’} ${likeCount > 0 ? “ : ”}`;
} catch (error) {
button.innerHTML = originalHtml;
setNotice(widget, error.message || ‘Unable to update like.’, ‘error’);
} finally {
button.disabled = false;
}
}
if (composerForm) {
composerForm.addEventListener(‘submit’, function (e) {
e.preventDefault();
submitTopLevelComment(composerForm);
});
}
if (sortSelect) {
sortSelect.addEventListener(‘change’, function () {
state.sort = this.value || ‘newest’;
loadComments(true);
});
}
if (loadMoreBtn) {
loadMoreBtn.addEventListener(‘click’, function () {
if (state.busy || !state.hasMore) return;
state.page += 1;
loadComments(false);
});
}
widget.addEventListener(‘click’, function (e) {
const likeBtn = e.target.closest(‘[data-action=”toggle-like”]’);
if (likeBtn) {
e.preventDefault();
toggleLike(likeBtn);
return;
}
const replyBtn = e.target.closest(‘[data-action=”toggle-reply”]’);
if (replyBtn) {
e.preventDefault();
openReplyBox(widget, Number(replyBtn.dataset.commentId || 0));
return;
}
const cancelReplyBtn = e.target.closest(‘[data-action=”cancel-reply”]’);
if (cancelReplyBtn) {
e.preventDefault();
closeReplyBox(cancelReplyBtn.closest(‘[data-role=”reply-box”]’));
}
});
widget.addEventListener(‘submit’, function (e) {
const replyForm = e.target.closest(‘.ev-comments__reply-form’);
if (replyForm) {
e.preventDefault();
submitReply(replyForm);
}
});
loadComments(true);
}
document.addEventListener(‘DOMContentLoaded’, function () {
document.querySelectorAll(‘.ev-comments’).forEach(initCommentsWidget);
});
})();
Trending

Theological training institutions under pressure as Parliament pushes for regulationNews
|Rachael Mutabasi
|20 hours ago
Americans leaving DRC barred from returning to US for 21 days over EbolaWorld
|Rachael Mutabasi
|20 hours ago

Explainer: Key steps before reporting to university after securing KUCCPS placementNews
|Lucy Mumbi
|1 day ago
State Department for Lands given two weeks to submit report on contested propertiesBusiness
|Lucy Mumbi
|1 day ago
Ol Kalou by-election: Gachagua demands police officers wear uniforms, use marked vehiclesNews
|Lucy Mumbi
|1 day ago

Nairobi’s Eastleigh, GPO, Makadara and Kibra among 20 Huduma Centres to have extended operating hoursNews
|Rachael Mutabasi
|1 day ago
Judge awards athlete lion’s share of matrimonial property after husband fails to prove financial inputNews
|Carolyne Kubwa
|1 day ago
Sh3.4 million narcotics seized as DCI arrests suspected drug courier, alleged recruiter at Mombasa airportCoast
|Farhiya Hussein
|22 hours ago

High Court suspends Ruto’s order placing IPOA under Interior MinistryNational
|Carolyne Kubwa
|21 hours ago
New guidance offers hope for reducing the global toll of dementiaHealth
|UN News
|7 hours ago
