budget-management

star 50

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

cxcscmu By cxcscmu schedule Updated 4/24/2026

name: budget-management description: Track and manage travel budget across accommodations, meals, and activities

Budget Management Skill

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()}")
Install via CLI
npx skills add https://github.com/cxcscmu/SkillLearnBench --skill budget-management
Repository Details
star Stars 50
call_split Forks 3
navigation Branch main
article Path SKILL.md
Occupations
More from Creator