Mix yogurt, lemon juice, onion juice, olive oil, garlic, black pepper, and saffron together in a large bowl. Add chicken pieces to the marinade and toss to coat. Cover with plastic wrap and marinate, 8 hours to overnight.
Preheat an outdoor grill for medium-high heat and lightly oil the grate.
Remove chicken from marinade; thread through skewers. Discard unused marinade.
Cook on the preheated grill, turning frequently, until golden brown on all sides and meat is no longer pink in the center, about 8 minutes per side.