African firms trailing in use of digital tech for business growth – IFC study

African firms trailing in use of digital tech for business growth – IFC study

IFC Vice President-Africa Sergio Pimenta, Managing Director Mukhtar Diop, and Vice President for Economics and Private Sector Development Susan Lund display the newly launched “Digital Opportunities in African Businesses” report, during the 2024 Africa CEO Forum in Kigali, Rwanda, on May 17, 2024. (Photo: X/Sergio Pimenta)

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.

Several ongoing challenges hinder the full adoption of digital technologies, among them the high cost of equipment in Sub-Saharan Africa

Less than one in three firms that have adopted digital technologies make intensive use of them for business purposes, despite evidence that it is positively associated with productivity, according to a report from the International Finance Corporation (IFC).
The report, based on nationally representative data from Kenya, Burkina Faso, Ethiopia, Ghana, Malawi, and Senegal, indicates that 86 per cent of firms with five or more employees have access to digital enablers like mobile phones, computers, or the internet.
However, only 24 per cent use these technologies intensively for business functions such as administration, planning, sales, and payments. A notable 23 per cent of digitally enabled firms do not utilise these technologies for productive tasks at all, while 39 per cent use them only sporadically.

More To Read

  • UN warns Ebola outbreak in DRC could push one million more people into poverty
  • Global supply chains keep workers poor: Three case studies show how cycle can be broken
  • Africa’s Sh51.6 trillion financing gap in focus as AfDB launches bold reform agenda

Several ongoing challenges hinder the full adoption of digital technologies, according to the “Digital Opportunities in African Businesses” report that the IFC launched in Kigali, Rwanda, during the 2024 Africa CEO Forum that took place on May 16- 17.
Machinery and equipment in Sub-Saharan Africa are 35–39 per cent more expensive than in the United States and 13–15 per cent pricier in North Africa.
Also, essential components for technology adoption, such as digital infrastructure, reliable electricity, and skilled workers, are relatively scarce and costly in Africa compared to other regions.

Latest Stories

  • DCI arrests man accused of conning job seekers Sh8.6 million in fake KDF, NPS and PSC recruitment scam
  • Wajir begins construction of Baitulmaal Level 4 Hospital to expand access to healthcare
  • The world has the science to transform food systems: The next frontier is scaling it
  • Nigeria demands probe after two citizens killed in South Africa amid rising xenophobia concerns

The financial constraints facing African businesses are also significant. The report highlights a higher rejection rate for loan applications from African firms seeking to upgrade their technology than businesses in other regions, further stymieing their growth potential.
Further, digital literacy presents a formidable barrier.
“In Africa, we need software engineers, IT specialists, math, and science graduates. There is a scarcity of people in these industries, which constrains development,” Susan Lund, IFC’s Vice President for Economics and Private Sector Development, said in an interview with African Business.
Infrastructure remains another critical issue.
According to the World Bank, half of Africa’s population—approximately 600 million people—lacks access to electrification. Despite these challenges, the report points to positive developments, such as the arrival of new submarine cables expected to expand internet access and lower broadband costs across the continent.
The IFC estimates that this enhanced connectivity could lead to a 10–11 oer cent annual decrease in broadband prices, but achieving this will require up to $6 billion of investment in middle- and last-mile infrastructure annually.
The report emphasises the crucial role of African governments in overcoming these barriers. Regulatory reforms promoting competition and a level playing field for businesses are vital to attracting investments and encouraging foreign participation.
In Africa, the potential market for digital services and infrastructure is vast, with over 600,000 formal businesses and 40 million microbusinesses poised to benefit substantially from digital processes and services.
Lund emphasised the importance of digital adoption for long-term economic growth and poverty reduction.
“We find that at every step of digital integration, businesses become more productive [and] revenues grow faster. The businesses [also] employ more people and pay higher wages, so when you think about long-term growth and bringing people out of poverty, digital adoption is really important.”
The report suggests that if digitalisation doesn’t encompass microbusinesses and informal businesses, which make up the majority of employment in Africa, its economic impact may be limited.
Currently, seven in 10 African workers are self-employed, and most employment is informal.
The full digital integration of both formal firms and micro and informal businesses could potentially enable about 15 per cent of all workers to transition from manual systems to digital technologies, significantly enhancing productivity and economic growth.

Other Topics To Read

Top Stories Today

  • Man arrested over Sh8.6 million fake KDF, police jobs scam
  • Saba Saba organisers notify police of peaceful march to Parliament
  • Wajir expands healthcare with new Baitulmaal Level 4 Hospital project
  • Why scaling innovation is the missing link in global food security
  • Abuja warns of diplomatic fallout after killing of Nigerians in South Africa
  • Kenya’s Stephen Yiembe lands historic UEFA Super Cup officiating role

`;
}

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


Wajir begins construction of Baitulmaal Level 4 Hospital to expand access to healthcareNorthern Kenya
|Abdirahman Khalif
|6 hours ago

The world has the science to transform food systems: The next frontier is scaling itClimate Change
|The Conversation
|6 hours ago

Government announces final repatriation flight for Kenyans in South AfricaNews
|Rachael Mutabasi
|1 day ago

Government releases Sh4 billion to settle NHIF hospital claimsHealth
|Lucy Mumbi
|14 hours ago

Somali Embassy hosts Kenya leaders, diplomats for 66th Independence Day celebrationsSomalia
|Abdirahman Khalif
|16 hours ago

Zamzam fires warning over ODM nomination as Mombasa succession politics intensifyPolitics
|Farhiya Hussein
|7 hours ago

UN reviews impact as US ends support for AUSSOM logisticsSomalia
|Abdirahman Khalif
|16 hours ago

Cherotich, Odira shine as Kenya dominates Prefontaine Classic despite rare Kipyegon defeatSports
|Erick Kariuki
|21 hours ago

Slum residents urged to adopt ‘localised solutions’ to mitigate climate change effectsNews
|Hussein Hassan
|1 day ago
IGAD pushes regional action to tackle plastic pollutionNews
|Rachael Mutabasi
|1 day ago

Share.
Leave A Reply

Exit mobile version