Business Information:
Type: Building Materials Supply & E-Commerce
Legal Structure: LLC (Limited Liability Company)
Locations: Prime retail outlets in Deira & Al Qusais
Online Reach: 10,000+ daily e-commerce visitors
Overview
Financial Highlights
Run Rate Sales: AED 6 Million
EBITDA Margin: 15%
Monthly Recurring Orders: Over 1,000
Outstanding Debt: AED 500,000 (to be cleared before handover)
What You Get:
A fully operational retail + online business with scalable infrastructure
Access to over 20-25 trusted B2B clients, including major real estate firms & interior designers
SEO-optimized e-commerce platform
Valid trade license and a trained workforce
Robust relationships in the construction, facility management, and real estate sectors
Assets Included:
AED 750,000 in stock & operational equipment
AED 175,000 in commercial vehicles (pickup + SUV)
Company website & valid trade licenses
Facilities:
2 strategically located rental stores in high-traffic zones of Dubai
Why to Invest:
Dubai’s construction and real estate markets continue to expand, creating ongoing demand for quality building materials. This business combines stable revenue, diverse clientele, and scalable operations—backed by an established brand and online footprint. Whether you are a seasoned commercial partner or an entrepreneur seeking a lucrative venture, this opportunity offers instant market entry, low overhead, and proven profitability in one of the Middle East’s fastest-growing sectors.
Persian Horizon is not just a service provider—we are a strategic partner dedicated to empowering your business with the tools, insights, and connections needed to thrive in Dubai’s competitive market.
';
});// ---- 03 INVESTMENT COMPARISON ----
var biz = businessOutput(d, d.region, mgmt);
var gold = totalCost * Math.pow(1.085, d.years);
var oil = totalCost * Math.pow(1.10, d.years);
var stock = totalCost * Math.pow(1.095, d.years);
var dep = totalCost * Math.pow(1.048, d.years);
var re = totalCost * Math.pow(1.072, d.years);
var car = totalCost * Math.pow(0.90, d.years);var io = [
{ n: "This Business", s: "profit + exit", v: biz.total, c: "#c08a2d", r: (risk === "low" ? 18 : (risk === "med" ? 28 : 42)), liquid: "Low" },
{ n: "Global Equities", s: "~10%", v: stock, c: "#1f7a5c", r: 16, liquid: "High" },
{ n: "Dubai Real Estate", s: "~7.5%", v: re, c: "#2f7d8c", r: 12, liquid: "Medium" },
{ n: "Gold", s: "~8.5%", v: gold, c: "#caa53c", r: 18, liquid: "High" },
{ n: "Oil", s: "~10% (volatile)", v: oil, c: "#8a5f1a", r: 32, liquid: "High" },
{ n: "Deposit/Sukuk", s: "~4.8%", v: dep, c: "#6c7a85", r: 1, liquid: "High" },
{ n: "Luxury Car", s: "~−10%", v: car, c: "#b4452f", r: 5, liquid: "Low" }
];
var imx = Math.max.apply(null, io.map(function(o){ return o.v; }), 1);
var iwin = io.reduce(function(a, b){ return b.v > a.v ? b : a; });
var ib = $("iBars"); ib.innerHTML = "";
io.forEach(function(o){ bar(ib, o.n, o.s, o.v, imx, o.c, o === iwin); });var rar = (yld + d.growth) / (risk === "low" ? 22 : (risk === "med" ? 32 : 48));
var stockRar = 10 / 16;
var t = $("iTag"), x = $("iTxt");
if (d.growth = stockRar * 1.15) {
t.className = "badge badge-green"; t.textContent = "✅ WORTH IT (Accepting Risk)";
x.innerHTML = "Risk-adjusted return (" + rar.toFixed(2) + ") beats equities (" + stockRar.toFixed(2) + ") and payback is ~" + (d.profit > 0 ? (d.price / d.profit).toFixed(1) : "—") + " yrs. Higher return comes with higher risk and lower liquidity.";
} else if (rar >= stockRar * 0.9) {
t.className = "badge badge-gold"; t.textContent = "⚖️ CONDITIONAL";
x.textContent = "Risk-adjusted return is close to the market. Worth it only if you buy below value or can lift growth/margin significantly.";
} else {
t.className = "badge badge-red"; t.textContent = "❌ NOT WORTH IT";
x.textContent = "Risk-adjusted return is below market. Either negotiate price down by " + Math.abs(gapPct).toFixed(0) + "% or find a better deal.";
}renderScatter(io, totalCost);// Comparison table
var ct = $("compareRows");
ct.innerHTML = "";
io.forEach(function(o) {
var annRet = Math.pow(o.v / totalCost, 1/d.years) - 1;
var riskAdj = annRet / (o.r / 10);
var taxImpact = o.n === "This Business" ? "9% (0% up to 375K)" : (o.n === "Global Equities" ? "15% CGT" : (o.n === "Dubai Real Estate" ? "5% VAT + 4% transfer" : "0-5%"));
var verdict = o === iwin ? "🏆 BEST" : (annRet > 0.08 ? "✅ Good" : (annRet > 0.04 ? "⚖️ Fair" : "❌ Poor"));
var vClass = o === iwin ? "best" : (annRet
' + o.n + '
' + fmt(o.v) + '
' + fmtPct(annRet, 1) + '
' + o.r + '%
' + o.liquid + '
' + riskAdj.toFixed(2) + '
' + taxImpact + '
' + verdict + '
';
});// ---- 04 CAPITAL INCREASE ----
var capPct = +$("capPct").value || 0;
var capAmt = +$("capAmt").value || 0;
var inj = capAmt > 0 ? capAmt : d.price * capPct / 100;
var hurdle = 0.10;
var reqYield = yld / 100;
var target15 = 0.15, target20 = 0.20;$("capKpis").innerHTML =
'
Current business yield
' + yld.toFixed(1) + '%
' +
'
Market hurdle rate
' + (hurdle * 100).toFixed(0) + '%
' +
'
Extra profit needed (current yield)
' + fmt(inj * Math.max(reqYield, hurdle)) + '
';var crt = $("capRows");
crt.innerHTML = "";
[10, 25, 50, 100, 200].forEach(function(pc) {
var x = d.price * pc / 100;
var newCap = d.price + x;
var profitCurrent = x * reqYield;
var profitMarket = x * hurdle;
var profit15 = x * target15;
var profit20 = x * target20;
var breakeven = reqYield > 0 ? (x / (d.profit + profitCurrent) * 12).toFixed(1) : "—";
crt.innerHTML += '
+' + pc + '%
' + fmt(newCap) + '
' + fmt(profitCurrent) + '
' + fmt(profitMarket) + '
' + fmt(profit15) + '
' + fmt(profit20) + '
' + breakeven + ' mo
';
});$("capVerdict").className = "verdict" + (reqYield >= hurdle ? "" : " warn");
$("capVerdict").innerHTML = reqYield >= hurdle
? "✅ Capital injection makes sense. Your current commercial allocation where applicable(" + yld.toFixed(1) + "%) beats the market hurdle (10%). For this injection of " + fmt(inj) + ", you must generate at least " + fmt(inj * reqYield) + " in extra annual profit. If the new capital earns 15%, that's " + fmt(inj * 0.15) + "/yr. If it earns 20%, that's " + fmt(inj * 0.20) + "/yr — a 2× return on the injection itself."
: "⚠️ Capital injection is risky. Your current commercial allocation where applicable(" + yld.toFixed(1) + "%) is below the market hurdle (10%). Every extra dirham must return at least 10% — otherwise that money is better in equities or real estate. Focus on improving current operations before expanding.";// Capital scenarios
var cs = $("capScenarios");
cs.innerHTML = "";
var scenarios = [
{ pct: 25, label: "Conservative (+25%)", desc: "Small expansion, same team" },
{ pct: 50, label: "Moderate (+50%)", desc: "New location or product line" },
{ pct: 100, label: "Aggressive (+100%)", desc: "Full expansion, new market" }
];
scenarios.forEach(function(sc) {
var amt = d.price * sc.pct / 100;
var need = amt * Math.max(reqYield, hurdle);
var need15 = amt * 0.15;
cs.innerHTML += '
';
});// ---- 09 MANAGEMENT ----
var ooProfit = d.profit;
var ooVal = valuation(ooProfit, d.sector, d.region, "high", d.growth, "owner");
var mgProfit = Math.max(0, d.profit - d.mgr);
var mgVal = valuation(mgProfit, d.sector, d.region, "low", d.growth, "managed");$("oo_income").textContent = fmt(ooProfit);
$("oo_exit").textContent = fmt(ooVal);
$("oo_mult").textContent = multiple(d.sector, d.region, "high", d.growth, ooProfit, "owner").toFixed(2) + "×";
$("mg_income").textContent = fmt(mgProfit);
$("mg_exit").textContent = fmt(mgVal);
$("mg_mult").textContent = multiple(d.sector, d.region, "low", d.growth, mgProfit, "managed").toFixed(2) + "×";var exitGap = ooVal > 0 ? Math.round((mgVal - ooVal) / ooVal * 100) : 0;
var incGap = fmt(ooProfit - mgProfit);
$("mgmtVerdict").className = "verdict" + (mgVal >= ooVal ? "" : " warn");
$("mgmtVerdict").innerHTML = mgVal >= ooVal
? "✅ Managed wins. You pocket " + incGap + " less per year, but you go passive and the exit value is " + exitGap + "% higher. If your goal is freedom, lifestyle, and a richer exit → hire a manager. The business becomes a true asset, not a job."
: "⚠️ Owner-run wins on cash. Without a manager you pocket " + incGap + " more per year, but you work 40-60 hrs/week. The business depends on you, so it sells for less. If you want maximum cash now and enjoy operations → run it yourself. Plan to systemize within 2 years.";// ---- 10 CONSULTATION ----
$("recPhone").textContent = d.price = 1000000 && d.price 5000000 ? "Recommended for you ✓" : "";// ---- 11 REPORT ----
$("repDate").textContent = new Date().toLocaleDateString("en-GB", { day: '2-digit', month: 'short', year: 'numeric' });
var recCons = d.price > 5000000 ? "an in-person meeting" : (d.price >= 1000000 ? "an online deep-dive" : "a phone consultation");var repHTML =
"Business Opportunity Summary
" +
"Tax Advantage (UAE): Net profit " + fmt(uaeNet) + " vs world average " + fmt(worldNet) + " · " + advVsAvg + "% more after-tax wealth
" +
"Capital Increase: At current yield, every 100% capital increase needs " + fmt(d.price * reqYield) + " extra profit/yr to maintain returns
" +
"Recommended Next Step: " + recCons + "
" +
"
" +
"This report is generated by the Persian Horizon Business Intelligence Suite. Indicative only — not financial advice or a guaranteed return. Consult a licensed advisor before any decision." +
"
";$("repBody").innerHTML = repHTML;
window.__rep = repHTML.replace(/]+>/g, ' ').replace(/\s+/g, ' ').trim();
}// ==================== EVENT LISTENERS ====================
$("riskSeg").addEventListener("click", function(e) {
var b = e.target.closest("button");
if (!b) return;
risk = b.dataset.r;
[].forEach.call(this.querySelectorAll("button"), function(x) {
x.setAttribute("aria-pressed", x === b ? "true" : "false");
});
calc();
});$("mgmtSeg").addEventListener("click", function(e) {
var b = e.target.closest("button");
if (!b) return;
mgmt = b.dataset.m;
[].forEach.call(this.querySelectorAll("button"), function(x) {
x.setAttribute("aria-pressed", x === b ? "true" : "false");
});
calc();
});$("consCards").addEventListener("click", function(e) {
var c = e.target.closest(".cc");
if (!c) return;
cons = c.dataset.c;
[].forEach.call(this.querySelectorAll(".cc"), function(x) {
x.setAttribute("aria-pressed", x === c ? "true" : "false");
});
});var inputIds = ["price", "profit", "growth", "years", "transfer", "sector", "emirate", "mgrCost", "capPct", "capAmt", "rePrice", "reYield", "reGrowth", "reService", "reVacancy", "reMortgage", "carPrice", "carDeprec", "carCost"];
inputIds.forEach(function(id) {
var el = $(id);
if (el) {
el.addEventListener("input", calc);
el.addEventListener("change", calc);
}
});$("cBook").addEventListener("click", function() {
var n = $("cName").value.trim(), p = $("cPhone").value.trim(), e = $("cEmail").value.trim();
if (!n || p.replace(/\D/g, "").length " + map[cons] + " consultation booked! We'll contact you on WhatsApp within 24 hours. (Lead → CRM)";
});$("cSave").addEventListener("click", function() {
$("cMsg").style.color = "var(--blue)";
$("cMsg").textContent = "💾 Analysis saved to your account. Access anytime.";
});$("cShare").addEventListener("click", function() {
if (navigator.share) {
navigator.share({ title: "UAE Business Review", text: window.__rep || "", url: window.location.href });
} else {
$("cMsg").style.color = "var(--blue)";
$("cMsg").textContent = "🔗 Report link copied to clipboard.";
}
});$("repCopy").addEventListener("click", function() {
if (navigator.clipboard) navigator.clipboard.writeText(window.__rep || "");
$("repCopy").textContent = "Copied ✓";
setTimeout(function(){ $("repCopy").textContent = "📋 Copy Report Text"; }, 2000);
});$("repEmail").addEventListener("click", function() {
var subject = "UAE Business Review - Persian Horizon";
var body = window.__rep || "";
window.location.href = "mailto:?subject=" + encodeURIComponent(subject) + "&body=" + encodeURIComponent(body);
});// Smooth scroll for nav links
document.querySelectorAll('a[href^="#"]').forEach(function(a) {
a.addEventListener('click', function(e) {
e.preventDefault();
var target = document.querySelector(this.getAttribute('href'));
if (target) target.scrollIntoView({ behavior: 'smooth', block: 'start' });
});
});// Initial calculation
calc();// ---- IFRAME INTEGRATION ----
if (window.self !== window.top) {
document.body.classList.add('ph-in-iframe');
}setInterval(function() {
if (window.parent !== window) {
window.parent.postMessage({
type: 'phCalcHeight',
height: document.documentElement.scrollHeight
}, '*');
}
}, 500);})();