Designing a website with AI for suggesting hairstyles, makeup, color, and style.
Launching trilingual social media (Persian, Arabic, English).
Hiring professional beauticians from Iran, Turkey, Russia, Lebanon, the Philippines, and Egypt.
Renovation of the salon with professional lighting, smart mirrors, a private coffee shop, and a VIP section.
Launching a cosmetics and hygiene products store.
Launching in-salon bridal service, massage, Turkish bath, tarot, and photography.
Signing official contracts with international cosmetic brands.
Act now!
Don't miss this opportunity if you're looking to launch a successful HR consulting firm in the UAE.
Frequently Asked Questions
Is family residency also included in this plan?
Yes, work residency for you and family residency for your spouse and children are guaranteed in the first month.
How long does it take for the company to reach profitability?
Your company will reach its break-even point by the end of the sixth month, and profitability will begin in the seventh month.
Is there a guarantee of receiving international projects?
Yes, we will attract international and domestic projects for you through our communication networks.
Is the commercial partnership cost inclusive of all stages?
Yes, this cost includes company registration, residency, branding, infrastructure, team recruitment, and full support.
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); // volatile
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.";
}// Scatter plot
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 yield (" + 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 yield (" + 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();
}// ==================== SCATTER PLOT ====================
function renderScatter(data, cost) {
var container = $("scatterPlot");
var legend = $("scatterLegend");
cost = cost || 2000000;
// Clear existing points (keep axes)
var points = container.querySelectorAll('.scatter-point');
points.forEach(function(p){ p.remove(); });var maxRet = Math.max.apply(null, data.map(function(o){
var ret = Math.pow(o.v / cost, 1/5) - 1;
return Math.max(ret * 100, 0.1);
}));
var maxRisk = Math.max.apply(null, data.map(function(o){ return o.r; }));data.forEach(function(o) {
var ret = Math.pow(o.v / cost, 1/5) - 1;
var x = (ret * 100 / maxRet) * 80 + 10; // 10-90% width
var y = 90 - (o.r / maxRisk) * 80; // 10-90% height
var point = document.createElement('div');
point.className = 'scatter-point';
point.style.left = x + '%';
point.style.top = y + '%';
point.style.background = o.c;
point.setAttribute('data-label', o.n + ': ' + (ret * 100).toFixed(1) + '% ret, ' + o.r + '% risk');
container.appendChild(point);
});legend.innerHTML = data.map(function(o){
return '
' + o.n + '
';
}).join('');
}// ==================== DEAL GENERATOR ====================
function generateDeals(d) {
var platforms = ["Dubizzle", "Bayut", "Property Finder", "Businessbay", "Gulf Business", "LinkedIn"];
var industries = ["Services", "F&B", "Retail", "E-commerce", "Healthcare", "Trading", "SaaS"];
var emirates = ["Dubai", "Abu Dhabi", "Sharjah", "Ajman"];
var statuses = ["Active", "Urgent", "Under Offer", "New"];
var deals = [];
for (var i = 0; i " + 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();
})();