YOUR BUSINESS IS OUR BUSINESS: Banning and burning chickens business

What you need to know:

About a month ago, I urged Tanzanian authorities to consider harnessing the huge poultry business potential to accelerate industrialization.

Why’d a struggling, least-developed country like Tanzania incinerate 6,400 chicks worth Sh12.5 million imported by a budding entrepreneur?

Let me begin at the beginning…

About a month ago, I urged Tanzanian authorities to consider harnessing the huge poultry business potential to accelerate industrialization.

Despite the comparative advantages in poultry-farming – and the potential benefits for investors, including jobs-creation – the poultry industry is another little-thought-of opportunity that’s a sure-fire path to all-inclusive industrialization. [See ‘Tap into the huge poultry potential to industrialize.’ The Citizen: October 12, 2017].

Poultry-farming is generally done at two levels: small-scale ‘indigenous’ chicken-keeping (mostly by rustics), and ‘commercial’ farming on a larger-scale, involving breeder farms, hatcheries, layers-and-broilers farms, processors and traders.

This economic sub-sector is a good industry-based jobs-creator, with the competitive advantage as a proteins source compared with four-legged beasts like cattle, goats, sheep, pigs... Poultry meat production increased by 6.2 per cent in five years – from 93,534MT in 2010/11 to 99,540MT in 2014/2015 – while, say, ‘total meat production’ rose by 18.72 per cent, from 503,496MT to 597,757MT!

But, that growth rate isn’t commensurate with the poultry business potential, including comparative advantages! Indeed, poultry-farming isn’t ‘for the birds’ – pun unintended here. It must be promoted most vigorously for countrywide industrialization.

Unfortunately, that isn’t the case on the ground… Instead, some government authorities have been throwing spanners in the works – thereby impeding growth of the poultry business!

The latest such proverbial ‘spanner’ was thrown into Tanzania’s poultry business by regulatory authorities who, on October 31, 2017, (conspiratorially perhaps?) incinerated 6,400 hapless chicks worth Sh12.5 million at Namanga on the Kenya/Tanzania border!

Reportedly, the chicks were confiscated from a 23-year old entrepreneur-in-the-making, Ms Mary Matia – for allegedly being smuggled in from Kenya, and also as a precaution against possible avian diseases outbreak.

The destruction was done under cover of the TFDA and TRA statutes, as well as the Veterinary Act (2003) and the Animal Diseases Act (2003). [See ‘Public irked as Authorities burn chicks,’ The Citizen: Nov. 1, 2017].

Indeed, Tanzania did ban chicken imports on veterinary-cum-human health grounds – plus sheer protectionism in all its ramifications.

But, the chicks-burning raises questions that need answers. For example: were the chicks vetted to determine their ‘veterinary health’ status?

Why was the plea by the owner, Maria, to re-export them peremptorily denied? How’ll she repay the loan?

Why were 1,300 ‘Kenyan’ cattle ‘smuggled’ in to graze about the same time auctioned by Tanzania for Sh200m over fears they’d spread diseases – and NOT incinerated like the Matia chicks?

Why don’t the authorities also incinerate the million-plus wildebeeste when they return to Tanzania during their to-and-fro annual migration across Serengeti/Masai-Mara? In summary whereof: chicks are incinerated; cattle are auctioned; wildebeeste are given VIP treatment…!

Oh, Tanzania’s poultry sub-sector is a chaotic, crazy-quilt business.

While one school of thought ‘sees’ chicken imports as “killing Dar’s poultry farming” [See The Citizen, December 18, 2013], another sees “importation of chickens healthy for local (Tanzanian) poultry farming…” [Daily News-Dar es Salaam; December 31, 2014]!

Sheesh!

To efficaciously industrialize the poultry business, we really need to humbly go back to the drawing boards… Tears!

Mr Lyimo is a socioeconomic commentator based in Dar

* * If no #mcl-market-ticker element exists, the widget inserts itself right * after this var sel = thisScript && thisScript.getAttribute("data-target"); if (sel) { var t = document.querySelector(sel); if (t) return t; } // 2) A dedicated mount element the host page provides. var el = document.getElementById(CONFIG.targetId); if (el) return el; // 3) Fallback: insert right after this script tag. el = document.createElement("div"); el.id = CONFIG.targetId; if (thisScript && thisScript.parentNode) { thisScript.parentNode.insertBefore(el, thisScript.nextSibling); } else { document.body.appendChild(el); } return el; } // ---- Data pipeline (identical logic to the standalone banner) ------------ function apiUrl(path) { if (!path) return path; if (/^https?:\/\//i.test(path)) return path; return CONFIG.apiBase + (path.charAt(0) === "/" ? "" : "/") + path; } function toNum(v) { var n = parseFloat(String(v == null ? "" : v).replace(/,/g, "")); return isFinite(n) ? n : null; } function fmtNum(v) { var n = parseFloat(String(v).replace(/,/g, "")); if (!isFinite(n)) return String(v == null ? "" : v); var d = Math.abs(n) >= 1 ? 2 : 4; return n.toLocaleString("en-US", { minimumFractionDigits: d, maximumFractionDigits: d }); } function changeClass(d) { if (d == null || Math.abs(d) < 1e-9) return "flat"; return d > 0 ? "up" : "down"; } function arrow(d) { if (d == null || Math.abs(d) < 1e-9) return "▬"; return d > 0 ? "▲" : "▼"; } async function fetchFiles(category, count) { var res = await fetch(apiUrl("/api/files?category=" + category)); if (!res.ok) throw new Error("list " + category + " " + res.status); var list = await res.json(); return Array.isArray(list) ? list.slice(0, count || 1) : []; } async function parseSheet(meta) { var res = await fetch(apiUrl(meta.url)); if (!res.ok) throw new Error("download " + res.status); var buf = await res.arrayBuffer(); var wb = XLSX.read(buf, { type: "array" }); return XLSX.utils.sheet_to_json(wb.Sheets[wb.SheetNames[0]], { defval: "" }); } function buildStocks(rows) { var items = []; rows.forEach(function (r) { var sym = r["Symbol"] || r["symbol"]; if (!sym) return; var close = toNum(r["Close"]); if (close == null) return; var prev = toNum(r["Prev Close"] || r["Previous Close"]); var delta = prev != null ? close - prev : null; var pct = (delta != null && prev) ? (delta / prev) * 100 : null; items.push({ sym: sym, val: fmtNum(close), delta: delta, pct: pct }); }); return items; } function buildForex(rows, prevRows) { var pmean = {}; (prevRows || []).forEach(function (r) { if (r["Currency"]) pmean[r["Currency"]] = toNum(r["Mean"]); }); var items = []; rows.forEach(function (r) { var cur = r["Currency"]; if (!cur) return; var mean = toNum(r["Mean"]), buy = toNum(r["Buying"]), sell = toNum(r["Selling"]); if (buy == null && sell == null && mean == null) return; var pv = pmean[cur]; var ref = mean != null ? mean : (buy != null && sell != null ? (buy + sell) / 2 : (buy != null ? buy : sell)); var delta = pv != null ? ref - pv : null; var pct = (delta != null && pv) ? (delta / pv) * 100 : null; items.push({ sym: cur, buy: buy != null ? fmtNum(buy) : "—", sell: sell != null ? fmtNum(sell) : "—", delta: delta, pct: pct }); }); var order = CONFIG.majorCurrencies; items.sort(function (a, b) { var ia = order.indexOf(a.sym), ib = order.indexOf(b.sym); if (ia === -1) ia = 999; if (ib === -1) ib = 999; if (ia !== ib) return ia - ib; return a.sym < b.sym ? -1 : 1; }); return items; } function chgHTML(it) { var cls = changeClass(it.delta); if (it.delta == null) return ''; var pctTxt = it.pct != null ? (it.pct >= 0 ? "+" : "") + it.pct.toFixed(2) + "%" : ""; return '' + arrow(it.delta) + " " + pctTxt + ""; } function stockHTML(it) { return '' + it.sym + '' + it.val + "" + chgHTML(it) + ""; } function forexHTML(it) { return '' + it.sym + "" + '' + CONFIG.labels.buy + ' ' + it.buy + ' · ' + CONFIG.labels.sell + ' ' + it.sell + "" + chgHTML(it) + ""; } function pill(t, k) { return '' + t + ""; } function render(track, stocks, forex, dateLabel) { if ((!stocks || !stocks.length) && (!forex || !forex.length)) { track.innerHTML = '
' + CONFIG.labels.unavailable + "
"; track.style.animation = "none"; return; } var parts = []; if (stocks && stocks.length) { parts.push(pill(CONFIG.labels.stocks)); stocks.forEach(function (s) { parts.push(stockHTML(s)); }); } if (forex && forex.length) { parts.push(pill(CONFIG.labels.forex, "forex")); forex.forEach(function (f) { parts.push(forexHTML(f)); }); } if (dateLabel) parts.push('' + CONFIG.labels.updated + ": " + dateLabel + ""); var content = parts.join(""); track.innerHTML = content + content; // duplicated for a seamless loop requestAnimationFrame(function () { var dur = Math.max(20, Math.round((track.scrollWidth / 2) / CONFIG.pxPerSecond)); track.style.animation = "none"; void track.offsetWidth; track.style.animation = "mcl-scroll " + dur + "s linear infinite"; }); } async function load(track) { try { var results = await Promise.allSettled([fetchFiles("hisa", 1), fetchFiles("fedha", 2)]); var stocks = [], forex = [], dateLabel = ""; if (results[0].status === "fulfilled" && results[0].value.length) { var hf = results[0].value[0]; dateLabel = hf.date || ""; stocks = buildStocks(await parseSheet(hf)); } if (results[1].status === "fulfilled" && results[1].value.length) { var ff = results[1].value; var curRows = await parseSheet(ff[0]); var prevRows = ff[1] ? await parseSheet(ff[1]) : []; forex = buildForex(curRows, prevRows); if (!dateLabel) dateLabel = ff[0].date || ""; } render(track, stocks, forex, dateLabel); } catch (e) { if (!track.querySelector(".mcl-item")) { track.innerHTML = '
' + CONFIG.labels.unavailable + "
"; track.style.animation = "none"; } } } function mountAndRun() { injectStyle(); var mount = getMount(); mount.innerHTML = '
' + '
' + CONFIG.brand + "" + '' + CONFIG.live + "
" + '
' + CONFIG.labels.unavailable + "
"; var track = mount.querySelector(".mcl-track"); function go() { load(track); setInterval(function () { load(track); }, CONFIG.refreshMs); } if (window.XLSX) { go(); return; } var sc = document.createElement("script"); sc.src = "https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.18.5/xlsx.full.min.js"; sc.onload = go; sc.onerror = function () { track.innerHTML = '
' + CONFIG.labels.unavailable + "
"; }; (document.head || document.documentElement).appendChild(sc); } if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", mountAndRun); } else { mountAndRun(); } })();