{
  "id": "brightfjord-workplace",
  "kind": "rag",
  "version": "v1",
  "answers": [
    {
      "key": "pto-days",
      "question": "How many days of PTO does a Brightfjord employee get per calendar year?",
      "answer": 20,
      "type": "number",
      "unit": "days",
      "tolerance": 0,
      "evidence": [
        {
          "file": "wiki-employee-handbook.md",
          "page": null,
          "quote": "Everyone gets **20 days of PTO** per calendar year",
          "bbox": null,
          "cell": null,
          "line": 13,
          "doc_id": "wiki-employee-handbook",
          "role": "proof"
        }
      ],
      "kind": "single-hop",
      "answerable": true,
      "expected_behavior": "answer"
    },
    {
      "key": "home-office-allowance",
      "question": "How large is the home-office allowance for new hires?",
      "answer": "500",
      "type": "money",
      "unit": "USD",
      "tolerance": null,
      "evidence": [
        {
          "file": "wiki-employee-handbook.md",
          "page": null,
          "quote": "New hires get a laptop and a $500 home-office allowance.",
          "bbox": null,
          "cell": null,
          "line": 24,
          "doc_id": "wiki-employee-handbook",
          "role": "proof"
        }
      ],
      "kind": "single-hop",
      "answerable": true,
      "expected_behavior": "answer"
    },
    {
      "key": "dispatch-api-limit",
      "question": "What is the Dispatch API rate limit?",
      "answer": "600 requests per minute per account",
      "type": "string",
      "unit": null,
      "tolerance": null,
      "evidence": [
        {
          "file": "wiki-product-dispatch.md",
          "page": null,
          "quote": "API: 600 requests per minute per account",
          "bbox": null,
          "cell": null,
          "line": 21,
          "doc_id": "wiki-product-dispatch",
          "role": "proof"
        }
      ],
      "kind": "single-hop",
      "answerable": true,
      "expected_behavior": "answer"
    },
    {
      "key": "status-page-deadline",
      "question": "How soon after declaring a SEV-1 or SEV-2 must the status page be updated?",
      "answer": 15,
      "type": "number",
      "unit": "minutes",
      "tolerance": 0,
      "evidence": [
        {
          "file": "wiki-incident-process.md",
          "page": null,
          "quote": "Post to the status page within 15 minutes of declaring a SEV-1 or SEV-2.",
          "bbox": null,
          "cell": null,
          "line": 19,
          "doc_id": "wiki-incident-process",
          "role": "proof"
        }
      ],
      "kind": "single-hop",
      "answerable": true,
      "expected_behavior": "answer"
    },
    {
      "key": "conference-bridge",
      "question": "What number is the conference bridge for incidents?",
      "answer": "+1 555-0100 ext. 299",
      "type": "string",
      "unit": null,
      "tolerance": null,
      "evidence": [
        {
          "file": "wiki-oncall-runbook.md",
          "page": null,
          "quote": "Conference bridge for incidents: +1 555-0100 ext. 299.",
          "bbox": null,
          "cell": null,
          "line": 18,
          "doc_id": "wiki-oncall-runbook",
          "role": "proof"
        }
      ],
      "kind": "single-hop",
      "answerable": true,
      "expected_behavior": "answer"
    },
    {
      "key": "routes-timeout",
      "question": "After how long does a Routes optimization job time out?",
      "answer": 30,
      "type": "number",
      "unit": "seconds",
      "tolerance": 0,
      "evidence": [
        {
          "file": "wiki-product-routes.md",
          "page": null,
          "quote": "An optimization job times out after 30 seconds.",
          "bbox": null,
          "cell": null,
          "line": 16,
          "doc_id": "wiki-product-routes",
          "role": "proof"
        }
      ],
      "kind": "single-hop",
      "answerable": true,
      "expected_behavior": "answer"
    },
    {
      "key": "ironwood-po",
      "question": "Which PO number did Ironwood's accounts payable need on invoice INV-2026-0023?",
      "answer": "PO-IW-77310",
      "type": "string",
      "unit": null,
      "tolerance": null,
      "evidence": [
        {
          "file": "email-THR-022.md",
          "page": null,
          "quote": "please reissue with our PO number PO-IW-77310",
          "bbox": null,
          "cell": null,
          "line": 17,
          "doc_id": "email-THR-022",
          "role": "proof"
        }
      ],
      "kind": "single-hop",
      "answerable": true,
      "expected_behavior": "answer"
    },
    {
      "key": "soc2",
      "question": "Which SOC 2 report could Brightfjord share during the March 2026 security review, and when does the Type II audit window close?",
      "answer": "A SOC 2 Type I report; the Type II audit window closes in June.",
      "type": "string",
      "unit": null,
      "tolerance": null,
      "evidence": [
        {
          "file": "email-THR-024.md",
          "page": null,
          "quote": "We have a SOC 2 Type I report; the Type II audit window closes in June.",
          "bbox": null,
          "cell": null,
          "line": 19,
          "doc_id": "email-THR-024",
          "role": "proof"
        }
      ],
      "kind": "single-hop",
      "answerable": true,
      "expected_behavior": "answer"
    },
    {
      "key": "discount-matrix-owner",
      "question": "Who owns the wiki page that sets discount approvals, and who must approve a discount above 20%?",
      "answer": "Tomas Lindqvist (CFO) owns the page; discounts over 20% need the CEO, Ingrid Solberg.",
      "type": "string",
      "unit": null,
      "tolerance": null,
      "evidence": [
        {
          "file": "wiki-pricing-and-discounts.md",
          "page": null,
          "quote": "Owner: Tomas Lindqvist (CFO).",
          "bbox": null,
          "cell": null,
          "line": 3,
          "doc_id": "wiki-pricing-and-discounts",
          "role": "proof"
        },
        {
          "file": "wiki-pricing-and-discounts.md",
          "page": null,
          "quote": "| Over 20% | CEO (Ingrid Solberg) |",
          "bbox": null,
          "cell": null,
          "line": 31,
          "doc_id": "wiki-pricing-and-discounts",
          "role": "proof"
        }
      ],
      "kind": "multi-hop",
      "answerable": true,
      "expected_behavior": "answer"
    },
    {
      "key": "lakeshore-seats",
      "question": "How were Lakeshore's renewal seats priced, and what was the corrected annual total?",
      "answer": "40 existing seats at $45 and 10 new seats at $49; $27,480.00 for the year (invoice INV-2026-0016).",
      "type": "string",
      "unit": null,
      "tolerance": null,
      "evidence": [
        {
          "file": "email-THR-007.md",
          "page": null,
          "quote": "Lakeshore renews Feb 9 with 10 extra seats, so that one will be mixed: 40 at $45, 10 at $49.",
          "bbox": null,
          "cell": null,
          "line": 37,
          "doc_id": "email-THR-007",
          "role": "proof"
        },
        {
          "file": "ticket-TCK-1030.md",
          "page": null,
          "quote": "issued INV-2026-0016: 40 seats at $45 and 10 seats at $49, total $27,480.00 for the year.",
          "bbox": null,
          "cell": null,
          "line": 23,
          "doc_id": "ticket-TCK-1030",
          "role": "proof"
        }
      ],
      "kind": "multi-hop",
      "answerable": true,
      "expected_behavior": "answer"
    },
    {
      "key": "routes-root-cause",
      "question": "What caused the February 10, 2026 Routes optimization timeouts?",
      "answer": "Migration 0042 in routes-engine v2.3.0 rebuilt route_stops without recreating the composite index on (route_id, sequence), so long routes fell back to sequential scans.",
      "type": "string",
      "unit": null,
      "tolerance": null,
      "evidence": [
        {
          "file": "wiki-postmortem-2026-02-10-routes.md",
          "page": null,
          "quote": "did not recreate the composite index on `(route_id, sequence)`",
          "bbox": null,
          "cell": null,
          "line": 19,
          "doc_id": "wiki-postmortem-2026-02-10-routes",
          "role": "proof"
        }
      ],
      "kind": "single-hop",
      "answerable": true,
      "expected_behavior": "answer"
    },
    {
      "key": "ben-buddy",
      "question": "Who was Ben Carter's onboarding buddy, and why was the buddy from another team?",
      "answer": "Lucy Park (Product Engineering); buddies are deliberately chosen from a different team to give a second view of the codebase and the company.",
      "type": "string",
      "unit": null,
      "tolerance": null,
      "evidence": [
        {
          "file": "email-THR-002.md",
          "page": null,
          "quote": "Your onboarding buddy for the first 30 days is Lucy Park (Product Engineering).",
          "bbox": null,
          "cell": null,
          "line": 13,
          "doc_id": "email-THR-002",
          "role": "proof"
        },
        {
          "file": "wiki-engineering-onboarding.md",
          "page": null,
          "quote": "The buddy is chosen from a **different team** than the new hire",
          "bbox": null,
          "cell": null,
          "line": 7,
          "doc_id": "wiki-engineering-onboarding",
          "role": "proof"
        }
      ],
      "kind": "multi-hop",
      "answerable": true,
      "expected_behavior": "answer"
    },
    {
      "key": "ben-oncall",
      "question": "From when, and in what role, does Ben Carter join the on-call rotation?",
      "answer": "As secondary, from 2026-03-09.",
      "type": "string",
      "unit": null,
      "tolerance": null,
      "evidence": [
        {
          "file": "wiki-oncall-runbook.md",
          "page": null,
          "quote": "Ben Carter joins as secondary from 2026-03-09.",
          "bbox": null,
          "cell": null,
          "line": 8,
          "doc_id": "wiki-oncall-runbook",
          "role": "proof"
        }
      ],
      "kind": "single-hop",
      "answerable": true,
      "expected_behavior": "answer"
    },
    {
      "key": "ios-upload",
      "question": "In Field app 4.12.0, after how long did iOS suspend the background upload, and which release fixed it?",
      "answer": "After about 30 seconds; fixed in 4.12.1 (2026-03-04).",
      "type": "string",
      "unit": null,
      "tolerance": null,
      "evidence": [
        {
          "file": "wiki-field-app-releases.md",
          "page": null,
          "quote": "on iOS the background task was suspended after about 30 seconds",
          "bbox": null,
          "cell": null,
          "line": 13,
          "doc_id": "wiki-field-app-releases",
          "role": "proof"
        },
        {
          "file": "wiki-field-app-releases.md",
          "page": null,
          "quote": "## 4.12.1 (2026-03-04)",
          "bbox": null,
          "cell": null,
          "line": 5,
          "doc_id": "wiki-field-app-releases",
          "role": "proof"
        }
      ],
      "kind": "multi-hop",
      "answerable": true,
      "expected_behavior": "answer"
    },
    {
      "key": "incident-customers",
      "question": "Which five customers filed tickets during the February 10 Routes incident?",
      "answer": [
        "Summit Air Comfort",
        "Halvorsen Mechanical",
        "Westvale Fleet Services",
        "Ridgeline Solar Installers",
        "Lakeshore Heating & Cooling"
      ],
      "type": "list",
      "unit": null,
      "tolerance": null,
      "evidence": [
        {
          "file": "wiki-postmortem-2026-02-10-routes.md",
          "page": null,
          "quote": "Five customers filed tickets: Summit Air Comfort, Halvorsen Mechanical, Westvale Fleet Services, Ridgeline Solar Installers and Lakeshore Heating & Cooling.",
          "bbox": null,
          "cell": null,
          "line": 15,
          "doc_id": "wiki-postmortem-2026-02-10-routes",
          "role": "proof"
        }
      ],
      "kind": "aggregate",
      "answerable": true,
      "expected_behavior": "answer",
      "order_matters": false
    },
    {
      "key": "p1-targets",
      "question": "What are the P1 first-response targets on the Enterprise, Team and Starter plans?",
      "answer": {
        "Enterprise": "1 hour",
        "Team": "2 hours",
        "Starter": "4 hours"
      },
      "type": "object",
      "unit": null,
      "tolerance": null,
      "evidence": [
        {
          "file": "wiki-support-sla.md",
          "page": null,
          "quote": "| Enterprise | 1 hour | 4 hours | 8 hours | 24 hours |",
          "bbox": null,
          "cell": null,
          "line": 16,
          "doc_id": "wiki-support-sla",
          "role": "proof"
        },
        {
          "file": "wiki-support-sla.md",
          "page": null,
          "quote": "| Team | 2 hours | 8 hours | 24 hours | 48 hours |",
          "bbox": null,
          "cell": null,
          "line": 17,
          "doc_id": "wiki-support-sla",
          "role": "proof"
        },
        {
          "file": "wiki-support-sla.md",
          "page": null,
          "quote": "| Starter | 4 hours | 24 hours | 48 hours | 72 hours |",
          "bbox": null,
          "cell": null,
          "line": 18,
          "doc_id": "wiki-support-sla",
          "role": "proof"
        },
        {
          "file": "email-THR-006.md",
          "page": null,
          "quote": "first response targets for P1 are 1 hour on Enterprise, 2 hours on Team and 4 hours on Starter",
          "bbox": null,
          "cell": null,
          "line": 10,
          "doc_id": "email-THR-006",
          "role": "context"
        }
      ],
      "kind": "aggregate",
      "answerable": true,
      "expected_behavior": "answer"
    },
    {
      "key": "pto-carryover",
      "question": "How many unused PTO days can be carried over from 2026 into 2027?",
      "answer": 10,
      "type": "number",
      "unit": "days",
      "tolerance": 0,
      "evidence": [
        {
          "file": "wiki-employee-handbook.md",
          "page": null,
          "quote": "Unused PTO can be carried over into the next year up to a cap of **10 days**.",
          "bbox": null,
          "cell": null,
          "line": 14,
          "doc_id": "wiki-employee-handbook",
          "role": "proof"
        },
        {
          "file": "email-THR-027.md",
          "page": null,
          "quote": "the PTO carryover cap goes up from 5 to 10 days, starting with days carried from 2026 into 2027",
          "bbox": null,
          "cell": null,
          "line": 12,
          "doc_id": "email-THR-027",
          "role": "proof"
        },
        {
          "file": "chat-general.md",
          "page": null,
          "quote": "you can carry over max 5 PTO days into next year",
          "bbox": null,
          "cell": null,
          "line": 8,
          "doc_id": "chat-general",
          "role": "stale"
        }
      ],
      "kind": "conflicting",
      "answerable": true,
      "expected_behavior": "answer",
      "resolution": "The handbook was changed on 2026-03-26 (and announced by email the same day); the chat message of 2026-01-06 quotes the old cap of 5."
    },
    {
      "key": "secondary-escalation",
      "question": "Who is the secondary escalation contact in the on-call runbook as of March 2026?",
      "answer": "Jonas Berg",
      "type": "string",
      "unit": null,
      "tolerance": null,
      "evidence": [
        {
          "file": "wiki-oncall-runbook.md",
          "page": null,
          "quote": "2. Secondary escalation: **Jonas Berg** (Senior Backend Engineer).",
          "bbox": null,
          "cell": null,
          "line": 14,
          "doc_id": "wiki-oncall-runbook",
          "role": "proof"
        },
        {
          "file": "wiki-oncall-runbook.md",
          "page": null,
          "quote": "Secondary escalation changed from Oliver Grant (left 2026-02-27) to Jonas Berg.",
          "bbox": null,
          "cell": null,
          "line": 37,
          "doc_id": "wiki-oncall-runbook",
          "role": "proof"
        },
        {
          "file": "chat-eng.md",
          "page": null,
          "quote": "the on-call runbook still lists Oliver as secondary escalation",
          "bbox": null,
          "cell": null,
          "line": 26,
          "doc_id": "chat-eng",
          "role": "stale"
        }
      ],
      "kind": "conflicting",
      "answerable": true,
      "expected_behavior": "answer",
      "resolution": "The runbook was updated on 2026-03-02 after the chat remark; Oliver Grant left on 2026-02-27."
    },
    {
      "key": "enterprise-p1",
      "question": "What is the P1 first-response target for an Enterprise customer?",
      "answer": "1 hour",
      "type": "string",
      "unit": null,
      "tolerance": null,
      "evidence": [
        {
          "file": "wiki-support-sla.md",
          "page": null,
          "quote": "| Enterprise | 1 hour | 4 hours | 8 hours | 24 hours |",
          "bbox": null,
          "cell": null,
          "line": 16,
          "doc_id": "wiki-support-sla",
          "role": "proof"
        },
        {
          "file": "email-THR-005.md",
          "page": null,
          "quote": "Your Enterprise plan includes a 1-hour first response for P1 tickets",
          "bbox": null,
          "cell": null,
          "line": 13,
          "doc_id": "email-THR-005",
          "role": "proof"
        },
        {
          "file": "ticket-TCK-1010.md",
          "page": null,
          "quote": "our target first response for P1 is 4 hours, so we're well within SLA.",
          "bbox": null,
          "cell": null,
          "line": 15,
          "doc_id": "ticket-TCK-1010",
          "role": "stale"
        }
      ],
      "kind": "conflicting",
      "answerable": true,
      "expected_behavior": "answer",
      "resolution": "The ticket reply quoted the Starter target by mistake; the SLA page and the follow-up email give 1 hour for Enterprise."
    },
    {
      "key": "team-price-march",
      "question": "What is the Team plan list price for a new customer signing in March 2026?",
      "answer": "$49 per user per month",
      "type": "string",
      "unit": null,
      "tolerance": null,
      "evidence": [
        {
          "file": "wiki-pricing-and-discounts.md",
          "page": null,
          "quote": "| Team | $49 per user per month | Minimum 3 users. Was $45 before 2026-02-01. |",
          "bbox": null,
          "cell": null,
          "line": 10,
          "doc_id": "wiki-pricing-and-discounts",
          "role": "proof"
        },
        {
          "file": "email-THR-003.md",
          "page": null,
          "quote": "Team plan, 18 users at $45 per user per month, annual prepay: $9,720 per year.",
          "bbox": null,
          "cell": null,
          "line": 12,
          "doc_id": "email-THR-003",
          "role": "stale"
        }
      ],
      "kind": "conflicting",
      "answerable": true,
      "expected_behavior": "answer",
      "resolution": "The $45 quote dates from January 2026, before the 2026-02-01 price change; the pricing page is the stated source of truth."
    },
    {
      "key": "ironwood-go-live",
      "question": "When is Ironwood Facility Services' go-live date?",
      "answer": "2026-03-30",
      "type": "date",
      "unit": null,
      "tolerance": null,
      "evidence": [
        {
          "file": "email-THR-023.md",
          "page": null,
          "quote": "Confirmed: go-live moves to Monday March 30.",
          "bbox": null,
          "cell": null,
          "line": 19,
          "doc_id": "email-THR-023",
          "role": "proof"
        },
        {
          "file": "email-THR-021.md",
          "page": null,
          "quote": "dispatch go-live on Monday March 16",
          "bbox": null,
          "cell": null,
          "line": 15,
          "doc_id": "email-THR-021",
          "role": "stale"
        }
      ],
      "kind": "conflicting",
      "answerable": true,
      "expected_behavior": "answer",
      "resolution": "The March 16 plan was moved on 2026-03-13 because of the customer's IT change freeze."
    },
    {
      "key": "summit-routes-problems",
      "question": "Derek Lamb said Summit Air had three Routes problems in Q1. How many were actually caused by Routes?",
      "answer": 2,
      "type": "number",
      "unit": null,
      "tolerance": 0,
      "evidence": [
        {
          "file": "email-THR-011.md",
          "page": null,
          "quote": "the January 27 duplicate-route issue (TCK-1014) came from a customer record that was imported twice, not from Routes. The other two are on us.",
          "bbox": null,
          "cell": null,
          "line": 35,
          "doc_id": "email-THR-011",
          "role": "proof"
        },
        {
          "file": "ticket-TCK-1014.md",
          "page": null,
          "quote": "This one isn't Routes: the job exists twice because the address was imported twice",
          "bbox": null,
          "cell": null,
          "line": 19,
          "doc_id": "ticket-TCK-1014",
          "role": "proof"
        },
        {
          "file": "email-THR-011.md",
          "page": null,
          "quote": "this is the third Routes problem for us this quarter",
          "bbox": null,
          "cell": null,
          "line": 27,
          "doc_id": "email-THR-011",
          "role": "stale"
        }
      ],
      "kind": "conflicting",
      "answerable": true,
      "expected_behavior": "answer",
      "resolution": "Support's reply and the ticket show one of the three was a duplicate CSV import, not Routes."
    },
    {
      "key": "portal-per-user",
      "question": "How much does the Portal add-on cost per user per month?",
      "answer": "Portal is not priced per user: it is a flat $199 per account per month.",
      "type": "string",
      "unit": null,
      "tolerance": null,
      "evidence": [
        {
          "file": "wiki-pricing-and-discounts.md",
          "page": null,
          "quote": "| Portal add-on | $199 per account per month | Flat fee. |",
          "bbox": null,
          "cell": null,
          "line": 13,
          "doc_id": "wiki-pricing-and-discounts",
          "role": "proof"
        }
      ],
      "kind": "false-premise",
      "answerable": true,
      "expected_behavior": "correct-premise"
    },
    {
      "key": "parental-leave",
      "question": "How many weeks of paid parental leave does Brightfjord offer?",
      "answer": null,
      "type": "string",
      "unit": null,
      "tolerance": null,
      "evidence": [],
      "kind": "unanswerable",
      "answerable": false,
      "expected_behavior": "abstain",
      "absent_terms": [
        "parental",
        "maternity",
        "paternity"
      ]
    },
    {
      "key": "dpo",
      "question": "Who is Brightfjord's Data Protection Officer?",
      "answer": null,
      "type": "string",
      "unit": null,
      "tolerance": null,
      "evidence": [],
      "kind": "unanswerable",
      "answerable": false,
      "expected_behavior": "abstain",
      "absent_terms": [
        "data protection officer"
      ]
    },
    {
      "key": "retirement-match",
      "question": "What employer match does Brightfjord give on retirement savings?",
      "answer": null,
      "type": "string",
      "unit": null,
      "tolerance": null,
      "evidence": [],
      "kind": "unanswerable",
      "answerable": false,
      "expected_behavior": "abstain",
      "absent_terms": [
        "retirement",
        "401(k)",
        "401k",
        "pension"
      ]
    },
    {
      "key": "stock-options",
      "question": "How many stock options does a new engineer receive?",
      "answer": null,
      "type": "number",
      "unit": null,
      "tolerance": null,
      "evidence": [],
      "kind": "unanswerable",
      "answerable": false,
      "expected_behavior": "abstain",
      "absent_terms": [
        "stock option",
        "equity"
      ]
    }
  ]
}
