You are building the rules engine for a corporate card product.
Employees submit expenses, managers choose policies, and the system must flag both individual expenses and entire trips that violate those policies.
Across the interview, you will fix numeric rule evaluation, implement per-expense rules, add per-trip aggregation rules, and extend the engine to support composite rules and larger-scale evaluation.
The starter code already evaluates a few simple expense rules, but one of the tests is failing.
Expense amounts are provided as strings such as `"49.99"` and `"153.00"`.
The current implementation compares these values incorrectly, which causes some large expenses to be treated as smaller than the rule threshold.
Your task is to identify the bug and fix the amount comparison logic without changing the public interface.
test_amounts_are_compared_numerically
test_small_amounts_do_not_exceed_large_thresholds