Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   General Forum (http://www.chiefdelphi.com/forums/forumdisplay.php?f=16)
-   -   OPR (http://www.chiefdelphi.com/forums/showthread.php?t=135182)

KosmicKhaos 25-02-2015 16:12

OPR
 
Does anyone have a an excel document or something where I can plug in match scores and figure out OPR or how I could put an OPR calculator in an Android App

stingray27 25-02-2015 16:20

Re: OPR
 
I will be posting a spreadsheet after Week 1 regarding advanced stats including OPR and a few other metrics.
I have done these spreadsheets the last few years and they can be found here:
http://www.chiefdelphi.com/media/papers/3003
http://www.chiefdelphi.com/media/papers/2967

In addition, I have an app on the google play store called OPRFIRST2014 that was developed to focus specifically on OPR calculations for android. I released the entire source code for it because TheBlueAlliance began to include OPR calculations in their app and it was too hard to gain users with everyone using thebluealliance.com. So feel free to look through here and use the code to calculate OPR. (Although I may warn you, the code may be a little hard to read because I was just beginning android development and this was the first app I created).
https://github.com/mray19027/OPRFIRST2014

The EXACT location of where my OPR calculations take place is here:
https://github.com/mray19027/OPRFIRS...Info.java#L305

saikiranra 25-02-2015 17:38

Re: OPR
 
Ed Law and his team has put together awesome resources for calculating OPR that can be found here.

Calculating OPR isn't actually that hard, although it requires some knowledge about basic linear algebra. Essentially, you are trying to solve a linear system of equations for a certain constant that is what you expect a team to contribute to an alliance each match (OPR). If you have teams a, b, and c playing together in one match, and they score a x amount of points, you are solving

a(OPR) + b(OPR) + c(OPR) = x

As more matches occur, the matrix equations become more complex. In the form of Ax = b, A is the matrix whose values correspond to the amount of matches teams played with each other, x is the OPR vector, and b is the vector of the total score each team made in all the matches they played.

If you don't want to do the hard math/plug in your own match scores, you can use The Blue Alliance's API to get OPRs off their site.

Ether 25-02-2015 19:01

Re: OPR
 
Quote:

Originally Posted by saikiranra (Post 1449844)
b is the vector of the total score each team made in all the matches they played

Not quite.

Each element of |b| corresponds to a team, and the value of that element is the sum of the alliance scores for all alliances that team played with.



GeeTwo 25-02-2015 19:15

Re: OPR
 
Quote:

Originally Posted by saikiranra (Post 1449844)
If you don't want to do the hard math/plug in your own match scores, you can use The Blue Alliance's API to get OPRs off their site.

I don't see the OPR anywhere in their API; am I missing something, or did you just mean that the data required to plug into an OPR calculation is there?

plnyyanks 25-02-2015 19:15

Re: OPR
 
Quote:

Originally Posted by stingray27 (Post 1449820)
I released the entire source code for it because TheBlueAlliance began to include OPR calculations in their app and it was too hard to gain users with everyone using thebluealliance.com

Similarly, you can find the OPR (and DPR, CCWM) calculations done on TBA in this file. The math is based off of this post.

And if you just want to view the data, it is displayed in the TBA Android app, as well (looks like this, but more material. Sorry, old screenshot)

plnyyanks 25-02-2015 19:19

Re: OPR
 
Quote:

Originally Posted by GeeTwo (Post 1449875)
I don't see the OPR anywhere in their API; am I missing something, or did you just mean that the data required to plug into an OPR calculation is there?

The API will return the result of the calculations for OPR, DPR, and CCWM. See here in the docs.

Hit
Code:

/api/v2/event/<event-key>/stats
It'll return an output like:
Spoiler for Lots of data:

Code:

➜  phil@fedora ~  curl --header "X-TBA-App-Id:foo:bar:baz" http://www.thebluealliance.com/api/v2/event/2014cthar/stats
{"oprs": {"558": 61.03862458660732, "571": 25.26315867245658, "1124": 41.56940261999079, "4572": 22.657822140768516, "238": 22.044939318938813, "3146": 12.63390393300261, "178": 46.950456367359891, "177": 92.226404149116206, "4557": 43.334926949271072, "175": 81.334997593159528, "230": 53.027513648529002, "236": 58.096099167356243, "2785": 11.601348126111738, "3555": 7.2284300176004974, "3104": 14.702459074944898, "173": 9.5159523225474345, "839": 19.960465485473357, "2170": 22.066703794171406, "181": 49.492453525796911, "3182": 26.955221924000668, "3634": 34.152969306235953, "4097": 28.571656205234454, "716": 57.420439555814042, "5142": 15.649331351710339, "999": 36.426610246955612, "3525": 50.453711167618096, "5129": 27.586754386014597, "228": 52.10253623902166, "4628": 17.892949898607437, "95": 29.973898403369855, "176": 65.769697919858061, "1991": 53.614388815829997, "4055": 51.617441033456331, "3464": 37.843662949585344, "3566": 31.888458744244957, "4958": 33.821768467384359, "1687": 12.329197344290588, "1740": 7.5272579695618127, "2067": 39.32265324466966}, "ccwms": {"558": 47.714841929054501, "571": -2.2244726240688477, "1124": 32.556983571913001, "4572": -6.0853698077920315, "238": -35.070117174800544, "3146": -36.885966963297193, "178": 14.96298531132085, "177": 71.191849807978272, "4557": -7.7570855600831052, "175": 30.835262590761605, "230": 3.6399453862621081, "236": 20.44387440579483, "2785": -37.350014006119174, "3555": -34.672659512804991, "3104": -28.249324008158332, "173": -37.577530295276226, "839": -19.803791613841952, "2170": -27.524965779988744, "181": 3.7024741266095287, "3182": -8.8673292856880401, "3634": 9.0289537858067348, "4097": -28.403823457387144, "716": 25.671255492674394, "5142": -18.532183768327222, "999": 16.38015834182071, "3525": 27.23416882060123, "5129": -15.548754966962644, "228": 8.7310226121904542, "4628": 7.01561775548765, "95": 5.8413142346092108, "176": 32.851548640364612, "1991": 37.027081101957357, "4055": 13.387511797720734, "3464": 1.4555715944903778, "3566": -15.204361189187283, "4958": -13.407078085909482, "1687": -23.514376735710577, "1740": -21.265070753703672, "2067": 8.2718542816890643}, "dprs": {"558": 13.32378265755275, "571": 27.487631296525407, "1124": 9.0124190480777919, "4572": 28.743191948560586, "238": 57.115056493739317, "3146": 49.519870896299814, "178": 31.987471056039084, "177": 21.034554341137934, "4557": 51.092012509354177, "175": 50.499735002397919, "230": 49.387568262266932, "236": 37.652224761561435, "2785": 48.951362132230891, "3555": 41.901089530405542, "3104": 42.951783083103251, "173": 47.093482617823668, "839": 39.764257099315302, "2170": 49.591669574160193, "181": 45.789979399187374, "3182": 35.822551209688733, "3634": 25.12401552042925, "4097": 56.975479662621588, "716": 31.749184063139648, "5142": 34.181515120037545, "999": 20.046451905134909, "3525": 23.219542347016823, "5129": 43.135509352977216, "228": 43.371513626831245, "4628": 10.877332143119782, "95": 24.13258416876063, "176": 32.918149279493427, "1991": 16.587307713872672, "4055": 38.229929235735582, "3464": 36.388091355095021, "3566": 47.092819933432281, "4958": 47.228846553293849, "1687": 35.843574080001126, "1740": 28.792328723265495, "2067": 31.05079896298054}}


Ether 26-02-2015 11:18

Re: OPR
 
Quote:

Originally Posted by plnyyanks (Post 1449876)
...you can find the OPR (and DPR, CCWM) calculations done on TBA in this file.

Just a minor observation FWIW:

To solve [M][x]=[s], that code uses numpy.linalg.solve which uses LAPACK routine gesv which does LU decomposition.

Since [M] is symmetric positive definite, Cholesky decomposition can be used instead to take advantage of that particular matrix structure.

For OPR computation for single events the difference will likely be negligible, but when computing combined OPR for all events for an entire season Cholesky will be noticeably faster than LU.



plnyyanks 26-02-2015 15:30

Re: OPR
 
Quote:

Originally Posted by Ether (Post 1450136)
Just a minor observation FWIW:

To solve [M][x]=[s], that code uses numpy.linalg.solve which uses LAPACK routine gesv which does LU decomposition.

Since [M] is symmetric positive definite, Cholesky decomposition can be used instead to take advantage of that particular matrix structure.

For OPR computation for single events the difference will likely be negligible, but when computing combined OPR for all events for an entire season Cholesky will be noticeably faster than LU.

Really interesting, thanks for input. This'll be a good offseason hackathon project!

Eugene Fang 26-02-2015 16:23

Re: OPR
 
Quote:

Originally Posted by plnyyanks (Post 1450263)
Really interesting, thanks for input. This'll be a good offseason hackathon project!

It would be a one line change. :p

plnyyanks 26-02-2015 16:44

Re: OPR
 
Quote:

Originally Posted by Eugene Fang (Post 1450294)
It would be a one line change. :p

Low hanging fruit, I call it

saikiranra 26-02-2015 16:46

Re: OPR
 
Quote:

Originally Posted by Eugene Fang (Post 1450294)
It would be a one line change. :p

Code:

x = np.linalg.cho_solve(np.linalg.cho_factor(M) , s)

Ether 27-02-2015 09:05

Re: OPR
 
1 Attachment(s)
Quote:

Originally Posted by saikiranra (Post 1450313)
Code:

x = np.linalg.cho_solve(np.linalg.cho_factor(M) , s)

linalg.cho_factor() and linalg.cho_solve() are in scipy, not numpy.



Attached is a sparse-format "M" matrix generated from this data containing 2,696 teams and 8,921 matches.

Can someone with a Python installation please factor that matrix with LU1 and Cholesky2 and report the times?


1scipy.linalg.lu(M)
2scipy.linalg.cho_factor(M)




Ether 27-02-2015 11:26

Re: OPR
 
Quote:

Originally Posted by plnyyanks (Post 1450311)
Low hanging fruit, I call it

Here's some even tastier fruit:

Code:

Python 2.7.5 (default, May 15 2013, 22:43:36) [MSC v.1500 32 bit (Intel)] on win32
>>> import numpy
>>> import time
>>> import scipy
>>> import scipy.sparse
>>> import scipy.sparse.linalg

>>> # Read M & s ...
>>> M = numpy.loadtxt(open('M.dat'))
>>> s = numpy.loadtxt(open('s.dat'))
>>> end = time.time()

>>> # solve...
... start = time.time()
>>> x = numpy.linalg.solve(M,s)
>>> end = time.time()
>>> print "%f seconds" % (end-start)
15.344000 seconds

>>># solve Cholesky...
... start = time.time()
>>> xc = scipy.linalg.cho_solve(scipy.linalg.cho_factor(M),s)
>>> end = time.time()
>>> print "%f seconds" % (end-start)
1.688000 seconds

>>> # Convert to sparse...
... start = time.time()
>>> Msparse = scipy.sparse.csr_matrix(M)
>>> end = time.time()
>>> print "%f seconds" % (end-start)
0.219000 seconds
>>>
>>> # solve sparse...
... start = time.time()
>>> xs = scipy.sparse.linalg.spsolve(Msparse,s)
>>> end = time.time()
>>> print "%f seconds" % (end-start)
0.468000 seconds
>>>

PS: above code was run on single core of 8-year-old Pentium D machine running XP SP3



Spoam 05-03-2015 03:03

Re: OPR
 
Quote:

Originally Posted by saikiranra (Post 1449844)
Ed Law and his team has put together awesome resources for calculating OPR that can be found here.

Calculating OPR isn't actually that hard, although it requires some knowledge about basic linear algebra. Essentially, you are trying to solve a linear system of equations for a certain constant that is what you expect a team to contribute to an alliance each match (OPR). If you have teams a, b, and c playing together in one match, and they score a x amount of points, you are solving

a(OPR) + b(OPR) + c(OPR) = x

As more matches occur, the matrix equations become more complex. In the form of Ax = b, A is the matrix whose values correspond to the amount of matches teams played with each other, x is the OPR vector, and b is the vector of the total score each team made in all the matches they played.

If you don't want to do the hard math/plug in your own match scores, you can use The Blue Alliance's API to get OPRs off their site.

Adding on to this, if anyone truly wants to do the math themselves it's worth mentioning that you'll end up with an over-determined system and a non-invertible matrix. Because of this, |Ax-b|=0 probably doesn't exist (every robot would have to contribute the exact same amount of points every match for that to happen) and you have to settle for minimizing |Ax-b| instead. This is done via a formula called linear least squares, which is essentially just left-multiplying both sides by the pseudo-inverse of A, to pseudo-solve it, if you will.

I think it's useful to understand how OPR works too, because often OPR alone often poorly models the game, or the game includes nonlinear (bins this year) or irrelevant (foul points last year) elements which get lumped into naive OPR equations anyways. You should understand what you're looking at before you take a list of teams ranked by OPR at face value.

Ether 05-03-2015 10:26

Re: OPR
 
Quote:

Originally Posted by Spoam (Post 1453867)
Adding on to this, if anyone truly wants to do the math themselves it's worth mentioning that you'll end up with an over-determined system and a non-invertible matrix. Because of this, |Ax-b|=0 probably doesn't exist (every robot would have to contribute the exact same amount of points every match for that to happen) and you have to settle for minimizing |Ax-b| instead. This is done via a formula called linear least squares, which is essentially just left-multiplying both sides by the pseudo-inverse of A, to pseudo-solve it, if you will.

It's important to note that in your (excellent) discussion above, [A] is a non-square binary matrix (each element is either 1 or 0) with 2M rows and T columns, where M is the number of matches and T is the number of teams... and [b] is a 2M by 1 column vector of alliance scores. So [A][x]≈[b] is indeed an overdetermined system which has no exact solution.

But if you look carefully at the way saikiranra defined the matrix [A] and the column vector [b], you'll see that his [A] is actually [N]=[AT][A] and his [b] is actually [d]=[AT][b].

[N] will be a square symmetric positive definite matrix, and [N][x]=[d] will have an exact solution because it's already in the Normalized Equations form. The exact solution to [N][x]=[d] will be the least-squares approximate solution to [A][x]≈[b] (to within computer floating-point rounding error).

Quote:

you have to settle for minimizing |Ax-b| instead. This is done via a formula called linear least squares...
It is also important to note that least squares is not the only criterion for minimizing the residual vector ε=[A][x]-[b]. For example, you could choose to minimize the L1 norm of ε (least absolute deviation) instead of minimizing the L2 norm (least squares).

Quote:

which is essentially just left-multiplying both sides by the pseudo-inverse of A, to pseudo-solve it, if you will.
That is conceptually true, but it is far faster (computationally) to form the system [N][x]=[d] and solve it that way.



Ed Law 05-03-2015 10:45

Re: OPR
 
Can anyone show me how to use the thebluealliance.com API to get ranking, match and alliance selection data? I am not able to get it from the FIRST website. I am hoping I don't have to do manual copy and paste. I would like to call it from VBA in my Excel scouting database. Is that possible?

plnyyanks 05-03-2015 10:54

Re: OPR
 
Quote:

Originally Posted by Ed Law (Post 1453926)
Can anyone show me how to use the thebluealliance.com API to get ranking, match and alliance selection data? I am not able to get it from the FIRST website. I am hoping I don't have to do manual copy and paste. I would like to call it from VBA in my Excel scouting database. Is that possible?

Not an Excel wizard, but I can help with the TBA API. You can find the documentation here.

Keep in mind all requested need a 'X-TBA-App-Id' header (or GET URL parameter, see below), it'll look like: '<team/person id>:<app description>:<version> '

Here are the endpoints you'll need (you can play around with test requests on the apidocs page)

Rankings: /api/v2/event/<key>/rankings
Results: /api/v2/event/<key>/matches
Alliances: /api/v2/event/<key> [alliances will be a field in this response]


You can also get the calculated OPR/DPR/CCWM stats at /api/v2/event/<key>/stats

And here are a couple StackOverflow threads that may or may not be helpful fetching/parsing JSON data:
https://stackoverflow.com/questions/...-unknown-proxy
https://stackoverflow.com/questions/...rnal-libraries

Ether 05-03-2015 11:18

Re: OPR
 
Quote:

Originally Posted by plnyyanks (Post 1453929)
Keep in mind all requested need a 'X-TBA-App-Id' header, it'll look like: '<team/person id>:<app description>:<version> '

Can you give a full example using the "/api/v2/event/<key>/matches" endpoint?

Can this just be typed into the URL bar of a browser?

Can it be typed at a Windows or Linux command line, and have the output redirected to a file?




plnyyanks 05-03-2015 11:25

Re: OPR
 
Quote:

Originally Posted by Ether (Post 1453944)
Can you give a full example using the "/api/v2/event/<key>/matches" endpoint?

Can this just be typed into the URL bar of a browser?

Can it be typed at a Windows or Linux command line, and have the output redirected to a file?

The API works with all HTTP GET requests, so you can enter it in a browser, provided you provide a GET paramter 'X-TBA-App-Id' with your ID. Otherwise, it'll just throw an error (like this). Here is an example of a properly formed URL.

I keep the following bash alias on my computer that I use for test calls
Code:

alias tba-api="curl --header 'X-TBA-App-Id:plnyyanks:curl:0.1'"
That way, I can run things like this:
Code:

➜  phil@fedora ~ tba-api http://www.thebluealliance.com/api/v2/event/2014necmp/matches
[{"comp_level": "f", "match_number": 1, "videos": [{"type": "youtube", "key": "ZRTRszl2iXw"}], "time_string": "3:18 PM", "set_number": 1, "key": "2014necmp_f1m1", "time": "1397330280", "score_breakdown": null, "alliances": {"blue": {"score": 154, "teams": ["frc177", "frc230", "frc4055"]}, "red": {"score": 78, "teams": ["frc195", "frc558", "frc5122"]}}, "event_key": "2014necmp"}, {"comp_level": "f", "match_number": 2, "videos": [{"type": "youtube", "key": "-ijeqxwp7EI"}, {"type": "youtube", "key": "UJEDkibEIVM"}], "time_string": "3:24 PM", "set_number": 1, "key": "2014necmp_f1m2", "time": "1397330640", "score_breakdown": null, "alliances": {"blue": {"score": 210, "teams": ["frc4055", "frc230", "frc177"]}, "red": {"score": 114, "teams": ["frc195", "frc558", "frc5122"]}}, "event_key": "2014necmp"}, {"comp_level": "qf", "match_number": 1, "videos": [{"type": "youtube", "key": "ICPrgPalH74"}], "time_string": "1:30 PM", "set_number": 1, "key": "2014necmp_qf1m1", "time": "1397323800", "score_breakdown": null, "alliances": {"blue": {"score": 101, "teams": ["frc1058", "frc2067", "frc172"]}, "red": {"score": 246, "teams": ["frc5122", "frc558", "frc195"]}}, "event_key": "2014necmp"}, {"comp_level": "qf", "match_number": 2, "videos": [{"type": "youtube", "key": "iX5wK_hqb3M"}], "time_string": "1:54 PM", "set_number": 1, "key": "2014necmp_qf1m2", "time": "1397325240", "score_breakdown": null, "alliances": {"blue": {"score": 212, "teams": ["frc2067", "frc172", "frc1058"]}, "red": {"score": 88, "teams": ["frc195", "frc5122", "frc558"]}}, "event_key": "2014necmp"}, {"comp_level": "qf", "match_number": 3, "videos": [{"type": "youtube", "key": "n5FLwsJpNYI"}], "time_string": "2:18 PM", "set_number": 1, "key": "2014necmp_qf1m3", "time": "1397326680", "score_breakdown": null, "alliances": {"blue": {"score": 94, "teams": ["frc2067", "frc172", "frc1058"]}, "red": {"score": 194, "teams": ["frc5122", "frc558", "frc195"]}}, "event_key": "2014necmp"}, {"comp_level": "qf", "match_number": 1, "videos": [{"type": "youtube", "key": "wInXE0_GiTs"}], "time_string": "1:36 PM", "set_number": 2, "key": "2014necmp_qf2m1", "time": "1397324160", "score_breakdown": null, "alliances": {"blue": {"score": 151, "teams": ["frc1519", "frc3467", "frc58"]}, "red": {"score": 211, "teams": ["frc811", "frc78", "frc716"]}}, "event_key": "2014necmp"}, {"comp_level": "qf", "match_number": 2, "videos": [{"type": "youtube", "key": "04Kjt-mFS6c"}], "time_string": "2:00 PM", "set_number": 2, "key": "2014necmp_qf2m2", "time": "1397325600", "score_breakdown": null, "alliances": {"blue": {"score": 216, "teams": ["frc3467", "frc58", "frc1519"]}, "red": {"score": 161, "teams": ["frc716", "frc811", "frc78"]}}, "event_key": "2014necmp"}, {"comp_level": "qf", "match_number": 3, "videos": [{"type": "youtube", "key": "bscdxXcRaVg"}], "time_string": "2:24 PM", "set_number": 2, "key": "2014necmp_qf2m3", "time": "1397327040", "score_breakdown": null, "alliances": {"blue": {"score": 180, "teams": ["frc3467", "frc58", "frc1519"]}, "red": {"score": 182, "teams": ["frc716", "frc811", "frc78"]}}, "event_key": "2014necmp"}, {"comp_level": "qf", "match_number": 1, "videos": [{"type": "youtube", "key": "FmNkU9GFWa0"}], "time_string": "1:42 PM", "set_number": 3, "key": "2014necmp_qf3m1", "time": "1397324520", "score_breakdown": null, "alliances": {"blue": {"score": 231, "teams": ["frc3525", "frc2168", "frc228"]}, "red": {"score": 220, "teams": ["frc125", "frc1153", "frc4048"]}}, "event_key": "2014necmp"}, {"comp_level": "qf", "match_number": 2, "videos": [{"type": "youtube", "key": "-jCxjA8w2k8"}], "time_string": "2:06 PM", "set_number": 3, "key": "2014necmp_qf3m2", "time": "1397325960", "score_breakdown": null, "alliances": {"blue": {"score": 205, "teams": ["frc2168", "frc3525", "frc228"]}, "red": {"score": 151, "teams": ["frc4048", "frc125", "frc1153"]}}, "event_key": "2014necmp"}, {"comp_level": "qf", "match_number": 1, "videos": [{"type": "youtube", "key": "ziu8fwYooX8"}], "time_string": "1:48 PM", "set_number": 4, "key": "2014necmp_qf4m1", "time": "1397324880", "score_breakdown": null, "alliances": {"blue": {"score": 146, "teams": ["frc1073", "frc131", "frc175"]}, "red": {"score": 185, "teams": ["frc4055", "frc230", "frc177"]}}, "event_key": "2014necmp"}, {"comp_level": "qf", "match_number": 2, "videos": [{"type": "youtube", "key": "APkUOZqQn2w"}], "time_string": "2:12 PM", "set_number": 4, "key": "2014necmp_qf4m2", "time": "1397326320", "score_breakdown": null, "alliances": {"blue": {"score": 166, "teams": ["frc175", "frc131", "frc1073"]}, "red": {"score": 170, "teams": ["frc4055", "frc177", "frc230"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 1, "videos": [{"type": "youtube", "key": "wIr2wRz6IAM"}], "time_string": "2:30 PM", "set_number": 1, "key": "2014necmp_qm1", "time": "1397154600", "score_breakdown": null, "alliances": {"blue": {"score": 128, "teams": ["frc131", "frc319", "frc1153"]}, "red": {"score": 119, "teams": ["frc61", "frc4048", "frc1099"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 10, "videos": [{"type": "youtube", "key": "xFacbW3X64A"}], "time_string": "3:33 PM", "set_number": 1, "key": "2014necmp_qm10", "time": "1397158380", "score_breakdown": null, "alliances": {"blue": {"score": 275, "teams": ["frc558", "frc58", "frc125"]}, "red": {"score": 177, "teams": ["frc4761", "frc61", "frc811"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 100, "videos": [{"type": "youtube", "key": "uh6kxQSPs-U"}], "time_string": "11:01 AM", "set_number": 1, "key": "2014necmp_qm100", "time": "1397314860", "score_breakdown": null, "alliances": {"blue": {"score": 116, "teams": ["frc1735", "frc69", "frc138"]}, "red": {"score": 148, "teams": ["frc999", "frc1073", "frc716"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 101, "videos": [{"type": "youtube", "key": "cHWKLbzau54"}], "time_string": "11:08 AM", "set_number": 1, "key": "2014necmp_qm101", "time": "1397315280", "score_breakdown": null, "alliances": {"blue": {"score": 98, "teams": ["frc2064", "frc1058", "frc4909"]}, "red": {"score": 186, "teams": ["frc4761", "frc237", "frc3467"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 102, "videos": [{"type": "youtube", "key": "Z_ZEAOhlj4E"}], "time_string": "11:15 AM", "set_number": 1, "key": "2014necmp_qm102", "time": "1397315700", "score_breakdown": null, "alliances": {"blue": {"score": 102, "teams": ["frc78", "frc3525", "frc133"]}, "red": {"score": 201, "teams": ["frc230", "frc558", "frc1099"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 103, "videos": [{"type": "youtube", "key": "tkzPMwUXrNY"}], "time_string": "11:22 AM", "set_number": 1, "key": "2014necmp_qm103", "time": "1397316120", "score_breakdown": null, "alliances": {"blue": {"score": 136, "teams": ["frc131", "frc4048", "frc2648"]}, "red": {"score": 173, "teams": ["frc811", "frc246", "frc2067"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 104, "videos": [{"type": "youtube", "key": "BaqX0J3mbUE"}], "time_string": "11:29 AM", "set_number": 1, "key": "2014necmp_qm104", "time": "1397316540", "score_breakdown": null, "alliances": {"blue": {"score": 146, "teams": ["frc2877", "frc4564", "frc1991"]}, "red": {"score": 190, "teams": ["frc4473", "frc5122", "frc195"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 105, "videos": [{"type": "youtube", "key": "ESWcSwEcXRw"}], "time_string": "11:36 AM", "set_number": 1, "key": "2014necmp_qm105", "time": "1397316960", "score_breakdown": null, "alliances": {"blue": {"score": 146, "teams": ["frc1517", "frc3930", "frc58"]}, "red": {"score": 153, "teams": ["frc172", "frc176", "frc166"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 106, "videos": [{"type": "youtube", "key": "i-y1nd-a6YU"}], "time_string": "11:43 AM", "set_number": 1, "key": "2014necmp_qm106", "time": "1397317380", "score_breakdown": null, "alliances": {"blue": {"score": 191, "teams": ["frc175", "frc1519", "frc2168"]}, "red": {"score": 122, "teams": ["frc4055", "frc4925", "frc228"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 11, "videos": [{"type": "youtube", "key": "eknIU2Skr-M"}], "time_string": "3:40 PM", "set_number": 1, "key": "2014necmp_qm11", "time": "1397158800", "score_breakdown": null, "alliances": {"blue": {"score": 126, "teams": ["frc2067", "frc1991", "frc4055"]}, "red": {"score": 247, "teams": ["frc3525", "frc1153", "frc172"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 12, "videos": [{"type": "youtube", "key": "h49-_UAtmFQ"}], "time_string": "3:47 PM", "set_number": 1, "key": "2014necmp_qm12", "time": "1397159220", "score_breakdown": null, "alliances": {"blue": {"score": 165, "teams": ["frc69", "frc1519", "frc78"]}, "red": {"score": 136, "teams": ["frc1099", "frc1058", "frc1517"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 13, "videos": [{"type": "youtube", "key": "R_yU1efuMdA"}], "time_string": "3:54 PM", "set_number": 1, "key": "2014necmp_qm13", "time": "1397159640", "score_breakdown": null, "alliances": {"blue": {"score": 127, "teams": ["frc4473", "frc131", "frc2064"]}, "red": {"score": 122, "teams": ["frc999", "frc2168", "frc228"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 14, "videos": [{"type": "youtube", "key": "UxnxjBftKfY"}], "time_string": "4:01 PM", "set_number": 1, "key": "2014necmp_qm14", "time": "1397160060", "score_breakdown": null, "alliances": {"blue": {"score": 170, "teams": ["frc4048", "frc175", "frc4564"]}, "red": {"score": 167, "teams": ["frc178", "frc2084", "frc176"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 15, "videos": [{"type": "youtube", "key": "L4o5S_5OHV4"}], "time_string": "4:08 PM", "set_number": 1, "key": "2014necmp_qm15", "time": "1397160480", "score_breakdown": null, "alliances": {"blue": {"score": 185, "teams": ["frc230", "frc3467", "frc195"]}, "red": {"score": 102, "teams": ["frc4958", "frc138", "frc1100"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 16, "videos": [{"type": "youtube", "key": "4K2s3vnqXgY"}, {"type": "youtube", "key": "Yz4h6lCLyv4"}], "time_string": "4:15 PM", "set_number": 1, "key": "2014necmp_qm16", "time": "1397160900", "score_breakdown": null, "alliances": {"blue": {"score": 118, "teams": ["frc2648", "frc177", "frc4908"]}, "red": {"score": 141, "teams": ["frc133", "frc166", "frc716"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 17, "videos": [{"type": "youtube", "key": "ZJxBMPE8fRQ"}], "time_string": "4:22 PM", "set_number": 1, "key": "2014necmp_qm17", "time": "1397161320", "score_breakdown": null, "alliances": {"blue": {"score": 147, "teams": ["frc246", "frc2877", "frc3930"]}, "red": {"score": 142, "teams": ["frc3461", "frc4909", "frc319"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 18, "videos": [{"type": "youtube", "key": "0OqIluNyHYc"}], "time_string": "4:29 PM", "set_number": 1, "key": "2014necmp_qm18", "time": "1397161740", "score_breakdown": null, "alliances": {"blue": {"score": 135, "teams": ["frc5122", "frc1073", "frc1153"]}, "red": {"score": 72, "teams": ["frc237", "frc4925", "frc176"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 19, "videos": [{"type": "youtube", "key": "xGP_L2dZ_Y0"}], "time_string": "4:36 PM", "set_number": 1, "key": "2014necmp_qm19", "time": "1397162160", "score_breakdown": null, "alliances": {"blue": {"score": 90, "teams": ["frc4564", "frc2084", "frc4761"]}, "red": {"score": 201, "teams": ["frc230", "frc131", "frc172"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 2, "videos": [{"type": "youtube", "key": "GRNlm29DbbU"}], "time_string": "2:37 PM", "set_number": 1, "key": "2014necmp_qm2", "time": "1397155020", "score_breakdown": null, "alliances": {"blue": {"score": 157, "teams": ["frc58", "frc2084", "frc2168"]}, "red": {"score": 202, "teams": ["frc2067", "frc133", "frc1519"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 20, "videos": [{"type": "youtube", "key": "XGuGLX18lq4"}, {"type": "youtube", "key": "trmMPntU5K4"}, {"type": "youtube", "key": "vN9OPQ146X0"}], "time_string": "4:43 PM", "set_number": 1, "key": "2014necmp_qm20", "time": "1397162580", "score_breakdown": null, "alliances": {"blue": {"score": 88, "teams": ["frc999", "frc1099", "frc2064"]}, "red": {"score": 95, "teams": ["frc178", "frc177", "frc716"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 21, "videos": [{"type": "youtube", "key": "KTr5E1WpU5Q"}], "time_string": "4:50 PM", "set_number": 1, "key": "2014necmp_qm21", "time": "1397163000", "score_breakdown": null, "alliances": {"blue": {"score": 125, "teams": ["frc195", "frc1058", "frc1519"]}, "red": {"score": 71, "teams": ["frc3461", "frc61", "frc4908"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 22, "videos": [{"type": "youtube", "key": "r7E0k0Jjb7k"}], "time_string": "4:57 PM", "set_number": 1, "key": "2014necmp_qm22", "time": "1397163420", "score_breakdown": null, "alliances": {"blue": {"score": 149, "teams": ["frc1100", "frc558", "frc166"]}, "red": {"score": 76, "teams": ["frc1991", "frc246", "frc1735"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 23, "videos": [{"type": "youtube", "key": "0FouILThLLM"}], "time_string": "5:04 PM", "set_number": 1, "key": "2014necmp_qm23", "time": "1397163840", "score_breakdown": null, "alliances": {"blue": {"score": 132, "teams": ["frc4048", "frc138", "frc1073"]}, "red": {"score": 151, "teams": ["frc1517", "frc2168", "frc78"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 24, "videos": [{"type": "youtube", "key": "O7RgVFRtWQk"}], "time_string": "5:11 PM", "set_number": 1, "key": "2014necmp_qm24", "time": "1397164260", "score_breakdown": null, "alliances": {"blue": {"score": 58, "teams": ["frc4925", "frc69", "frc2648"]}, "red": {"score": 129, "teams": ["frc237", "frc228", "frc4958"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 25, "videos": [{"type": "youtube", "key": "H57fYCZJUEw"}], "time_string": "5:18 PM", "set_number": 1, "key": "2014necmp_qm25", "time": "1397164680", "score_breakdown": null, "alliances": {"blue": {"score": 146, "teams": ["frc175", "frc2877", "frc5122"]}, "red": {"score": 275, "teams": ["frc811", "frc3930", "frc3525"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 26, "videos": [{"type": "youtube", "key": "7lLhTARVPRA"}], "time_string": "5:25 PM", "set_number": 1, "key": "2014necmp_qm26", "time": "1397165100", "score_breakdown": null, "alliances": {"blue": {"score": 195, "teams": ["frc319", "frc58", "frc133"]}, "red": {"score": 132, "teams": ["frc4909", "frc4055", "frc3467"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 27, "videos": [{"type": "youtube", "key": "lHkVbxIrEWg"}], "time_string": "5:32 PM", "set_number": 1, "key": "2014necmp_qm27", "time": "1397165520", "score_breakdown": null, "alliances": {"blue": {"score": 167, "teams": ["frc4473", "frc125", "frc716"]}, "red": {"score": 101, "teams": ["frc2067", "frc178", "frc78"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 28, "videos": [{"type": "youtube", "key": "LOM_r2n4QsQ"}], "time_string": "5:39 PM", "set_number": 1, "key": "2014necmp_qm28", "time": "1397165940", "score_breakdown": null, "alliances": {"blue": {"score": 104, "teams": ["frc2084", "frc1099", "frc138"]}, "red": {"score": 169, "teams": ["frc246", "frc1100", "frc2064"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 29, "videos": [{"type": "youtube", "key": "d9Bmmy_TApo"}], "time_string": "5:46 PM", "set_number": 1, "key": "2014necmp_qm29", "time": "1397166360", "score_breakdown": null, "alliances": {"blue": {"score": 151, "teams": ["frc811", "frc237", "frc2168"]}, "red": {"score": 157, "teams": ["frc4908", "frc4958", "frc230"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 3, "videos": [{"type": "youtube", "key": "7ifzn1jZZ_4"}, {"type": "youtube", "key": "Kxwb2Ri-kXM"}], "time_string": "2:44 PM", "set_number": 1, "key": "2014necmp_qm3", "time": "1397155440", "score_breakdown": null, "alliances": {"blue": {"score": 225, "teams": ["frc4055", "frc176", "frc177"]}, "red": {"score": 161, "teams": ["frc230", "frc69", "frc1517"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 30, "videos": [{"type": "youtube", "key": "1-9Q41Xbnvk"}], "time_string": "5:53 PM", "set_number": 1, "key": "2014necmp_qm30", "time": "1397166780", "score_breakdown": null, "alliances": {"blue": {"score": 150, "teams": ["frc4761", "frc133", "frc1991"]}, "red": {"score": 180, "teams": ["frc5122", "frc4048", "frc999"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 31, "videos": [{"type": "youtube", "key": "t44hycmnwcg"}], "time_string": "9:30 AM", "set_number": 1, "key": "2014necmp_qm31", "time": "1397223000", "score_breakdown": null, "alliances": {"blue": {"score": 77, "teams": ["frc1517", "frc4473", "frc175"]}, "red": {"score": 103, "teams": ["frc1153", "frc3461", "frc2648"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 32, "videos": [{"type": "youtube", "key": "EH43R6zGxWE"}], "time_string": "9:37 AM", "set_number": 1, "key": "2014necmp_qm32", "time": "1397223420", "score_breakdown": null, "alliances": {"blue": {"score": 137, "teams": ["frc3930", "frc228", "frc2067"]}, "red": {"score": 196, "teams": ["frc1735", "frc195", "frc177"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 33, "videos": [{"type": "youtube", "key": "F1xJCZH8Qv0"}], "time_string": "9:44 AM", "set_number": 1, "key": "2014necmp_qm33", "time": "1397223840", "score_breakdown": null, "alliances": {"blue": {"score": 104, "teams": ["frc166", "frc4925", "frc4909"]}, "red": {"score": 204, "teams": ["frc176", "frc4564", "frc558"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 34, "videos": [{"type": "youtube", "key": "YeL99JfdEe8"}], "time_string": "9:51 AM", "set_number": 1, "key": "2014necmp_qm34", "time": "1397224260", "score_breakdown": null, "alliances": {"blue": {"score": 166, "teams": ["frc1519", "frc319", "frc3467"]}, "red": {"score": 115, "teams": ["frc1073", "frc172", "frc69"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 35, "videos": [{"type": "youtube", "key": "sXavEZJS2Fo"}], "time_string": "9:58 AM", "set_number": 1, "key": "2014necmp_qm35", "time": "1397224680", "score_breakdown": null, "alliances": {"blue": {"score": 156, "teams": ["frc61", "frc1058", "frc131"]}, "red": {"score": 165, "teams": ["frc2877", "frc4055", "frc3525"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 36, "videos": [{"type": "youtube", "key": "BlWH5Mu_JW4"}], "time_string": "10:05 AM", "set_number": 1, "key": "2014necmp_qm36", "time": "1397225100", "score_breakdown": null, "alliances": {"blue": {"score": 250, "teams": ["frc125", "frc2648", "frc195"]}, "red": {"score": 156, "teams": ["frc58", "frc1099", "frc5122"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 37, "videos": [{"type": "youtube", "key": "cQbjC51VVk0"}], "time_string": "10:12 AM", "set_number": 1, "key": "2014necmp_qm37", "time": "1397225520", "score_breakdown": null, "alliances": {"blue": {"score": 188, "teams": ["frc811", "frc78", "frc3461"]}, "red": {"score": 221, "teams": ["frc133", "frc1100", "frc228"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 38, "videos": [{"type": "youtube", "key": "97g6RRYvWe4"}], "time_string": "10:19 AM", "set_number": 1, "key": "2014necmp_qm38", "time": "1397225940", "score_breakdown": null, "alliances": {"blue": {"score": 154, "teams": ["frc3930", "frc178", "frc166"]}, "red": {"score": 166, "teams": ["frc230", "frc237", "frc2067"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 39, "videos": [{"type": "youtube", "key": "0zrxn9Qz0r0"}], "time_string": "10:26 AM", "set_number": 1, "key": "2014necmp_qm39", "time": "1397226360", "score_breakdown": null, "alliances": {"blue": {"score": 135, "teams": ["frc4958", "frc69", "frc4564"]}, "red": {"score": 147, "teams": ["frc138", "frc2877", "frc4761"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 4, "videos": [{"type": "youtube", "key": "VSN_wHILsZE"}], "time_string": "2:51 PM", "set_number": 1, "key": "2014necmp_qm4", "time": "1397155860", "score_breakdown": null, "alliances": {"blue": {"score": 118, "teams": ["frc811", "frc166", "frc5122"]}, "red": {"score": 98, "teams": ["frc1058", "frc999", "frc3467"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 40, "videos": [{"type": "youtube", "key": "cLuEygRrrJM"}], "time_string": "10:33 AM", "set_number": 1, "key": "2014necmp_qm40", "time": "1397226780", "score_breakdown": null, "alliances": {"blue": {"score": 112, "teams": ["frc1517", "frc176", "frc1153"]}, "red": {"score": 91, "teams": ["frc999", "frc61", "frc4909"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 41, "videos": [{"type": "youtube", "key": "fY1QShwfqrg"}], "time_string": "10:40 AM", "set_number": 1, "key": "2014necmp_qm41", "time": "1397227200", "score_breakdown": null, "alliances": {"blue": {"score": 161, "teams": ["frc319", "frc1073", "frc175"]}, "red": {"score": 189, "teams": ["frc2064", "frc4908", "frc558"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 42, "videos": [{"type": "youtube", "key": "j7iBmZJNyCY"}], "time_string": "10:47 AM", "set_number": 1, "key": "2014necmp_qm42", "time": "1397227620", "score_breakdown": null, "alliances": {"blue": {"score": 142, "teams": ["frc3525", "frc1058", "frc1735"]}, "red": {"score": 84, "teams": ["frc2084", "frc177", "frc246"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 43, "videos": [{"type": "youtube", "key": "Mqt5nz3dK0M"}], "time_string": "10:54 AM", "set_number": 1, "key": "2014necmp_qm43", "time": "1397228040", "score_breakdown": null, "alliances": {"blue": {"score": 240, "teams": ["frc125", "frc3467", "frc4048"]}, "red": {"score": 95, "teams": ["frc4473", "frc4925", "frc1519"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 44, "videos": [{"type": "youtube", "key": "3DeeP1LAU7s"}], "time_string": "11:01 AM", "set_number": 1, "key": "2014necmp_qm44", "time": "1397228460", "score_breakdown": null, "alliances": {"blue": {"score": 137, "teams": ["frc131", "frc2168", "frc716"]}, "red": {"score": 185, "teams": ["frc58", "frc1991", "frc172"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 45, "videos": [{"type": "youtube", "key": "LumUB5rt3TY"}], "time_string": "11:08 AM", "set_number": 1, "key": "2014necmp_qm45", "time": "1397228880", "score_breakdown": null, "alliances": {"blue": {"score": 251, "teams": ["frc2067", "frc4908", "frc5122"]}, "red": {"score": 190, "teams": ["frc4055", "frc69", "frc1100"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 46, "videos": [{"type": "youtube", "key": "CrFtbEuEfqQ"}], "time_string": "11:15 AM", "set_number": 1, "key": "2014necmp_qm46", "time": "1397229300", "score_breakdown": null, "alliances": {"blue": {"score": 122, "teams": ["frc1073", "frc78", "frc1058"]}, "red": {"score": 122, "teams": ["frc4564", "frc1153", "frc3930"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 47, "videos": [{"type": "youtube", "key": "d7pDBW6mN2w"}], "time_string": "11:22 AM", "set_number": 1, "key": "2014necmp_qm47", "time": "1397229720", "score_breakdown": null, "alliances": {"blue": {"score": 188, "teams": ["frc195", "frc166", "frc228"]}, "red": {"score": 56, "teams": ["frc3525", "frc4761", "frc4925"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 48, "videos": [{"type": "youtube", "key": "QtB76b2heXs"}], "time_string": "11:29 AM", "set_number": 1, "key": "2014necmp_qm48", "time": "1397230140", "score_breakdown": null, "alliances": {"blue": {"score": 156, "teams": ["frc138", "frc4909", "frc58"]}, "red": {"score": 144, "teams": ["frc1099", "frc175", "frc1991"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 49, "videos": [{"type": "youtube", "key": "5B6o93-xNzw"}], "time_string": "11:36 AM", "set_number": 1, "key": "2014necmp_qm49", "time": "1397230560", "score_breakdown": null, "alliances": {"blue": {"score": 204, "teams": ["frc4055", "frc1519", "frc178"]}, "red": {"score": 157, "teams": ["frc176", "frc811", "frc2648"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 5, "videos": [{"type": "youtube", "key": "pk29fEJyanA"}], "time_string": "2:58 PM", "set_number": 1, "key": "2014necmp_qm5", "time": "1397156280", "score_breakdown": null, "alliances": {"blue": {"score": 148, "teams": ["frc3525", "frc1991", "frc4908"]}, "red": {"score": 171, "teams": ["frc125", "frc1735", "frc4564"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 50, "videos": [{"type": "youtube", "key": "vW1_Y1s1Jno"}], "time_string": "11:43 AM", "set_number": 1, "key": "2014necmp_qm50", "time": "1397230980", "score_breakdown": null, "alliances": {"blue": {"score": 150, "teams": ["frc2064", "frc125", "frc1517"]}, "red": {"score": 168, "teams": ["frc131", "frc2877", "frc133"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 51, "videos": [{"type": "youtube", "key": "EHqjuYhTELI"}], "time_string": "1:00 PM", "set_number": 1, "key": "2014necmp_qm51", "time": "1397235600", "score_breakdown": null, "alliances": {"blue": {"score": 201, "teams": ["frc177", "frc558", "frc4958"]}, "red": {"score": 140, "teams": ["frc2084", "frc4048", "frc4473"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 52, "videos": [{"type": "youtube", "key": "K6JtabqQPxc"}], "time_string": "1:07 PM", "set_number": 1, "key": "2014necmp_qm52", "time": "1397236020", "score_breakdown": null, "alliances": {"blue": {"score": 79, "teams": ["frc999", "frc1735", "frc237"]}, "red": {"score": 170, "teams": ["frc3467", "frc2168", "frc172"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 53, "videos": [{"type": "youtube", "key": "3YIEqRktY1A"}], "time_string": "1:14 PM", "set_number": 1, "key": "2014necmp_qm53", "time": "1397236440", "score_breakdown": null, "alliances": {"blue": {"score": 167, "teams": ["frc716", "frc61", "frc319"]}, "red": {"score": 96, "teams": ["frc246", "frc230", "frc3461"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 54, "videos": [{"type": "youtube", "key": "vvhC8BXZ_UQ"}], "time_string": "1:21 PM", "set_number": 1, "key": "2014necmp_qm54", "time": "1397236860", "score_breakdown": null, "alliances": {"blue": {"score": 106, "teams": ["frc133", "frc4925", "frc1058"]}, "red": {"score": 118, "teams": ["frc131", "frc1100", "frc178"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 55, "videos": [{"type": "youtube", "key": "1b9KdVB6mlQ"}], "time_string": "1:28 PM", "set_number": 1, "key": "2014necmp_qm55", "time": "1397237280", "score_breakdown": null, "alliances": {"blue": {"score": 129, "teams": ["frc1153", "frc4055", "frc1099"]}, "red": {"score": 168, "teams": ["frc2064", "frc1073", "frc166"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 56, "videos": [{"type": "youtube", "key": "qkHPbbGUWs0"}, {"type": "youtube", "key": "3dShVJ3gwM4"}], "time_string": "1:35 PM", "set_number": 1, "key": "2014necmp_qm56", "time": "1397237700", "score_breakdown": null, "alliances": {"blue": {"score": 43, "teams": ["frc172", "frc138", "frc237"]}, "red": {"score": 222, "teams": ["frc125", "frc175", "frc177"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 57, "videos": [{"type": "youtube", "key": "YNKRbn2VEhc"}], "time_string": "1:42 PM", "set_number": 1, "key": "2014necmp_qm57", "time": "1397238120", "score_breakdown": null, "alliances": {"blue": {"score": 132, "teams": ["frc4048", "frc2877", "frc176"]}, "red": {"score": 241, "teams": ["frc2168", "frc4908", "frc195"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 58, "videos": [{"type": "youtube", "key": "lMW8X8ZV-aM"}, {"type": "youtube", "key": "PtrhVcuMi60"}], "time_string": "1:49 PM", "set_number": 1, "key": "2014necmp_qm58", "time": "1397238540", "score_breakdown": null, "alliances": {"blue": {"score": 160, "teams": ["frc2648", "frc2084", "frc61"]}, "red": {"score": 135, "teams": ["frc4909", "frc1991", "frc78"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 59, "videos": [{"type": "youtube", "key": "81W548hX8rw"}], "time_string": "1:56 PM", "set_number": 1, "key": "2014necmp_qm59", "time": "1397238960", "score_breakdown": null, "alliances": {"blue": {"score": 134, "teams": ["frc2067", "frc1517", "frc716"]}, "red": {"score": 157, "teams": ["frc228", "frc811", "frc4564"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 6, "videos": [{"type": "youtube", "key": "O6AULMPpD34"}], "time_string": "3:05 PM", "set_number": 1, "key": "2014necmp_qm6", "time": "1397156700", "score_breakdown": null, "alliances": {"blue": {"score": 114, "teams": ["frc558", "frc4473", "frc4761"]}, "red": {"score": 184, "teams": ["frc1100", "frc716", "frc237"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 60, "videos": [{"type": "youtube", "key": "fa634T_Hjs4"}], "time_string": "2:03 PM", "set_number": 1, "key": "2014necmp_qm60", "time": "1397239380", "score_breakdown": null, "alliances": {"blue": {"score": 175, "teams": ["frc3525", "frc558", "frc3461"]}, "red": {"score": 206, "teams": ["frc3467", "frc69", "frc58"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 61, "videos": [{"type": "youtube", "key": "iPTntE8ioq0"}], "time_string": "2:10 PM", "set_number": 1, "key": "2014necmp_qm61", "time": "1397239800", "score_breakdown": null, "alliances": {"blue": {"score": 94, "teams": ["frc246", "frc999", "frc4761"]}, "red": {"score": 103, "teams": ["frc4958", "frc1519", "frc3930"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 62, "videos": [{"type": "youtube", "key": "mGmzW4YpHSA"}], "time_string": "2:17 PM", "set_number": 1, "key": "2014necmp_qm62", "time": "1397240220", "score_breakdown": null, "alliances": {"blue": {"score": 235, "teams": ["frc1735", "frc5122", "frc4909"]}, "red": {"score": 241, "teams": ["frc319", "frc230", "frc4473"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 63, "videos": [{"type": "youtube", "key": "xhCgZX5n4ec"}], "time_string": "2:24 PM", "set_number": 1, "key": "2014necmp_qm63", "time": "1397240640", "score_breakdown": null, "alliances": {"blue": {"score": 191, "teams": ["frc138", "frc61", "frc4564"]}, "red": {"score": 220, "teams": ["frc2064", "frc2648", "frc133"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 64, "videos": [{"type": "youtube", "key": "GW-yN-flVHE"}], "time_string": "2:31 PM", "set_number": 1, "key": "2014necmp_qm64", "time": "1397241060", "score_breakdown": null, "alliances": {"blue": {"score": 190, "teams": ["frc178", "frc3461", "frc3467"]}, "red": {"score": 150, "teams": ["frc4055", "frc2168", "frc166"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 65, "videos": [{"type": "youtube", "key": "5rGqFepm8yg"}, {"type": "youtube", "key": "Hk2sTe8Huhk"}], "time_string": "2:38 PM", "set_number": 1, "key": "2014necmp_qm65", "time": "1397241480", "score_breakdown": null, "alliances": {"blue": {"score": 42, "teams": ["frc4925", "frc4958", "frc1517"]}, "red": {"score": 212, "teams": ["frc3525", "frc2084", "frc716"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 66, "videos": [{"type": "youtube", "key": "fWeo4Ckz5ys"}], "time_string": "2:45 PM", "set_number": 1, "key": "2014necmp_qm66", "time": "1397241900", "score_breakdown": null, "alliances": {"blue": {"score": 177, "teams": ["frc4048", "frc1100", "frc230"]}, "red": {"score": 225, "teams": ["frc69", "frc999", "frc175"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 67, "videos": [{"type": "youtube", "key": "h30vWnQGGE0"}], "time_string": "2:52 PM", "set_number": 1, "key": "2014necmp_qm67", "time": "1397242320", "score_breakdown": null, "alliances": {"blue": {"score": 207, "teams": ["frc172", "frc2067", "frc4761"]}, "red": {"score": 168, "teams": ["frc4908", "frc2877", "frc1099"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 68, "videos": [{"type": "youtube", "key": "Og5tWZLvCCo"}], "time_string": "2:59 PM", "set_number": 1, "key": "2014necmp_qm68", "time": "1397242740", "score_breakdown": null, "alliances": {"blue": {"score": 177, "teams": ["frc131", "frc811", "frc1991"]}, "red": {"score": 156, "teams": ["frc319", "frc195", "frc237"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 69, "videos": [{"type": "youtube", "key": "v5KSgb-cpws"}], "time_string": "3:06 PM", "set_number": 1, "key": "2014necmp_qm69", "time": "1397243160", "score_breakdown": null, "alliances": {"blue": {"score": 135, "teams": ["frc176", "frc58", "frc246"]}, "red": {"score": 221, "teams": ["frc1735", "frc78", "frc4473"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 7, "videos": [{"type": "youtube", "key": "ZfKoCvF54RI"}], "time_string": "3:12 PM", "set_number": 1, "key": "2014necmp_qm7", "time": "1397157120", "score_breakdown": null, "alliances": {"blue": {"score": 118, "teams": ["frc228", "frc172", "frc78"]}, "red": {"score": 53, "teams": ["frc4958", "frc4909", "frc178"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 70, "videos": [{"type": "youtube", "key": "qjY7mITYaAc"}, {"type": "youtube", "key": "tf6WXwYpoa0"}], "time_string": "3:13 PM", "set_number": 1, "key": "2014necmp_qm70", "time": "1397243580", "score_breakdown": null, "alliances": {"blue": {"score": 236, "teams": ["frc1153", "frc558", "frc1519"]}, "red": {"score": 126, "teams": ["frc3930", "frc5122", "frc177"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 71, "videos": [{"type": "youtube", "key": "i2iOcjnQjnU"}], "time_string": "3:20 PM", "set_number": 1, "key": "2014necmp_qm71", "time": "1397244000", "score_breakdown": null, "alliances": {"blue": {"score": 210, "teams": ["frc1073", "frc228", "frc230"]}, "red": {"score": 170, "teams": ["frc125", "frc1058", "frc172"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 72, "videos": [{"type": "youtube", "key": "gNEAwLr57Tw"}], "time_string": "3:27 PM", "set_number": 1, "key": "2014necmp_qm72", "time": "1397244420", "score_breakdown": null, "alliances": {"blue": {"score": 172, "teams": ["frc1100", "frc2648", "frc4909"]}, "red": {"score": 127, "teams": ["frc2168", "frc3525", "frc4048"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 73, "videos": [{"type": "youtube", "key": "mW4x7t3q_2A"}], "time_string": "3:34 PM", "set_number": 1, "key": "2014necmp_qm73", "time": "1397244840", "score_breakdown": null, "alliances": {"blue": {"score": 163, "teams": ["frc69", "frc811", "frc4473"]}, "red": {"score": 157, "teams": ["frc166", "frc175", "frc61"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 74, "videos": [{"type": "youtube", "key": "RaHDfJGPgnA"}], "time_string": "3:41 PM", "set_number": 1, "key": "2014necmp_qm74", "time": "1397245260", "score_breakdown": null, "alliances": {"blue": {"score": 133, "teams": ["frc1519", "frc1735", "frc716"]}, "red": {"score": 106, "teams": ["frc178", "frc2877", "frc1153"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 75, "videos": [{"type": "youtube", "key": "MixwONm7rXM"}], "time_string": "3:48 PM", "set_number": 1, "key": "2014necmp_qm75", "time": "1397245680", "score_breakdown": null, "alliances": {"blue": {"score": 110, "teams": ["frc138", "frc176", "frc5122"]}, "red": {"score": 147, "teams": ["frc131", "frc228", "frc558"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 76, "videos": [{"type": "youtube", "key": "XCxM7bP86XQ"}], "time_string": "3:55 PM", "set_number": 1, "key": "2014necmp_qm76", "time": "1397246100", "score_breakdown": null, "alliances": {"blue": {"score": 275, "teams": ["frc4055", "frc195", "frc999"]}, "red": {"score": 205, "teams": ["frc78", "frc2084", "frc125"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 77, "videos": [{"type": "youtube", "key": "gciRs1xcENo"}], "time_string": "4:02 PM", "set_number": 1, "key": "2014necmp_qm77", "time": "1397246520", "score_breakdown": null, "alliances": {"blue": {"score": 106, "teams": ["frc319", "frc4958", "frc2064"]}, "red": {"score": 261, "teams": ["frc1058", "frc2067", "frc58"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 78, "videos": [{"type": "youtube", "key": "a_NsquRxN9E"}], "time_string": "4:09 PM", "set_number": 1, "key": "2014necmp_qm78", "time": "1397246940", "score_breakdown": null, "alliances": {"blue": {"score": 197, "teams": ["frc1099", "frc237", "frc246"]}, "red": {"score": 131, "teams": ["frc1517", "frc133", "frc4564"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 79, "videos": [{"type": "youtube", "key": "htN-DTKbgfM"}, {"type": "youtube", "key": "H0lxcq069zU"}], "time_string": "4:16 PM", "set_number": 1, "key": "2014necmp_qm79", "time": "1397247360", "score_breakdown": null, "alliances": {"blue": {"score": 131, "teams": ["frc4925", "frc1991", "frc3461"]}, "red": {"score": 181, "teams": ["frc177", "frc4761", "frc1073"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 8, "videos": [{"type": "youtube", "key": "tOcshJd_MfU"}], "time_string": "3:19 PM", "set_number": 1, "key": "2014necmp_qm8", "time": "1397157540", "score_breakdown": null, "alliances": {"blue": {"score": 175, "teams": ["frc2877", "frc1073", "frc195"]}, "red": {"score": 141, "teams": ["frc2648", "frc175", "frc246"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 80, "videos": [{"type": "youtube", "key": "nJhZaa9zasw"}], "time_string": "4:23 PM", "set_number": 1, "key": "2014necmp_qm80", "time": "1397247780", "score_breakdown": null, "alliances": {"blue": {"score": 179, "teams": ["frc4908", "frc3467", "frc1100"]}, "red": {"score": 196, "teams": ["frc3930", "frc176", "frc131"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 81, "videos": [{"type": "youtube", "key": "DewGRfX-a88"}], "time_string": "4:30 PM", "set_number": 1, "key": "2014necmp_qm81", "time": "1397248200", "score_breakdown": null, "alliances": {"blue": {"score": 232, "teams": ["frc230", "frc999", "frc1153"]}, "red": {"score": 196, "teams": ["frc58", "frc2877", "frc228"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 82, "videos": [{"type": "youtube", "key": "DCc9ek5d8UU"}], "time_string": "4:37 PM", "set_number": 1, "key": "2014necmp_qm82", "time": "1397248620", "score_breakdown": null, "alliances": {"blue": {"score": 157, "teams": ["frc2084", "frc5122", "frc319"]}, "red": {"score": 106, "teams": ["frc2648", "frc138", "frc166"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 83, "videos": [{"type": "youtube", "key": "dRBLFwjrPuo"}], "time_string": "4:44 PM", "set_number": 1, "key": "2014necmp_qm83", "time": "1397249040", "score_breakdown": null, "alliances": {"blue": {"score": 186, "teams": ["frc133", "frc61", "frc4055"]}, "red": {"score": 86, "teams": ["frc1073", "frc4958", "frc4473"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 84, "videos": [{"type": "youtube", "key": "DmWY2ff_Qmg"}], "time_string": "4:51 PM", "set_number": 1, "key": "2014necmp_qm84", "time": "1397249460", "score_breakdown": null, "alliances": {"blue": {"score": 69, "teams": ["frc175", "frc2067", "frc4925"]}, "red": {"score": 265, "teams": ["frc78", "frc3467", "frc1099"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 85, "videos": [{"type": "youtube", "key": "Y90KHtb9bac"}], "time_string": "4:58 PM", "set_number": 1, "key": "2014necmp_qm85", "time": "1397249880", "score_breakdown": null, "alliances": {"blue": {"score": 118, "teams": ["frc178", "frc1058", "frc4908"]}, "red": {"score": 125, "teams": ["frc1517", "frc558", "frc1991"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 86, "videos": [{"type": "youtube", "key": "68gt0YvoAmU"}], "time_string": "5:05 PM", "set_number": 1, "key": "2014necmp_qm86", "time": "1397250300", "score_breakdown": null, "alliances": {"blue": {"score": 202, "teams": ["frc3525", "frc237", "frc4564"]}, "red": {"score": 172, "teams": ["frc1519", "frc4048", "frc3461"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 87, "videos": [{"type": "youtube", "key": "Uqh5jEynRGA"}], "time_string": "9:30 AM", "set_number": 1, "key": "2014necmp_qm87", "time": "1397309400", "score_breakdown": null, "alliances": {"blue": {"score": 130, "teams": ["frc246", "frc125", "frc69"]}, "red": {"score": 230, "teams": ["frc2168", "frc3930", "frc2064"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 88, "videos": [{"type": "youtube", "key": "eTk7i2bDagk"}], "time_string": "9:37 AM", "set_number": 1, "key": "2014necmp_qm88", "time": "1397309820", "score_breakdown": null, "alliances": {"blue": {"score": 79, "teams": ["frc177", "frc172", "frc4909"]}, "red": {"score": 316, "teams": ["frc195", "frc716", "frc811"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 89, "videos": [{"type": "youtube", "key": "YPWh5LFkz4E"}], "time_string": "9:44 AM", "set_number": 1, "key": "2014necmp_qm89", "time": "1397310240", "score_breakdown": null, "alliances": {"blue": {"score": 95, "teams": ["frc4761", "frc4958", "frc175"]}, "red": {"score": 123, "teams": ["frc1735", "frc1517", "frc319"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 9, "videos": [{"type": "youtube", "key": "XFMHYhrOQLU"}], "time_string": "3:26 PM", "set_number": 1, "key": "2014necmp_qm9", "time": "1397157960", "score_breakdown": null, "alliances": {"blue": {"score": 147, "teams": ["frc3930", "frc3461", "frc1735"]}, "red": {"score": 86, "teams": ["frc2064", "frc4925", "frc138"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 90, "videos": [{"type": "youtube", "key": "sxu1_xTETRI"}], "time_string": "9:51 AM", "set_number": 1, "key": "2014necmp_qm90", "time": "1397310660", "score_breakdown": null, "alliances": {"blue": {"score": 145, "teams": ["frc2877", "frc2084", "frc1100"]}, "red": {"score": 146, "teams": ["frc1073", "frc237", "frc58"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 91, "videos": [{"type": "youtube", "key": "r0xVIAj7yAw"}], "time_string": "9:58 AM", "set_number": 1, "key": "2014necmp_qm91", "time": "1397311080", "score_breakdown": null, "alliances": {"blue": {"score": 194, "teams": ["frc246", "frc228", "frc4908"]}, "red": {"score": 150, "teams": ["frc3467", "frc4925", "frc61"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 92, "videos": [{"type": "youtube", "key": "sTX3u1i6HPc"}], "time_string": "10:05 AM", "set_number": 1, "key": "2014necmp_qm92", "time": "1397311500", "score_breakdown": null, "alliances": {"blue": {"score": 150, "teams": ["frc177", "frc166", "frc69"]}, "red": {"score": 140, "teams": ["frc131", "frc125", "frc4909"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 93, "videos": [{"type": "youtube", "key": "DYZcpyDPFRU"}], "time_string": "10:12 AM", "set_number": 1, "key": "2014necmp_qm93", "time": "1397311920", "score_breakdown": null, "alliances": {"blue": {"score": 109, "teams": ["frc999", "frc3461", "frc172"]}, "red": {"score": 98, "teams": ["frc2648", "frc2067", "frc558"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 94, "videos": [{"type": "youtube", "key": "eX12jFiE0lw"}], "time_string": "10:19 AM", "set_number": 1, "key": "2014necmp_qm94", "time": "1397312340", "score_breakdown": null, "alliances": {"blue": {"score": 82, "teams": ["frc133", "frc2168", "frc178"]}, "red": {"score": 186, "teams": ["frc4761", "frc195", "frc1153"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 95, "videos": [{"type": "youtube", "key": "GU1VEmDzrEc"}], "time_string": "10:26 AM", "set_number": 1, "key": "2014necmp_qm95", "time": "1397312760", "score_breakdown": null, "alliances": {"blue": {"score": 187, "teams": ["frc4473", "frc3525", "frc176"]}, "red": {"score": 173, "teams": ["frc1058", "frc138", "frc811"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 96, "videos": [{"type": "youtube", "key": "QI3HZq3EJGA"}], "time_string": "10:33 AM", "set_number": 1, "key": "2014necmp_qm96", "time": "1397313180", "score_breakdown": null, "alliances": {"blue": {"score": 119, "teams": ["frc716", "frc1099", "frc3930"]}, "red": {"score": 225, "teams": ["frc1735", "frc4055", "frc4048"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 97, "videos": [{"type": "youtube", "key": "CjXDc8BT6pU"}], "time_string": "10:40 AM", "set_number": 1, "key": "2014necmp_qm97", "time": "1397313600", "score_breakdown": null, "alliances": {"blue": {"score": 225, "teams": ["frc230", "frc2064", "frc78"]}, "red": {"score": 162, "teams": ["frc5122", "frc1519", "frc1991"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 98, "videos": [{"type": "youtube", "key": "jnzHmSjlWgg"}, {"type": "youtube", "key": "AWLJ25XyrOc"}], "time_string": "10:47 AM", "set_number": 1, "key": "2014necmp_qm98", "time": "1397314020", "score_breakdown": null, "alliances": {"blue": {"score": 136, "teams": ["frc61", "frc1100", "frc177"]}, "red": {"score": 206, "teams": ["frc4564", "frc319", "frc178"]}}, "event_key": "2014necmp"}, {"comp_level": "qm", "match_number": 99, "videos": [{"type": "youtube", "key": "JA4q_E9e-L0"}, {"type": "youtube", "key": "_h47BURAm3U"}], "time_string": "10:54 AM", "set_number": 1, "key": "2014necmp_qm99", "time": "1397314440", "score_breakdown": null, "alliances": {"blue": {"score": 110, "teams": ["frc4958", "frc3461", "frc2084"]}, "red": {"score": 260, "teams": ["frc4908", "frc125", "frc1153"]}}, "event_key": "2014necmp"}, {"comp_level": "sf", "match_number": 1, "videos": [{"type": "youtube", "key": "pZH5eA-YVxk"}], "time_string": "2:42 PM", "set_number": 1, "key": "2014necmp_sf1m1", "time": "1397328120", "score_breakdown": null, "alliances": {"blue": {"score": 126, "teams": ["frc716", "frc811", "frc78"]}, "red": {"score": 178, "teams": ["frc5122", "frc558", "frc195"]}}, "event_key": "2014necmp"}, {"comp_level": "sf", "match_number": 2, "videos": [{"type": "youtube", "key": "VwcQspvplMw"}], "time_string": "2:54 PM", "set_number": 1, "key": "2014necmp_sf1m2", "time": "1397328840", "score_breakdown": null, "alliances": {"blue": {"score": 116, "teams": ["frc716", "frc319", "frc78"]}, "red": {"score": 189, "teams": ["frc558", "frc195", "frc5122"]}}, "event_key": "2014necmp"}, {"comp_level": "sf", "match_number": 1, "videos": [{"type": "youtube", "key": "tSEMwB4-NN8"}], "time_string": "2:48 PM", "set_number": 2, "key": "2014necmp_sf2m1", "time": "1397328480", "score_breakdown": null, "alliances": {"blue": {"score": 209, "teams": ["frc4055", "frc230", "frc177"]}, "red": {"score": 111, "teams": ["frc2168", "frc3525", "frc228"]}}, "event_key": "2014necmp"}, {"comp_level": "sf", "match_number": 2, "videos": [{"type": "youtube", "key": "DIUnjGEroec"}], "time_string": "3:00 PM", "set_number": 2, "key": "2014necmp_sf2m2", "time": "1397329200", "score_breakdown": null, "alliances": {"blue": {"score": 173, "teams": ["frc230", "frc177", "frc4055"]}, "red": {"score": 127, "teams": ["frc3525", "frc228", "frc2168"]}}, "event_key": "2014necmp"}]%


Eugene Fang 05-03-2015 11:27

Re: OPR
 
Quote:

Originally Posted by plnyyanks (Post 1453949)
The API works with all HTTP GET requests, so you can enter it in a browser, provided you have some extension that allows you to set the X-TBA-App-Id header. Otherwise, it'll just throw an error (like this)



Actually, the X-TBA-App-Id can be set as a URL param. Example: http://www.thebluealliance.com/api/v...ugene:test:v01

Edit: Phil ninjaed my ninja.

Ether 05-03-2015 12:30

Re: OPR
 
Quote:

Originally Posted by Eugene Fang (Post 1453953)
Actually, the X-TBA-App-Id can be set as a URL param. Example: http://www.thebluealliance.com/api/v...ugene:test:v01

I just noticed that URL retrieves 2014 data.

I replaced "2014necmp" with "2015inind" and examined the resulting data... and the "score breakdown" doesn't appear to include coopertition, tote, or container. Am I doing something wrong, or is the shiny new 2015 FRC API not providing that data?




Joe Ross 05-03-2015 13:04

Re: OPR
 
Quote:

Originally Posted by Ether (Post 1453982)
I just noticed that URL retrieves 2014 data.

I replaced "2014necmp" with "2015inind" and examined the resulting data... and the "score breakdown" doesn't appear to include coopertition, tote, or container. Am I doing something wrong, or is the shiny new 2015 FRC API not providing that data?




It's not in the API https://usfirst.collab.net/sf/go/artf4008

Ether 05-03-2015 13:21

Re: OPR
 
Quote:

Originally Posted by Joe Ross (Post 1453994)

Thanks Joe for that authoritative and definitive link.

So no Twitter data for 2015, and no per-match scoring categories in the API. Very un-inspiring for the stats mavens :-(

I am presently listening to the WMV audio recording to try to understand how such a decision was arrived at.



IKE 05-03-2015 15:58

Re: OPR
 
Any thoughts this year on "Modified" OPR? Looking at competition scores, I am a bit inclined to divide the Co-Op portion of the points in half. I would put this similar to 2012 whee you had to add points for the Co-Op bridge. In this scenario, both alliances have to bring some Co-Op to the middle in order to get the points.

I can definitely see where component OPR (RCs, Co-Ops, Totes,...) would be powerful this year if you do not have scouting.

AdamHeard 05-03-2015 16:11

Re: OPR
 
Quote:

Originally Posted by IKE (Post 1454085)
Any thoughts this year on "Modified" OPR? Looking at competition scores, I am a bit inclined to divide the Co-Op portion of the points in half. I would put this similar to 2012 whee you had to add points for the Co-Op bridge. In this scenario, both alliances have to bring some Co-Op to the middle in order to get the points.

I can definitely see where component OPR (RCs, Co-Ops, Totes,...) would be powerful this year if you do not have scouting.

Please someone make an easy to use (at event) component OPR calc :rolleyes:

I'll pay with 973 swag if someone does.

jlmcmchl 05-03-2015 16:25

Re: OPR
 
Quote:

Originally Posted by AdamHeard (Post 1454088)
Please someone make an easy to use (at event) component OPR calc :rolleyes:

I'll pay with 973 swag if someone does.

I'd totally do this if I didn't have to go to class in an hour and wasn't volunteering this weekend.

Heck, I'll probably do it anyways.

AdamHeard 05-03-2015 16:26

Re: OPR
 
Quote:

Originally Posted by jlmcmchl (Post 1454093)
I'd totally do this if I didn't have to go to class in an hour and wasn't volunteering this weekend.

Heck, I'll probably do it anyways.

I'm fine if you finish by next wednesday ;)

Citrus Dad 05-03-2015 17:30

Re: OPR
 
Quote:

Originally Posted by plnyyanks (Post 1449877)
The API will return the result of the calculations for OPR, DPR, and CCWM.

I'm really interested in that DPR this year...;)

plnyyanks 05-03-2015 17:34

Re: OPR
 
Quote:

Originally Posted by Citrus Dad (Post 1454126)
I'm really interested in that DPR this year...;)

By my calculations, DPR this year is 83% fear factor and 17% taking-cans-in-auto*

*Results not scientific

jlmcmchl 05-03-2015 19:11

Re: OPR
 
Quote:

Originally Posted by Citrus Dad (Post 1454126)
I'm really interested in that DPR this year...;)

Oh, if only The Blue Alliance's API gave me container scores for each match, then I could estimate the number of containers they get from the step.

Nevermind, I can totally do that.

Caleb Sykes 05-03-2015 20:00

Re: OPR
 
Quote:

Originally Posted by plnyyanks (Post 1454127)
By my calculations, DPR this year is 83% fear factor and 17% taking-cans-in-auto

I'm not sure that I believe this. At least 62% of statistics are made up on the spot.

Ether 05-03-2015 20:52

Re: OPR
 
Quote:

Originally Posted by Caleb Sykes (Post 1454182)
At least 62% of statistics are made up on the spot.

... and the remaining 48% are wrong.



Kevin Sevcik 06-03-2015 22:07

Re: OPR
 
Quote:

Originally Posted by Ether (Post 1454202)
Quote:

Originally Posted by Caleb Sykes (Post 1454182)
I'm not sure that I believe this. At least 62% of statistics are made up on the spot.

... and the remaining 48% are wrong.

I commend your 110% effort on this joke, Ether.

PayneTrain 06-03-2015 22:54

Re: OPR
 
Quote:

Originally Posted by plnyyanks (Post 1454127)
By my calculations, DPR this year is 83% fear factor and 17% taking-cans-in-auto*

*Results not scientific

This whole time I thought it was 43% litter and 57% gravity

EricH 06-03-2015 23:24

Re: OPR
 
Quote:

Originally Posted by PayneTrain (Post 1454624)
This whole time I thought it was 43% litter and 57% gravity

You sure it's not 50% not having a loose cannon robot, 33% gravity, 10% luck, and 47% having your HP land a noodle inside your opponent's robot?

(And yes, that's more than 100%. Last I checked, 90% of statistics are made up on the spot with no math checks involved.)

Caleb Sykes 07-03-2015 02:40

Re: OPR
 
Quote:

Originally Posted by EricH (Post 1454630)
(And yes, that's more than 100%. Last I checked, 90% of statistics are made up on the spot with no math checks involved.)

At least 50% of the posts on this thread are a joke.

Okay, I'm 100% done making statistics jokes now.


All times are GMT -5. The time now is 14:25.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi