Jinja has the round filter to round values in templates. This is mostly used to determine the number of decimals. if you want to round to 10, 100, … I used to devide the number by 10, round, and multiply by 10 again. But it seems round also accepts a negative number of decimals to support this. Experiment with this in developer tools if you like. Change the number in the round filter to your liking. You could even put a calculation in there to change rounding dynamically.
{{ (pi*1000) | round(-2) }}
For jumps of 30, devide by 30, round, and multiply by 30.
By the way: the examples you gave aren’t rounding, because rounding takes the nearest value, so that can also round up. Removing the decimals (always down) is called trucating. You could do that by subtracting half of what you are rounding to, just before rounding. But intgeger division (//) also truncates. This does truncation to a factor of 30: