Budget Management Skill

SkillDev tools

Track and manage travel budget across accommodations, meals, and activities

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Budget Management Skill skill

What this skill tells your AI

The instructions your AI receives, as published by cxcscmu/skilllearnbench in skills/b1-one-shot-claude-haiku-4-5/travel-planning/budget-management/SKILL.md and read by ahel’s review.

Overview

Manage and allocate a fixed travel budget across accommodations, meals, attractions, and other expenses.

Budget Allocation Strategy

Typical 7-Day Budget Split (for $5,100)

  • Accommodations: 50-55% ($2,550-2,805)
  • Meals: 25-30% ($1,275-1,530)
  • Attractions/Activities: 10-15% ($510-765)
  • Transportation: 5-10% ($255-510)
  • Contingency: 5% ($255)

Per-Day Meal Budget

  • For 2 people, 3 meals/day
  • Budget: $75-100 per day for meals
  • Average per meal: $12-17 per person

Accommodation Budget

  • Per night pet-friendly hotel: $200-300
  • 6 nights total: $1,200-1,800
  • Or split between budget/mid-range options

Python Code Example

from typing import Dict, List

class BudgetTracker:
    def __init__(self, total_budget: float):
        self.total_budget = total_budget
        self.expenses: Dict[str, List[float]] = {
            'accommodation': [],
            'breakfast': [],
            'lunch': [],
            'dinner': [],
            'attractions': [],
            'transportation': []
        }

    def add_expense(self, category: str, amount: float) -> None:
        """Add expense to tracker"""
        if category in self.expenses:
            self.expenses[category].append(amount)

    def get_total_by_category(self, category: str) -> float:
        """Get total spent in a category"""
        return sum(self.expenses.get(category, []))

    def get_remaining_budget(self) -> float:
        """Calculate remaining budget"""
        total_spent = sum(
            sum(expenses) for expenses in self.expenses.values()
        )
        return self.total_budget - total_spent

    def get_budget_summary(self) -> Dict[str, float]:
        """Get spending summary by category"""
        summary = {}
        for category, expenses in self.expenses.items():
            total = sum(expenses)
            summary[category] = {
                'total': total,
                'count': len(expenses),
                'average': total / len(expenses) if expenses else 0
            }
        return summary

    def is_within_budget(self) -> bool:
        """Check if spending is within budget"""
        return self.get_remaining_budget() >= 0

def estimate_accommodation_cost(
    num_nights: int,
    price_per_night: float
) -> float:
    """Estimate total accommodation cost"""
    return num_nights * price_per_night

def estimate_meal_cost(
    num_days: int,
    num_people: int,
    cost_per_meal_per_person: float
) -> float:
    """Estimate total meal cost (3 meals per day)"""
    return num_days * num_people * 3 * cost_per_meal_per_person

def find_affordable_options(
    data: List[Dict],
    budget_per_item: float,
    price_field: str
) -> List[Dict]:
    """Filter options within budget"""
    affordable = []
    for item in data:
        try:
            price = float(item.get(price_field, 0))
            if price <= budget_per_item:
                affordable.append(item)
        except (ValueError, TypeError):
            continue
    return affordable

Budget Constraints for This Trip

Fixed Costs

  • Accommodations: 6 nights of pet-friendly lodging
  • Meals: 7 days × 2 people × 3 meals

Flexible Costs

  • Attractions (some may be free)
  • Parking/tolls

Budget Per Meal

  • Budget: $5,100 total for 2 people, 7 days
  • Meal budget: ~$1,500 (30% of total)
  • Per day per person: ~$107 including accommodations + meals + activities
  • Per meal per person: ~$12-15

Usage Example

tracker = BudgetTracker(5100)

# Add expenses as itinerary is built
tracker.add_expense('accommodation', 250)  # Per night
tracker.add_expense('breakfast', 25)  # For 2 people
tracker.add_expense('lunch', 40)
tracker.add_expense('dinner', 60)

# Check status
print(f"Remaining: ${tracker.get_remaining_budget()}")
print(f"Within budget: {tracker.is_within_budget()}")

Signals

GitHub stars
83
Forks
5
Last commit
Jul 2026
Advanced
Catalog kind
skill
Gateway key
budget-management
Source
github.com/cxcscmu/skilllearnbench