In most tenders, payment is made after the acts are signed, and almost always - for the whole project, in the extreme case - a couple of acts for the whole contract. In addition, there are contract performance guarantees: this is when the bank will charge you for this guarantee if you fail.
This means that, unlike classical orders, here the studio or agency acts as an investor: you invest conditional X hundreds of thousands/million rubles to get, say, 4X (the average multiplier according to Ramenskoye). At the same time, the risks are entirely on you.
You need to take this into account when entering tenders, and have either a financial cushion, or access to credit, or diversification for advance payments from other projects.
We use all three methods, and over the past 10 years we have not had a single cash gap (and at the same time not a single wage delay).
Front-end: $25
Back-end: $25 (PHP), $35 (JAVA, C#), $35 (Ruby, Python)
Analytics: $35 — $45
Mobile: $30
Design: $25 (designer), $35 (Art Director)
DevOps: $30
Testing: $20