- 1

- Colombia
Realistic Economic System
Hey everyone,
I wanted to share a project I’ve been working on — a realistic economic system for simulation championships or private leagues, based on the Alfa Romeo 155 TI V6.
It’s designed to simulate the full financial management of a racing team — including income by position, fixed expenses, repair costs, insurance, loans, penalties, and final rewards.
The idea is that racing isn’t just about driving fast anymore, but also about surviving financially throughout a season.
🔧 Fully customizable:
You can adapt it to any car or category (DTM, GT3, etc.), tweak prices, rewards, or number of races.
It works for both multiplayer leagues and single-player mode if you want a more immersive and realistic management experience.
💬 Open to suggestions:
What would you add to make it more balanced or complete?
Would you adjust insurance percentages or damage costs?
Would you include extra expenses like tires per stint or fuel costs?
I’d love to hear the opinions of people who run leagues or organize private championships.
Full regulation below 👇
🏁 Official Economic System – Alfa Romeo 155 TI V6 Championship
Base vehicle: Alfa Romeo 155 TI V6Participants: 24 drivers (each representing an independent team)
Currency: USD
1. System goal
Simulate a realistic economy where each team manages its money and risk.Performance, damage, and strategic decisions (like whether to insure the car or not) directly affect financial survival.
2. Points and income per race
Position | Points | Income (USD) |
|---|---|---|
| 1 | 25 | 25,000 |
| 2 | 18 | 18,000 |
| 3 | 15 | 15,000 |
| 4 | 12 | 12,000 |
| 5 | 10 | 10,000 |
| 6 | 8 | 8,000 |
| 7 | 6 | 6,000 |
| 8 | 4 | 4,000 |
| 9 | 2 | 2,000 |
| 10 | 1 | 1,000 |
| 11–24 | 0 | 0 |
3. Fixed costs per race
Category | Cost (USD) | Description |
|---|---|---|
| Basic maintenance | 3,000 | Tires, brakes, oil change, general check-up. |
| Salaries (driver + crew) | 6,000 | Total pay for the driver and technical staff. |
| Logistics / paddock | 4,000 | Transport, lodging, food, travel expenses. |
4. Damage costs
Each car section has 5 damage levels: None, Minor, Moderate, Severe, Critical.Prices include both parts and labor.
A. Rims (per wheel)
Level | Cost (USD) |
|---|---|
| None | 0 |
| Minor | 150 |
| Moderate | 600 |
| Severe | 1,500 |
| Critical | 5,000 |
B. Left / Right side
Level | Cost (USD) |
|---|---|
| None | 0 |
| Minor | 1,000 |
| Moderate | 3,000 |
| Severe | 8,000 |
| Critical | 25,000 |
C. Front
Level | Cost (USD) |
|---|---|
| None | 0 |
| Minor | 1,500 |
| Moderate | 5,000 |
| Severe | 12,000 |
| Critical | 35,000 |
D. Engine
Level | Cost (USD) |
|---|---|
| None | 0 |
| Minor | 2,000 |
| Moderate | 8,000 |
| Severe | 25,000 |
| Critical | 75,000 |
E. Rear
Level | Cost (USD) |
|---|---|
| None | 0 |
| Minor | 1,500 |
| Moderate | 5,000 |
| Severe | 12,000 |
| Critical | 35,000 |
If there’s damage in more than one major section (e.g., front + engine + side), add 15% extra to total repair costs.
5. Insurance (final version for 12 races)
The insurer offers two fixed plans for the 12-race season.Insurance prevents financial collapse but comes at a high price for realism.
🟡 Half-Season Plan
- Duration: 6 consecutive races
- Cost: $40,000 USD (one-time payment)
- Coverage: covers 35% of total repair costs
- Max total coverage: $60,000 for the 6 races
- Any damage beyond that limit must be paid by the team
- If the team goes bankrupt, insurance does not cover debt
🟢 Full-Season Plan
- Duration: full season (12 races)
- Cost: $70,000 USD
- Coverage: covers 40% of total repair costs
- Max total coverage: $120,000 per season
- If the car is totaled and misses 2 races, the insurance does not cover lost income — only repairs
Notes
- Must be purchased before Race 1 (full season) or before Race 7 (half season).
- If not purchased in time, it can’t be added later.
- No refunds if a team leaves before the end of coverage.
6. Loans / Credit
- Max limit: $250,000 USD
- Interest: 1% per race or 5% per season
- Must be paid by the end of the championship
- Unpaid debt = disqualified for insolvency
7. Penalties
Causing a crash
- Flat fine: $5,000 USD
- The money goes to no one — it’s simply deducted
- Applied only when responsibility is clear
8. Repair downtime (for severe damage)
Max damage level | Races missed |
|---|---|
| Severe | 1 race |
| Critical | 2 races |
9. Bankruptcy policy
- If balance falls below −$50,000 USD, the team is declared bankrupt and out of the championship.
- If balance is negative but above −$50,000, the team may continue with loans (paying interest).
- If a team misses 3 races in a row due to lack of funds or damage, it’s officially retired.
10. Constructors’ Prize Pool (end of season)
Total pool: $2,000,000 USDPosition | Prize (USD) |
|---|---|
| 1 | 602,037 |
| 2 | 280,861 |
| 3 | 179,800 |
| 4 | 131,026 |
| 5 | 102,508 |
| 6 | 83,880 |
| 7 | 70,797 |
| 8 | 61,126 |
| 9 | 53,698 |
| 10 | 47,822 |
| 11–24 | 43,062 → 18,255 (descending) |
11. Quick example
Starting balance: $500,000Result: 3rd place (15 pts → $15,000)
Fixed costs: $13,000
Damage: front (moderate) $5,000 + right side (severe) $8,000 = $13,000
Total without insurance: $26,000
With Full Plan: 40% covered → team pays $15,600
Net result: +15,000 − 15,600 − 13,000 = −$13,600
Final balance: $486,400
12. Economic flow summary
Category | Type | Average per race |
|---|---|---|
| Income (points) | Varied | 0–25,000 |
| Fixed costs | Expense | 13,000 |
| Repairs | Expense | 0–75,000+ |
| Insurance (optional) | Expense | 40,000–70,000 (per period) |
| Crash penalty | Expense | 5,000 |
| Final prize | Income | Based on position |
13. Recommended budget
- Starting funds: $500,000 USD per team
- Insurance: recommended only for high-risk teams
- Minimum reserve: $100,000 for contingencies
- Bankruptcy: below −$50,000 = eliminated
14. Race record template
Each race should record:- Final position and points
- Income from points
- Fixed costs
- Damage (by section and level)
- Apply insurance if available
- Penalties
- New balance
- Bankruptcy or suspension if applicable
15. System philosophy
This championship aims to simulate a professional environment where:- Speed and financial strategy go hand in hand.
- Clean driving preserves your budget.
- Poor risk management can ruin your season.
- Every dollar counts.
This text was translated using ChatGPT, so if you find anything odd, that’s why.
Would love to hear your thoughts — just please keep in mind that this system is meant to be managed by one person, so avoid suggesting extremely complex features.
Thanks!
I also have a code that can be executed in any Python console, allowing you to quickly calculate expenses or profits after a race. Here it is:
# ============================================================
# 🏁 Alfa Romeo 155 TI V6 Championship Economic System
# Version 1.4 - Official Calculator (for Google Colab)
# Author: WTG
# ============================================================
# --- General Configuration ---
fixed_costs = 13000
accident_penalty = 5000
# Points and income per position
points_table = {1:25, 2:18, 3:15, 4:12, 5:10, 6:8, 7:6, 8:4, 9:2, 10:1}
# Damage costs
damage_costs = {
"wheel": {"none":0, "light":150, "medium":600, "severe":1500, "critical":5000},
"side": {"none":0, "light":1000, "medium":3000, "severe":8000, "critical":25000},
"front": {"none":0, "light":1500, "medium":5000, "severe":12000, "critical":35000},
"engine": {"none":0, "light":2000, "medium":8000, "severe":25000, "critical":75000},
"rear": {"none":0, "light":1500, "medium":5000, "severe":12000, "critical":35000},
}
# --- Main Function ---
def calculate_race():
print("=== WTG Economic System ===")
team = input("Team name: ")
race = input("Race number or name: ")
# Position and points
pos = int(input("Final position (1-24): "))
points = points_table.get(pos, 0)
income_points = points * 1000
# Insurance type
print("\nInsurance type:")
print("1 - None")
print("2 - Half-season (35%)")
print("3 - Full (40%)")
insurance_type = input("Select type: ")
if insurance_type == "2":
coverage = 0.35
elif insurance_type == "3":
coverage = 0.40
else:
coverage = 0.0
# -------------------------
# WHEELS (4 tires)
# -------------------------
print("\nAre all wheels undamaged?")
all_wheels_ok = input("Type 'y' if no damage on any, or press Enter to specify: ").lower()
if all_wheels_ok == "y":
d_wheel_fl = d_wheel_fr = d_wheel_rl = d_wheel_rr = "none"
else:
print("\nDamage levels: none / light / medium / severe / critical")
d_wheel_fl = input("Front left wheel: ").lower()
d_wheel_fr = input("Front right wheel: ").lower()
d_wheel_rl = input("Rear left wheel: ").lower()
d_wheel_rr = input("Rear right wheel: ").lower()
# -------------------------
# SIDES, FRONT, ENGINE, REAR
# -------------------------
print("\nDamage levels: none / light / medium / severe / critical")
d_side_left = input("Left side damage: ").lower()
d_side_right = input("Right side damage: ").lower()
d_front = input("Front damage: ").lower()
d_engine = input("Engine damage: ").lower()
d_rear = input("Rear damage: ").lower()
# -------------------------
# Damage calculation
# -------------------------
damage_cost = (
damage_costs["wheel"].get(d_wheel_fl,0) +
damage_costs["wheel"].get(d_wheel_fr,0) +
damage_costs["wheel"].get(d_wheel_rl,0) +
damage_costs["wheel"].get(d_wheel_rr,0) +
damage_costs["side"].get(d_side_left,0) +
damage_costs["side"].get(d_side_right,0) +
damage_costs["front"].get(d_front,0) +
damage_costs["engine"].get(d_engine,0) +
damage_costs["rear"].get(d_rear,0)
)
# Additional labor if multiple damaged parts
damaged_parts = sum(
1 for d in [
d_wheel_fl, d_wheel_fr, d_wheel_rl, d_wheel_rr,
d_side_left, d_side_right, d_front, d_engine, d_rear
] if d != "none"
)
extra_labor = False
if damaged_parts >= 2:
damage_cost *= 1.15 # +15%
extra_labor = True
# Apply insurance coverage
discount = damage_cost * coverage
damage_cost_insured = damage_cost - discount
# Accident penalty
caused_accident = input("Did the team cause an accident? (y/n): ").lower()
fine = accident_penalty if caused_accident == "y" else 0
# Total expenses
total_expenses = fixed_costs + damage_cost_insured + fine
# Net result
net_result = income_points - total_expenses
# -------------------------
# Show final summary
# -------------------------
print("\n=== RACE RESULT ===")
print(f"Team: {team}")
print(f"Race: {race}")
print(f"Final position: {pos} | Points: {points} | Income: ${income_points:,.0f}")
print(f"Fixed costs: ${fixed_costs:,.0f}")
print(f"Damage costs (after insurance): ${damage_cost_insured:,.0f}")
print(f"Additional labor applied: {'Yes (+15%)' if extra_labor else 'No'}")
print(f"Accident penalty: ${fine:,.0f}")
print(f"Total expenses: ${total_expenses:,.0f}")
print(f"Net result: ${net_result:,.0f}")
print("\n✅ Calculation completed successfully.")
# --- Run ---
calculate_race()