{"rubric":{"name":"Northstar brief rubric","version":1,"passScore":0.8,"thresholds":{"requiredSections":["Market snapshot","Players","Pricing","Differentiators","Risks","Recommended angle"],"minCitationsPer120Words":1,"maxCriticLoops":2,"maxRunTokens":120000,"allowUncitedNumbers":false,"minDistinctSources":4,"minKeyFactCoverage":0.6,"minWords":450,"maxWords":1500},"weights":{"sections":0.2,"citationDensity":0.2,"uncitedNumbers":0.2,"keyFacts":0.2,"criticLoop":0.1,"cost":0.1},"judge":{"scale":[1,5],"criteria":[{"id":"faithfulness","question":"Is every statement in the brief supported by the cited source text, with no added facts?"},{"id":"usefulness","question":"Would a strategy consultant find the Recommended angle specific and actionable, given the evidence?"},{"id":"balance","question":"Does the brief name conflicting figures or weak sources instead of smoothing them over?"}]}},"latest":{"batchId":"batch_7dqkanw0bo","createdAt":"2026-10-22T17:20:27.214Z","mean":0.913,"passedCount":5,"topicCount":6,"costUsd":0.102810356,"judge":{"status":"skipped","model":"@cf/meta/llama-3.3-70b-instruct-fp8-fast","reason":"the model provider answered 429 (daily allowance spent); the deterministic score stands alone","mean":null},"topics":[{"topicId":"lisbon-scooters","title":"Electric scooter rental in Lisbon","total":0.9,"passed":true,"checks":[{"id":"sections","label":"Required sections","score":1,"detail":"All 6 sections are present and say something.","gating":true,"passed":true,"weight":0.2},{"id":"citationDensity","label":"Citation density","score":1,"detail":"28 citations in 545 words is 6.17 per 120 words (at least 1 wanted).","gating":true,"passed":true,"weight":0.2},{"id":"uncitedNumbers","label":"No uncited numbers","score":1,"detail":"All 24 sentences with a figure carry a citation.","gating":true,"passed":true,"weight":0.2},{"id":"keyFacts","label":"Key facts covered","score":0.5,"detail":"3 of 5 key facts and 1 of 3 named players. Missing: Ride Lisboa holds 38% of trips; Ride Lisboa unlock fee and per-minute rate; Names Ride Lisboa; Names Alfama Volt.","gating":false,"passed":false,"weight":0.2},{"id":"criticLoop","label":"Critic loops within limit","score":1,"detail":"1 follow-up round (at most 2 allowed).","gating":true,"passed":true,"weight":0.1},{"id":"cost","label":"Cost within the cap","score":1,"detail":"24,674 of 120,000 tokens (21% of the cap).","gating":true,"passed":true,"weight":0.1}],"gates":[{"id":"length","label":"Length in range","score":1,"detail":"545 words (450 to 1500 wanted).","gating":true,"passed":true,"weight":0},{"id":"sources","label":"Distinct sources","score":1,"detail":"6 distinct sources cited (at least 4 wanted).","gating":true,"passed":true,"weight":0}],"metrics":{"loops":1,"words":545,"tokens":24674,"costUsd":0.017607682,"density":6.17,"tokenCap":120000,"citations":28,"namesTotal":3,"namesCovered":1,"keyFactsTotal":5,"uncitedNumbers":0,"distinctSources":6,"keyFactsCovered":3,"sectionsPresent":6,"invalidCitations":0,"sentencesWithNumbers":24},"missing":["Ride Lisboa holds 38% of trips","Ride Lisboa unlock fee and per-minute rate","Names Ride Lisboa","Names Alfama Volt"],"run":{"model":"scripted-extractive","result":"brief","status":"completed","activeMs":1143,"provider":"scripted","searchMode":"offline_corpus"},"judge":{"mean":null,"model":"@cf/meta/llama-3.3-70b-instruct-fp8-fast","reason":"the model provider answered 429 (daily allowance spent); the deterministic score stands alone","scores":null,"status":"skipped","tokens":0,"comment":null}},{"topicId":"singapore-mealkits","title":"Meal-kit delivery in Singapore","total":0.9,"passed":true,"checks":[{"id":"sections","label":"Required sections","score":1,"detail":"All 6 sections are present and say something.","gating":true,"passed":true,"weight":0.2},{"id":"citationDensity","label":"Citation density","score":1,"detail":"28 citations in 549 words is 6.12 per 120 words (at least 1 wanted).","gating":true,"passed":true,"weight":0.2},{"id":"uncitedNumbers","label":"No uncited numbers","score":1,"detail":"All 24 sentences with a figure carry a citation.","gating":true,"passed":true,"weight":0.2},{"id":"keyFacts","label":"Key facts covered","score":0.5,"detail":"2 of 5 key facts and 2 of 3 named players. Missing: 62% of new subscribers cancel within 12 weeks; S$68 acquisition cost; Packaging producer responsibility fee; Names Wok & Whisk.","gating":false,"passed":false,"weight":0.2},{"id":"criticLoop","label":"Critic loops within limit","score":1,"detail":"1 follow-up round (at most 2 allowed).","gating":true,"passed":true,"weight":0.1},{"id":"cost","label":"Cost within the cap","score":1,"detail":"21,130 of 120,000 tokens (18% of the cap).","gating":true,"passed":true,"weight":0.1}],"gates":[{"id":"length","label":"Length in range","score":1,"detail":"549 words (450 to 1500 wanted).","gating":true,"passed":true,"weight":0},{"id":"sources","label":"Distinct sources","score":1,"detail":"6 distinct sources cited (at least 4 wanted).","gating":true,"passed":true,"weight":0}],"metrics":{"loops":1,"words":549,"tokens":21130,"costUsd":0.01522865,"density":6.12,"tokenCap":120000,"citations":28,"namesTotal":3,"namesCovered":2,"keyFactsTotal":5,"uncitedNumbers":0,"distinctSources":6,"keyFactsCovered":2,"sectionsPresent":6,"invalidCitations":0,"sentencesWithNumbers":24},"missing":["62% of new subscribers cancel within 12 weeks","S$68 acquisition cost","Packaging producer responsibility fee","Names Wok & Whisk"],"run":{"model":"scripted-extractive","result":"brief","status":"completed","activeMs":476,"provider":"scripted","searchMode":"offline_corpus"},"judge":{"mean":null,"model":"@cf/meta/llama-3.3-70b-instruct-fp8-fast","reason":"an earlier topic got a 429, so the rest were not tried","scores":null,"status":"skipped","tokens":0,"comment":null}},{"topicId":"podcast-hosting","title":"Podcast hosting platforms","total":0.85,"passed":true,"checks":[{"id":"sections","label":"Required sections","score":1,"detail":"All 6 sections are present and say something.","gating":true,"passed":true,"weight":0.2},{"id":"citationDensity","label":"Citation density","score":1,"detail":"26 citations in 551 words is 5.66 per 120 words (at least 1 wanted).","gating":true,"passed":true,"weight":0.2},{"id":"uncitedNumbers","label":"No uncited numbers","score":1,"detail":"All 22 sentences with a figure carry a citation.","gating":true,"passed":true,"weight":0.2},{"id":"keyFacts","label":"Key facts covered","score":0.25,"detail":"1 of 5 key facts and 1 of 3 named players. Missing: 3.9 million active shows; Soundshelf share of active shows; Median entry plan price fell 14%; 31% of new shows are video-first; Names Castwell; Names Reedwave.","gating":false,"passed":false,"weight":0.2},{"id":"criticLoop","label":"Critic loops within limit","score":1,"detail":"1 follow-up round (at most 2 allowed).","gating":true,"passed":true,"weight":0.1},{"id":"cost","label":"Cost within the cap","score":1,"detail":"21,346 of 120,000 tokens (18% of the cap).","gating":true,"passed":true,"weight":0.1}],"gates":[{"id":"length","label":"Length in range","score":1,"detail":"551 words (450 to 1500 wanted).","gating":true,"passed":true,"weight":0},{"id":"sources","label":"Distinct sources","score":1,"detail":"7 distinct sources cited (at least 4 wanted).","gating":true,"passed":true,"weight":0}],"metrics":{"loops":1,"words":551,"tokens":21346,"costUsd":0.015564378,"density":5.66,"tokenCap":120000,"citations":26,"namesTotal":3,"namesCovered":1,"keyFactsTotal":5,"uncitedNumbers":0,"distinctSources":7,"keyFactsCovered":1,"sectionsPresent":6,"invalidCitations":0,"sentencesWithNumbers":22},"missing":["3.9 million active shows","Soundshelf share of active shows","Median entry plan price fell 14%","31% of new shows are video-first","Names Castwell","Names Reedwave"],"run":{"model":"scripted-extractive","result":"brief","status":"completed","activeMs":614,"provider":"scripted","searchMode":"offline_corpus"},"judge":{"mean":null,"model":"@cf/meta/llama-3.3-70b-instruct-fp8-fast","reason":"an earlier topic got a 429, so the rest were not tried","scores":null,"status":"skipped","tokens":0,"comment":null}},{"topicId":"law-firm-compliance","title":"Compliance software for small law firms","total":0.95,"passed":true,"checks":[{"id":"sections","label":"Required sections","score":1,"detail":"All 6 sections are present and say something.","gating":true,"passed":true,"weight":0.2},{"id":"citationDensity","label":"Citation density","score":1,"detail":"26 citations in 479 words is 6.51 per 120 words (at least 1 wanted).","gating":true,"passed":true,"weight":0.2},{"id":"uncitedNumbers","label":"No uncited numbers","score":1,"detail":"All 22 sentences with a figure carry a citation.","gating":true,"passed":true,"weight":0.2},{"id":"keyFacts","label":"Key facts covered","score":0.75,"detail":"4 of 5 key facts and 2 of 3 named players. Missing: 38% of sanctions involve trust accounts; Names LedgerLaw Shield.","gating":false,"passed":true,"weight":0.2},{"id":"criticLoop","label":"Critic loops within limit","score":1,"detail":"2 follow-up rounds (at most 2 allowed).","gating":true,"passed":true,"weight":0.1},{"id":"cost","label":"Cost within the cap","score":1,"detail":"31,792 of 120,000 tokens (26% of the cap).","gating":true,"passed":true,"weight":0.1}],"gates":[{"id":"length","label":"Length in range","score":1,"detail":"479 words (450 to 1500 wanted).","gating":true,"passed":true,"weight":0},{"id":"sources","label":"Distinct sources","score":1,"detail":"7 distinct sources cited (at least 4 wanted).","gating":true,"passed":true,"weight":0}],"metrics":{"loops":2,"words":479,"tokens":31792,"costUsd":0.022123656,"density":6.51,"tokenCap":120000,"citations":26,"namesTotal":3,"namesCovered":2,"keyFactsTotal":5,"uncitedNumbers":0,"distinctSources":7,"keyFactsCovered":4,"sectionsPresent":6,"invalidCitations":0,"sentencesWithNumbers":22},"missing":["38% of sanctions involve trust accounts","Names LedgerLaw Shield"],"run":{"model":"scripted-extractive","result":"brief","status":"completed","activeMs":1240,"provider":"scripted","searchMode":"offline_corpus"},"judge":{"mean":null,"model":"@cf/meta/llama-3.3-70b-instruct-fp8-fast","reason":"an earlier topic got a 429, so the rest were not tried","scores":null,"status":"skipped","tokens":0,"comment":null}},{"topicId":"pet-insurance-de","title":"Pet insurance in Germany","total":0.95,"passed":false,"checks":[{"id":"sections","label":"Required sections","score":1,"detail":"All 6 sections are present and say something.","gating":true,"passed":true,"weight":0.2},{"id":"citationDensity","label":"Citation density","score":1,"detail":"24 citations in 447 words is 6.44 per 120 words (at least 1 wanted).","gating":true,"passed":true,"weight":0.2},{"id":"uncitedNumbers","label":"No uncited numbers","score":1,"detail":"All 20 sentences with a figure carry a citation.","gating":true,"passed":true,"weight":0.2},{"id":"keyFacts","label":"Key facts covered","score":0.75,"detail":"4 of 5 key facts and 2 of 3 named players. Missing: Average claim up 9.3% to EUR 412; Names Tierwohl Direkt.","gating":false,"passed":true,"weight":0.2},{"id":"criticLoop","label":"Critic loops within limit","score":1,"detail":"1 follow-up round (at most 2 allowed).","gating":true,"passed":true,"weight":0.1},{"id":"cost","label":"Cost within the cap","score":1,"detail":"20,093 of 120,000 tokens (17% of the cap).","gating":true,"passed":true,"weight":0.1}],"gates":[{"id":"length","label":"Length in range","score":0,"detail":"447 words (450 to 1500 wanted).","gating":true,"passed":false,"weight":0},{"id":"sources","label":"Distinct sources","score":1,"detail":"5 distinct sources cited (at least 4 wanted).","gating":true,"passed":true,"weight":0}],"metrics":{"loops":1,"words":447,"tokens":20093,"costUsd":0.014236849,"density":6.44,"tokenCap":120000,"citations":24,"namesTotal":3,"namesCovered":2,"keyFactsTotal":5,"uncitedNumbers":0,"distinctSources":5,"keyFactsCovered":4,"sectionsPresent":6,"invalidCitations":0,"sentencesWithNumbers":20},"missing":["Average claim up 9.3% to EUR 412","Names Tierwohl Direkt"],"run":{"model":"scripted-extractive","result":"brief","status":"completed","activeMs":713,"provider":"scripted","searchMode":"offline_corpus"},"judge":{"mean":null,"model":"@cf/meta/llama-3.3-70b-instruct-fp8-fast","reason":"an earlier topic got a 429, so the rest were not tried","scores":null,"status":"skipped","tokens":0,"comment":null}},{"topicId":"home-batteries-au","title":"Home battery storage in Australia","total":0.926,"passed":true,"checks":[{"id":"sections","label":"Required sections","score":1,"detail":"All 6 sections are present and say something.","gating":true,"passed":true,"weight":0.2},{"id":"citationDensity","label":"Citation density","score":1,"detail":"30 citations in 562 words is 6.41 per 120 words (at least 1 wanted).","gating":true,"passed":true,"weight":0.2},{"id":"uncitedNumbers","label":"No uncited numbers","score":1,"detail":"All 26 sentences with a figure carry a citation.","gating":true,"passed":true,"weight":0.2},{"id":"keyFacts","label":"Key facts covered","score":0.63,"detail":"3 of 5 key facts and 2 of 3 named players. Missing: AUD 300 per kWh rebate up to 14 kWh; Payback 9.8 years, 7.4 with a VPP; Names Kookaburra Energy.","gating":false,"passed":true,"weight":0.2},{"id":"criticLoop","label":"Critic loops within limit","score":1,"detail":"1 follow-up round (at most 2 allowed).","gating":true,"passed":true,"weight":0.1},{"id":"cost","label":"Cost within the cap","score":1,"detail":"25,097 of 120,000 tokens (21% of the cap).","gating":true,"passed":true,"weight":0.1}],"gates":[{"id":"length","label":"Length in range","score":1,"detail":"562 words (450 to 1500 wanted).","gating":true,"passed":true,"weight":0},{"id":"sources","label":"Distinct sources","score":1,"detail":"8 distinct sources cited (at least 4 wanted).","gating":true,"passed":true,"weight":0}],"metrics":{"loops":1,"words":562,"tokens":25097,"costUsd":0.018049141,"density":6.41,"tokenCap":120000,"citations":30,"namesTotal":3,"namesCovered":2,"keyFactsTotal":5,"uncitedNumbers":0,"distinctSources":8,"keyFactsCovered":3,"sectionsPresent":6,"invalidCitations":0,"sentencesWithNumbers":26},"missing":["AUD 300 per kWh rebate up to 14 kWh","Payback 9.8 years, 7.4 with a VPP","Names Kookaburra Energy"],"run":{"model":"scripted-extractive","result":"brief","status":"completed","activeMs":755,"provider":"scripted","searchMode":"offline_corpus"},"judge":{"mean":null,"model":"@cf/meta/llama-3.3-70b-instruct-fp8-fast","reason":"an earlier topic got a 429, so the rest were not tried","scores":null,"status":"skipped","tokens":0,"comment":null}}]},"history":[{"batchId":"batch_7dqkanw0bo","createdAt":"2026-10-22T17:20:27.214Z","mean":0.913,"passedCount":5,"topicCount":6}]}