Pet experience is gained by a couple of methods, including battling, hunting, and also just by doing absolutely nothing.
I won’t be talking about Profile exp here, since I honestly just find that boring as hell.
You’ll see 2 or 3 teams in your owotm, which we call “Primary”, “Secondary”, and “Tertiary”,
the last of which is exclusive to uncommon and above Patreons.
Your Primary team is the selected one, and the others are to the right of this,
cycling back to the start after the third slot.
Generally speaking, your Primary gains full exp, Secondary gains half exp and
Tertiary gains no exp.
Exp doesn’t stack if you have Pets on both your Primary & Secondary,
so it generally doesn’t make much sense to share pets between these teams.
Stacking Pets or even entire Teams in the Tertiary team is quite common though,
as there’s no reason not to, and you’re getting extra Blitz performance for free.
The basic exp needed per level up is: 1000 + level⁴

Your main team gains 200/100/50 Exp on a Win/Tie/Loss.
And your secondary team passively gains 100/50/25 Exp for the same.
This also happens when others encounter you in random battles,
and not just when you grind owob yourself.
Your streaks are unaffected by these battles though,
and due to how rarely you’re encountered by random people,
the amount of gained exp is miniscule compared to grinding owob yourself.
We typically call this “Blitz” exp,
because it’s more noticeable when your blitz team kills some high level player and you gain a bunch of Bonus exp.
600 × (avgEnemyLevel - avgAllyLevel)
10 | ⇀ | 10√x + 500 |
50 | ⇀ | 30√x + 1500 |
100 | ⇀ | 50√x + 2500 |
500 | ⇀ | 100√x + 5000 |
1000 | ⇀ | 250√x + 12500 |
If we adjust these streak milestones for how often they occur:
Then we can use the resulting formula to determine your current battle exp value!
Example: if your current streak is 5000, then each battle you do would grant on average:
200 + 92.5 + 1.85×√5000 = ~423xp!
This assumes you never tie your battles though, so it’s a little optimistic in that regard.
Charts made by the community featuring more concrete data:
The NeonUtil utility bot has an incredibly useful streak estimation function (neon global).
I won’t be going into how to use the command, because they’ve got a great guide in their support server,
but I’ll give some further resources that you can use to expand upon global’s results.
The common global gives you results in both; average Streak & Tierate, I’ll talk about what you can do with these.
If we ignore ties for now, the chance of surviving your next battle is 1-1÷Avg_Streak,
so your chance of surviving the next 500 battles would then simply be (1-1÷Avg_Streak)⁵⁰⁰.
If you turn this function around, you’ll get the function for calculating the n-th percentile of your streak! And thus the median, which is a more accurate depiction of a “normal” streak, than an average.
We can also calculate your average streak Exp, even considering tierate!
Pets on your primary team gain a multiplier on their battle Exp when they battle with a higher leveled ally.
OwO gives the lower leveled pet a multiplier for it to “catch up” to the higher leveled one.
You could imagine it as your more experienced pet “training” the other.
The multiplier is equal to: (2 + .1 × level_difference)
The
Knowledge passive works very similarly to Catchup.
On a technical level, it just adds 0.05 to 0.15 to the same Exp multiplier.
It doesn’t multiply with Catchup, and it also doesn’t apply very often, just as Catchup— only applying on battle-related Exp on your main team.
Many people have thusly found the Passive to be completely useless, and while I do agree to a certain extent, the passive is certainly difficult to use:
I don’t believe most players give it its due consideration.
It can actually be worth the effort if you’re optimising your team for Exp-effectiveness, as most players are.
The #NeonUtil-Global above gives you anything you might need to calculate whether Knowledge makes sense for you.
I hope I’m spreading my enthusiasm for math. 

Here’s the amount of Exp you get per hunt, depending on Gem Tier and Patreon status, but assuming there’s no event, nor distorted:

This ends up being the biggest contribution to leveling pets for the more inactive players.
At a maximum level of 200, the
Exp trait provides 7000 Exp per hour. ( 168k /day )
Personally, for my team and situation, that’s as much Exp as ~300 owoh & owob would give. So that’s quite a big amount for most people.