South Africa Economic Sentiment Analysis Using AI

This article shows how to perform semantic analysis of qualitative reports using automated parsing, scoring and weighting, leveraging a custom-trained AI model.

Background

In 2017, I wrote an extensive article in the South African newspaper Business Times: Ending South Africa’s Forever Recession. As part of the background preparation, I did a semantic analysis of South Africa’s economic sentiment (v1). Even in 2017 it was possible to do this with word cloud tools. Primitive, but they worked.

In 2024, the article was updated. By then, modern AI tools were available to perform the semantic analysis (v2). The analysis was again updated in early 2026 to incorporate the latest reports on the country (v3).

All aspects of the analyses are automated except the final quality control.

Findings

The graph below shows our latest assessment. As a semantic analysis, it evaluates the qualitative wording in the reports instead of looking at quantitative data. It then converts this into scores across eight measures. The scores are weighted and summarized into an overall score.

The bottom graph shows the summary for 16 countries to give more context to the South African assessment. We can replicate this for most countries in the world, with the full details.

The graphs are made with Mermaid v11, a visualization tool suitable for demos and proof-of concept efforts, like this. It also reduces doc-rot since the code is open source and transparent.


SOUTH AFRICA ECONOMIC SENTIMENT COMPONENTS
As of January 2026

flowchart TD %% ========= NODES ========= GE["π—šπ—Ÿπ—’π—•π—”π—Ÿ π—˜π—‘π—©π—œπ—₯π—’π—‘π— π—˜π—‘π—§
Score: 3/10
''Risks remain tilted to the downside''"]:::risk FP["π—™π—œπ—¦π—–π—”π—Ÿ π—£π—’π—Ÿπ—œπ—–π—¬
Score: 3/10
''Debt remains high and rising''"]:::risk GJ["π—šπ—₯𝗒π—ͺ𝗧𝗛 & 𝗝𝗒𝗕𝗦
Score: 4/10
''Growth remains constrained by bottlenecks''"]:::risk MP["π— π—’π—‘π—˜π—§π—”π—₯𝗬 π—£π—’π—Ÿπ—œπ—–π—¬
Score: 8/10
''Adoption of a lower inflation target is a major policy achievement''"]:::strong MS["𝗠𝗔𝗖π—₯𝗒 π—¦π—§π—”π—•π—œπ—Ÿπ—œπ—§π—¬
Score: 6/10
''Frameworks support resilience''"]:::neutral FS["π—™π—œπ—‘π—”π—‘π—–π—œπ—”π—Ÿ π—¦π—˜π—–π—§π—’π—₯
Score: 8/10
''The banking system has remained sound''"]:::strong SR["𝗦𝗧π—₯𝗨𝗖𝗧𝗨π—₯π—”π—Ÿ π—₯π—˜π—™π—’π—₯𝗠𝗦
Score: 5/10
''Implementation needs to accelerate''"]:::mixed LC["π—Ÿπ—’π—‘π—š-π—§π—˜π—₯𝗠 π—–π—’π—‘π—™π—œπ——π—˜π—‘π—–π—˜
Score: 5/10
''Outlook depends on reform delivery''"]:::mixed %% ========= RELATIONSHIPS ========= GE -->|Downside risks| GJ FP -->|Constrains growth| GJ MP -->|Anchors inflation| MS MS -->|Enables| GJ MP -->|Strengthens| FS FS <-->|Depends on progress| SR SR -->|Pace insufficient| LC LC <-->|Feedback loop| GJ %% ========= INVISIBLE LAYOUT CONTROL ========= ANCHOR[" "]:::anchor %% ========= SUMMARY (FORCED BELOW, NO VISIBLE ARROWS) ========= SUM["𝗦𝗨𝗠𝗠𝗔π—₯𝗬
Weighted average score:
5.05/10
''Strong monetary and financial anchors support stability, but fiscal constraints and slow reform implementation keep growth subdued''"]:::summary LC -.-> SUM:::anchor %% ========= STYLES ========= classDef strong fill:#E8F5E9,stroke:#1B5E20,stroke-width:2px,color:#111; classDef neutral fill:#E3F2FD,stroke:#0D47A1,stroke-width:2px,color:#111; classDef mixed fill:#FFF8E1,stroke:#FF6F00,stroke-width:2px,color:#111; classDef risk fill:#FDECEA,stroke:#B71C1C,stroke-width:2px,color:#111; classDef summary fill:#F5F5F5,stroke:#424242,stroke-width:2px,color:#111; classDef anchor fill:transparent,stroke:transparent;

Legend


How does South Africa compare to other nations? Below is a graph where the same method was applied to 16 select countries. Note that not only scores, but also weights, differ by country.


COMPARISON OF ECONOMIC SENTIMENT SCORES

--- config: xyChart: width: 550 themeVariables: xyChart: plotColorPalette: "#C00000,#7b3fe4,#2aa876,#d95f02" --- xychart-beta horizontal x-axis ["South Africa", "Switzerland", "Netherlands", "United States", "United Kingdom", "India", "Brazil", "China", "Nigeria", "Mexico", "Myanmar", "United Arab Emirates", "Saudi Arabia", "Qatar", "Oman", "Kuwait", "Bahrain"] y-axis "Weighted average score across 8 measures" 0 --> 10 %% Group A bar [5.1, -0.2, -0.2, -0.2, -0.2, -0.2, -0.2, -0.2, -0.2, -0.2, -0.2, -0.2, -0.2, -0.2, -0.2, -0.2, -0.2] %% Group B bar [-0.2, 8.0, 6.6, 5.7, 5.5, -0.2, -0.2, -0.2, -0.2, -0.2, -0.2, -0.2, -0.2, -0.2, -0.2, -0.2, -0.2] %% Group C bar [-0.2, -0.2, -0.2, -0.2, -0.2, 6.6, 6.3, 5.7, 5.6, 5.1, 2.3, -0.2, -0.2, -0.2, -0.2, -0.2, -0.2] %% Group D bar [-0.2, -0.2, -0.2, -0.2, -0.2, -0.2, -0.2, -0.2, -0.2, -0.2, -0.2, 7.1, 6.9, 6.8, 6.2, 6.0, 4.8]

Source: Various text-based documents from public institutions such as the IMF, World Bank, and local institutions; Tellusant AI model; Tellusant analysis