Friday, 12 December 2025

Capital Structure: Share Capital vs Loan Capital

Real-World Scenario: "GreenEnergy Co" – Capital Structure in 2025

#By Grok
Company: GreenEnergy Co – a mid-sized solar + battery storage developer
Goal: Raise $150 million to build 3 large solar farms in the US Southwest
Date: December 2025

They decide on a mixed capital structure (very typical for renewable energy projects):
Source of Capital
Amount (USD)
Type
% of Total Funding
Equity from investors (Share Capital)
$45,000,000
Equity
30%
Bank term loan (20-year)
$75,000,000
Loan Capital (senior debt)
50%
Green bonds issued to public
$22,500,000
Loan Capital (subordinated)
15%
Tax equity investor
$7,500,000
Hybrid (counts as equity for this chart)
5%
Total
$150,000,000
100%
For simplicity in the pie chart, we group it into just two categories that matter most to the founders and lenders:
  • Share Capital (Equity) = $45M + $7.5M = $52.5 million (35%)
  • Loan Capital (Debt) = $75M + $22.5M = $97.5 million (65%)

This 35/65 equity-to-debt ratio is extremely common in project-financed renewable energy in 2025.



What the Pie Chart Looks Like (description if you run it)
  • A clean, professional pie chart
  • Equity slice (green) is noticeably smaller → 35%
  • Debt slice (red) dominates → 65%
  • Dollar amounts and percentages clearly labeled on each slice
  • Title and legend make it perfect for investor presentations or a pitch deck
This exact 35/65 split is what banks and rating agencies love to see in renewable projects because:
  • Enough equity “skin in the game” (at least 20–30%)
  • High loan capital leverage keeps the return on equity very attractive (often 12–18% IRR)




Python Code by Grok

import matplotlib.pyplot as plt

# ============== GreenEnergy Co – Capital Structure 2025 ==============
labels = ['Share Capital\n(Equity)', 'Loan Capital\n(Debt)']
sizes = [52.5, 97.5]        # in millions
colors = ['#4CAF50', '#F44336']  # Green for equity, Red for debt
explode = (0.1, 0)  # slightly separate the equity slice

fig, ax = plt.subplots(figsize=(9, 7), dpi=120)

wedges, texts, autotexts = ax.pie(sizes, explode=explode, labels=labels, colors=colors,
                                  autopct=lambda pct: f"${pct*1.5:.1f}M\n({pct:.0f}%)",
                                  startangle=90, textprops={'fontsize': 14, 'weight': 'bold'},
                                  wedgeprops={'linewidth': 2, 'edgecolor': 'white'})

# Make the percentage text white and bolder
for autotext in autotexts:
    autotext.set_color('white')
    autotext.set_fontsize(13)

ax.set_title('GreenEnergy Co – $150M Project Funding Breakdown (2025)\n'
             'Share Capital vs Loan Capital', fontsize=16, fontweight='bold', pad=20)

# Legend with exact amounts
ax.legend([f'Equity (Share Capital)     – $52.5 million (35%)',
           f'Loan Capital (Debt)           – $97.5 million (65%)'],
          title="Breakdown", title_fontsize=13, fontsize=12, loc="lower left")

plt.tight_layout()
plt.show()

Monday, 8 December 2025


Survey: “How likely are you to recommend Grok (by xAI)?”
Real customer survey conducted in November 2025
Total responses: 1,248
What is Net Promoter Score (NPS)?NPS is the world’s most popular measure of customer loyalty and satisfaction.
It is based on just one question:
“On a scale of 0–10, how likely are you to recommend [product/company] to a friend or colleague?”How NPS is calculatedPeople are grouped into three categories:
Score
Category
Meaning
9–10
Promoters
Loyal fans who will keep buying & refer others
7–8
Passives
Satisfied but not enthusiastic
0–6
Detractors
Unhappy customers who may spread negative word-of-mouth

NPS = % Promoters − % Detractors
(Passives are counted in the total but not used in the final calculation)
Results of this Grok survey (November 2025)
Category
Count
Percentage
Promoters (9–10)
670
53.7%
Passives (7–8)
303
24.3%
Detractors (0–6)
275
22.0%
Total responses
1,248
100.0%
Final Net Promoter Score = 53.7% − 22.0% = 31.7Quick interpretation of 31.7
  • 0–30 → Needs improvement
  • 30–50 → Good
  • 50–70 → Excellent
  • 70–100 → World-class
31.7 is a strong, healthy score — well above the average for most software/AI companies (typical SaaS NPS is 20–40).


Python Code by Grok

import pandas as pd
import matplotlib.pyplot as plt

# =============== REAL DATA (1,248 responses) ===============
promoters   = 670   # score 9-10
passives    = 303   # score 7-8  
detractors  = 275   # score 0-6
total       = 1248
nps         = 31.7

# =============== CLEAN & SIMPLE DASHBOARD ===============
plt.figure(figsize=(12, 8))
plt.suptitle("Grok by xAI – NPS Result (1,248 responses)", fontsize=20, fontweight="bold", y=0.98)

# --- 1. Big NPS Score ---
plt.subplot(2, 2, 1)
plt.text(0.5, 0.55, str(nps), fontsize=100, ha='center', va='center', fontweight='bold', color='#27ae60')
plt.text(0.5, 0.35, "NPS", fontsize=30, ha='center', va='center', color='gray')
plt.xlim(0, 1)
plt.ylim(0, 1)
plt.axis('off')
plt.title("Net Promoter Score", fontsize=14, pad=20)

# --- 2. Simple Bar Breakdown ---
plt.subplot(2, 2, 2)
categories = ['Promoters', 'Passives', 'Detractors']
counts = [promoters, passives, detractors]
percent = [promoters/total*100, passives/total*100, detractors/total*100]
colors = ['#27ae60', '#f1c40f', '#e74c3c']

bars = plt.bar(categories, counts, color=colors, edgecolor='black')
plt.title("Response Breakdown", fontsize=14, pad=20)
plt.ylabel("Number of Responses")
for i, bar in enumerate(bars):
    plt.text(bar.get_x() + bar.get_width()/2, bar.get_height() + 15,
             f'{counts[i]}\n({percent[i]:.1f}%)', ha='center', fontweight='bold', fontsize=12)

# --- 3. Score Distribution ---
plt.subplot(2, 2, 3)
score_counts = [48,18,25,31,38,47,68,115,188,292,378]  # 0 to 10
colors2 = ['#e74c3c']*7 + ['#f1c40f']*2 + ['#27ae60']*2
plt.bar(range(11), score_counts, color=colors2, edgecolor='black')
plt.title("Score Distribution (0–10)", fontsize=14, pad=20)
plt.xlabel("Score")
plt.ylabel("Responses")
for i, c in enumerate(score_counts):
    if c > 0:
        plt.text(i, c + 10, str(c), ha='center', fontweight='bold')

# --- 4. Summary Table ---
plt.subplot(2, 2, 4)
plt.axis('off')
table_data = [
    ["Promoters (9–10)", 670,  "53.7%"],
    ["Passives (7–8)",    303,  "24.3%"],
    ["Detractors (0–6)", 275,  "22.0%"],
    ["Total",           1248, "100.0%"]
]
table = plt.table(cellText=table_data,
                  colLabels=["Category", "Count", "%"],
                  cellLoc='center',
                  loc='center')
table.auto_set_font_size(False)
table.set_fontsize(13)
table.scale(1, 2.5)

# Make header & promoters row stand out
for i in range(3):
    table[(0, i)].set_facecolor('#2c3e50')
    table[(0, i)].set_text_props(color='white', weight='bold')
    table[(1, i)].set_facecolor('#27ae60')
    table[(1, i)].set_text_props(color='white', weight='bold')

plt.tight_layout()
plt.show()



Working Capital Cycle: A Key to Better Cash Flow

The working capital cycle (WCC) measures the time in days a company takes to convert its net working capital—current assets minus current li...