Listen to article
3 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.

EACC arrests three over alleged Sh4.8 million Igembe North NG-CDF fraud
Lucy Mumbi
·
6 hours agoRead nextOpens a fresh page.
KIPPRA notes that foreign currency-denominated projects have contributed to higher electricity costs due to exchange rate fluctuations and inflation pressures.
Kenya’s ambition to achieve universal electricity access by 2030 is being held back by a deep financing gap.
According to a new policy brief by Kenya Institute for Public Policy Research and Analysis (KIPPRA), unlocking fresh funding models will be critical to closing the remaining access deficit.
The state-owned think tank argues that inadequate financing across the electricity value chain remains one of the biggest obstacles slowing progress towards universal access, despite ongoing government initiatives to expand connectivity.
More To Read
- EACC arrests three over alleged Sh4.8 million Igembe North NG-CDF fraud
- Kenya hits VAT ceiling, leaving little to no room for further tax hikes, KIPPRA study shows
- Kenya could unlock Sh3.1 trillion economic gains through care infrastructure investment – study
- Mandera North solar station upgrade to expand electricity access to more than 1,000 customers
- MPs direct Energy CS to develop policy within a year for renegotiating power deals
- KETRACO begins review of five proposed high-voltage electricity projects worth up to Sh65 billion
It reveals that Kenya required about $14.8 billion (Sh1.9 trillion) in investment to implement planned energy projects between 2018 and 2022, but faced a financing shortfall of $8 billion (Sh1 trillion).
This is across key areas including generation, transmission, distribution and off-grid electrification.
The financing challenge comes as Kenya targets full electricity access under the United Nations Sustainable Development Goal 7 and the country’s Energy Transition and Investment Plan (2023-2050).
Latest Stories
- AfDB downgrades Kenya’s growth prospects to 4.6 per cent in 2026 on global headwinds
- WHO introduces shorter, safer treatment for deadly kala-azar disease
- Nyandarua Governor Badilisha defects from UDA to Gachagua’s DCP ahead of 2027 polls
- Sakaja seeks dismissal of contempt case, says new County Secretary appointment already underway
Current electricity access stands at 75 per cent nationally, with rural areas recording lower connectivity levels compared with urban regions.
To address the shortfall, KIPPRA reiterates that Kenya must move beyond traditional funding approaches and adopt innovative financing models that can attract more private capital and reduce exposure to foreign exchange risks.
One of the proposed solutions is increased use of long-term Power Purchase Agreements (PPAs) denominated in local currency to finance electricity generation projects.
KIPPRA notes that foreign currency-denominated projects have contributed to higher electricity costs due to exchange rate fluctuations and inflation pressures.
The institute also recommends expanding private sector participation in transmission and distribution through models such as Build Own Operate Transfer (BOOT), long-term concessions and merchant line arrangements, which have been adopted in countries including India, Brazil and Australia.
For electricity consumers, KIPPRA highlights Corporate Power Purchase Agreements (CPPAs) as a tool that can boost investment by providing long-term income certainty for power producers while giving businesses access to reliable electricity supply.
However, the policy brief cautions that financing reforms must be accompanied by stronger regulatory frameworks, improved accountability and institutional restructuring to ensure effective implementation.
“Further development of policies and regulations for these options is needed to enable efficient implementation and attract more financing,” the brief reads.
The report also identifies land acquisition challenges, including wayleave compensation delays, as a major barrier affecting infrastructure development and investor confidence.
Other Topics To Read
Top Stories Today
- Nyandarua Governor Badilisha defects from UDA to Gachagua’s DCP
- AfDB downgrades Kenya’s growth prospects to 4.6 per cent in 2026 on global headwinds
- WHO introduces shorter, safer treatment for deadly kala-azar disease
- Sakaja seeks dismissal of contempt case, says County Secretary appointment already underway
- Supreme Court asked to end ‘selective justice’ for PEV sexual violence survivors
- NCAJ revives election preparedness committee as justice sector unveils reforms ahead of 2027 polls
`;
}
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
Kenya seeks to establish public debt register as borrowing hits Sh12.82 trillionBusiness
|Lucy Mumbi
|6 hours ago

MPs set to review procurement Bill afresh as Ruto declines assent over investment concernsNews
|Lucy Mumbi
|6 hours ago
<img src="https://publish.eastleighvoice.co.ke/mugera_lock/uploads/2026/07/eastleighvoice-co-ke-2026-july-29-122921.webp" alt="Kenya secures Sh12.9 billion European Bank funding to expand SMEs credit access” loading=”lazy”>
Kenya secures Sh12.9 billion European Bank funding to expand SMEs credit accessBusiness
|Alfred Onyango
|4 hours ago

Ships stranded in Strait of Hormuz risk spreading invasive species worldwide, scientists sayNews
|Bashir Mbuthia
|3 hours ago

WHO introduces shorter, safer treatment for deadly kala-azar diseaseHealth
|Charity Kilei
|41 minutes ago

Lamu court jails man for 10 years or Sh50 million fine over drug trafficking convictionNews
|Farhiya Hussein
|7 hours ago

Court orders Governor Otuoma to release county records to Omtatah, affirms right to informationNews
|Carolyne Kubwa
|7 hours ago

KWS launches probe after 15 elephants die in Amboseli ecosystemNews
|XINHUA
|6 hours ago

High Court to rule on loud matatu music after Nairobi lawyer files lawsuitNews
|Carolyne Kubwa
|1 day ago

End of the road for historic Grogon garage as Nairobi plans 1,200-vehicle modern auto hubCity Affairs
|Lucy Mumbi
|1 day ago
