Treasury CS Mbadi vows to overhaul govt. payroll, reintroduce Finance Bill, 2024 proposals
Treasury CS Mbadi vows to overhaul govt. payroll, reintroduce Finance Bill, 2024 proposals
Read this story aloud
Listen to the clean text version of this article
Ready
4 min listen
Audio reading is not supported on this browser.
The new CS said a team is working on some of the proposals from the withdrawn Finance Bill 2024, which he said contain valuable revenue-raising measures
Newly appointed Treasury Cabinet Secretary John Mbadi has vowed to overhaul the payroll system for all government workers, pledging to integrate it with the Integrated Financial Management Information System (IFMIS).
Mbadi spoke on Monday during the official handover ceremony in Nairobi, where he officially took over the office.
He emphasised that the reforms were crucial for improving the efficiency of government financial management.
More To Read
- Treasury denies claims government plans to borrow Sh1 trillion from sacco savings for infrastructure fund
- Court petition challenges government’s constitutional authority to sell Safaricom shares
- Protests anniversary:The day Gen Z took to the streets and changed Kenya’s politics
- Kenya Sugar Board under scrutiny for issuing raw sugar import permit without clear legal backing
- Did Kenya’s Gen Z protests deliver change? Economist assesses what has really changed
- Experts warn of fiscal risks in Treasury’s Sh3.7 trillion revenue projections
“Clearly, if we cannot integrate our payroll systems from the state departments to IFMIS, which is our parent accounting system, and all the way to the Kenya Revenue Authority (KRA), then we don’t know what we are doing,” he said.
He urged anyone opposed to the reforms to step aside, asserting that he wouldn’t allow anyone to interrupt the process.
“So anyone who is standing in the way of that reform, please give way. Please allow Kenya to move forward. Don’t be an obstacle. Payroll reforms must be done,” he said.
Latest Stories
- Mombasa tuk-tuk operators issue seven-day ultimatum over new traffic penalties
- UHC workers officially shift to county payrolls as government confirms permanent jobs
- New study finds ovaries stay active after menopause, opening door to new treatments
- Mandera anti-illicit alcohol drive intensifies as officers target brewing and distribution rings
Mbadi highlighted the urgency of the reforms given the recent challenges, including the collapse of both the Finance Bill, 2023 and Finance Bill, 2024.
He, however, asserted that a team is working on some of the proposals from the withdrawn Finance Bill 2024, which he said contain valuable revenue-raising measures.
“Our team at the Treasury is already working on some of the proposals that were in the Finance Bill 2024 which we can now put together and see how to take them to Parliament, not as Finance Bill but as other proposals. We will do an extensive public participation,” he said.
Resource management
He also called for the efficient use of resource management due to the scarcity of resources.
“We don’t have an option now that resources have become scarce. We must prudently and efficiently use public resources by making public procurement systems efficient and not open to abuse. We must make sure end-to-end procurement works. If there are people who have benefited from the chaotic system, you have benefited enough. Now allow Kenyans to get value for money,” he said.
In addition, Mbadi said he is targeting an increase in state revenues by approximately Sh400 billion.
“If we could increase our revenue collection to GDP (Gross Domestic Product) by just about 3 per cent, I am sure that will give us almost an additional Sh400 billion. That will sort out a lot of our problems, bridge the budget deficit, and get the country moving forward,” he said.
Former Treasury CS Njuguna Ndung’u cautioned Mbadi about the current financial challenges, highlighting high tax expenditures which he said stood at 2.94 per cent as well as liquidity issues which affected payroll processing.
“The tax expenditures, which we wanted to address this fiscal year, stands at 2.94 per cent. Reducing these tax expenditures by even 2 per cent would significantly boost revenues,” Ndung’u said.
He also noted the impact of short-term debt on liquidity, which has delayed payroll clearance. He decried that the short-term debt, especially bills and bonds, has created a massive liquidity challenge.
“That is why sometimes we took up to three weeks to clear the payroll because of that liquidity problem, but it is not a solvency problem,” he said.
Ndung’u advised Mbadi to develop strategies to address these liquidity constraints and prevent solvency issues.
“What I would encourage my friend CS John Mbadi, this liquidity constraint requires strategic options to avoid creating solvency challenges. This requires a very strong signalling approach,” he said.
Other Topics To Read
Top Stories Today
- Groundbreaking study reveals ovaries keep working after menopause
- Mombasa tuk-tuk operators reject new traffic enforcement rules
- Government moves UHC workers to county payrolls
- Saba Saba 2026: Police announce checkpoints in Nairobi
- Government denies plan to tap sacco savings for National Infrastructure Fund
- Woman arrested as Mandera intensifies war on illicit alcohol trade
`;
}
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
Police recruitment dispute heads to Court of Appeal as NPS challenges NPSC powersNews
|Carolyne Kubwa
|12 hours ago
Peace team sounds alarm over gang attacks on worship centres and peaceful gatheringsNational
|Abdirahman Khalif
|10 hours ago
Treasury denies claims government plans to borrow Sh1 trillion from sacco savings for infrastructure fundNews
|Barack Oduor
|8 hours ago
Kenyans urged to join Saba Saba march to honour victims of alleged abductions, killingsNews
|Lucy Mumbi
|1 day ago
Fresh cracks emerge in United Opposition over selection of 2027 flagbearerPolitics
|Barack Oduor
|16 hours ago
Mandera anti-illicit alcohol drive intensifies as officers target brewing and distribution ringsNorthern Kenya
|Abdirahman Khalif
|8 hours ago
CS Duale, Attorney General Oduor face contempt case over failure to implement KNDI court orderNews
|Carolyne Kubwa
|12 hours ago
UHC workers officially shift to county payrolls as government confirms permanent jobsHealth
|Charity Kilei
|43 minutes ago
Saba Saba organisers notify police of planned peaceful demonstration to ParliamentNews
|Rachael Mutabasi
|1 day ago
New study links childhood abuse to permanent changes in brain’s emotional processingHealth
|Charity Kilei
|13 hours ago
