Cook the fries per the directions on the bag. Once the fries are cooked, lower the heat to 350°F.
While the fries are cooking, in a large skillet over medium-high heat add the beef, onion, and garlic, breaking up the beef. Brown the beef and cook until no longer pink, about 5-8 minutes. Drain the excess fat.
Add the beans, chili powder, onion powder, garlic powder, salt, and cumin. Stir to combine, cook until the spices are fragrant, about 1 minute.
Add the tomato sauce and beef stock, stir to combine. Bring to a simmer and lower the heat to low and simmer, covered for 15 minutes.
In a medium-size saucepan melt the butter over medium-low. Whisk in the flour, salt, garlic powder, onion powder, cumin, and paprika. Cook for 2 minutes stirring occasionally.
Slowly stream in the milk while whisking constantly to ensure there are no lumps. Cook until thickened, just until it comes to a simmer, stirring constantly. Take off the heat and add half of the cheese, stir it in until melted and smooth.
You can do this for a large crowd or individually. Layer fries on a parchment-lined sheet tray. Top with some of the cheese sauce, add some chili, top with more cheese sauce. Add shredded cheese. Place the sheet tray in the oven just until the cheese is melted, about 5 minutes. Top with scallions if desired and serve immediately.
Notes
Make sure that you are using freshly shredded cheese for this recipe, it melts best.
You can swap the pinto beans for red kidney beans or leave them out.
The chili sauce can be made ahead of time, see my tips above.
You can use homemade french fries if you'd like.
You can double this recipe to serve larger crowds.