← Occestra
celebrate pack

My best friend's 30th birthday dinner — the plan

oce_01m2fxzf50e2zgpd4fm722 · created 2026-09-14

pass rate 80%OQS v1.0.0

This pack was delivered unsigned — honestly labelled as exactly that.

The work

My best friend's 30th birthday dinner — the plan

plan · json

pass
The structured data, exactly as delivered
{
  "date": "2026-09-19",
  "summary": "Celebrate a milestone birthday with warmth and laughter under the stars.\n\nMy best friend's 30th birthday dinner — Lagos, 2026-09-19, 10 people.\n4 real candidate venues are shortlisted below, each with the source we found it in. None of them is booked.\nForecast: light drizzle, 25–28°C, 100% chance of rain.",
  "claims": [
    {
      "text": "SILK LAGOS — 190 Awolowo Road, Ikoyi, 101233. A candidate for \"wine bar\". NOT booked, NOT confirmed: call them yourself.",
      "grounded": true,
      "source": {
        "source": "openstreetmap",
        "retrievedAt": "2026-09-14T12:23:55.072Z",
        "url": "https://www.openstreetmap.org/node/11287504106"
      }
    },
    {
      "text": "Booze.ng — 24 Idejo Street, Lagos, 101241. A candidate for \"wine bar\". NOT booked, NOT confirmed: call them yourself.",
      "grounded": true,
      "source": {
        "source": "openstreetmap",
        "retrievedAt": "2026-09-14T12:23:55.072Z",
        "url": "https://www.openstreetmap.org/node/11518274350"
      }
    },
    {
      "text": "Balo's Place — 10 Berkley Street. A candidate for \"wine bar\". NOT booked, NOT confirmed: call them yourself.",
      "grounded": true,
      "source": {
        "source": "openstreetmap",
        "retrievedAt": "2026-09-14T12:23:55.072Z",
        "url": "https://www.openstreetmap.org/node/13536246693"
      }
    },
    {
      "text": "Surface Bar & Grill — address not listed in OpenStreetMap. A candidate for \"wine bar\". NOT booked, NOT confirmed: call them yourself.",
      "grounded": true,
      "source": {
        "source": "openstreetmap",
        "retrievedAt": "2026-09-14T12:23:55.072Z",
        "url": "https://www.openstreetmap.org/node/5144668733"
      }
    },
    {
      "text": "Forecast for 2026-09-19 near SILK LAGOS: light drizzle, 25–28°C, 100% chance of rain.",
      "grounded": true,
      "source": {
        "source": "open-meteo",
        "retrievedAt": "2026-09-14T12:23:55.175Z",
        "url": "https://api.open-meteo.com/v1/forecast?latitude=6.4442171&longitude=3.423949&daily=temperature_2m_max,temperature_2m_min,precipitation_probability_max,weather_code&timezone=auto&start_date=2026-09-19&end_date=2026-09-19"
      }
    }
  ],
  "uncertainties": [
    "No venue here is booked. Every one is a candidate you still have to call."
  ],
  "prepChecklist": [
    "Book the rooftop venue and confirm the reservation.",
    "Plan and order small chops and drinks for 10 guests."
  ]
}

Running order

schedule · json

fail
The structured data, exactly as delivered
{
  "occasion": "My best friend's 30th birthday dinner",
  "date": "2026-09-19",
  "city": "Lagos",
  "headcount": 10,
  "timezone": "Africa/Lagos",
  "notes": [
    "All times are local to Lagos (Africa/Lagos). The ISO timestamps are the exact instants; the \"local\" fields are what a guest will read on a clock.",
    "Starts at 18:00 because this is a dinner."
  ],
  "items": [
    {
      "title": "Guest arrival and mingling",
      "start": "2026-09-19T17:00:00.000Z",
      "end": "2026-09-19T17:45:00.000Z",
      "startLocal": "18:00",
      "endLocal": "18:45",
      "venue": {
        "name": "SILK LAGOS",
        "lat": 6.4442171,
        "lng": 3.423949
      }
    },
    {
      "title": "Dinner and toasts",
      "start": "2026-09-19T17:50:00.000Z",
      "end": "2026-09-19T19:40:00.000Z",
      "startLocal": "18:50",
      "endLocal": "20:40",
      "venue": {
        "name": "SILK LAGOS",
        "lat": 6.4442171,
        "lng": 3.423949
      }
    }
  ]
}

Budget

budget · json

pass
The structured data, exactly as delivered
{
  "currency": "USD",
  "total": 650,
  "perHead": 65,
  "lineItems": [
    {
      "label": "food and drinks",
      "amount": 351
    },
    {
      "label": "venue and decor",
      "amount": 234
    },
    {
      "label": "Contingency reserve (10%)",
      "amount": 65
    }
  ],
  "notes": [
    "Amounts are in USD, because that is the currency the budget was given in.",
    "Lagos prices in NGN. Venues will quote you in NGN, and no exchange rate is applied here — we do not have a sourced one, and will not invent one. Convert at the rate you actually get.",
    "The 10% reserve is held back deliberately. It is not spare money; it is the money for the thing that goes wrong.",
    "Excludes tips and service charges unless a line item says otherwise."
  ]
}

If it goes wrong

contingency · md

pass

If it goes wrong

· Rain is likely (100%). This is not a footnote — plan for it. Make the indoor space the PRIMARY plan and treat outdoors as the upgrade if the day is kind. Confirm the venue has covered seating for 10 before you commit. · The venue cannot take you. Nothing here is booked. Call in this order: 1. SILK LAGOS 2. Booze.ng 3. Balo's Place 4. Surface Bar & Grill. If the first three are gone, move the time before you move the place. · People do not show. You are planning for 10. Confirm heads 48 hours out; most venues will let you drop a couple of covers that late, and none of them will let you add six. · Weather could be too windy or rainy for a rooftop setting.

My best friend's 30th birthday dinner — guest guide

guest_guide · html

pass
The page source, exactly as delivered
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>My best friend's 30th birthday dinner</title>
<style>
  :root { --ground:#0C0A0E; --ink:#C9A961; --accent:#2D1B4E; }
  *{box-sizing:border-box}
  body{margin:0;background:var(--ground);color:var(--ink);font-family:ui-sans-serif,system-ui,sans-serif;line-height:1.55;padding:6vh 6vw}
  main{max-width:36rem;margin:0 auto}
  h1{font-family:ui-serif,Georgia,serif;font-weight:400;font-size:clamp(2rem,6vw,3rem);line-height:1.1;margin:0 0 .4rem}
  .sub{color:var(--accent);font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;margin:0 0 2rem}
  table{width:100%;border-collapse:collapse;margin:0 0 2rem}
  td{padding:.85rem 0;border-top:1px solid rgba(0,0,0,.1);vertical-align:top}
  td.t{width:7.5rem;font-variant-numeric:tabular-nums;color:var(--accent);white-space:nowrap}
  .what{font-weight:600}
  .where{font-size:.9rem;opacity:.75}
  .travel{font-size:.8rem;opacity:.6;margin-top:.25rem}
  h2{font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin:2rem 0 .6rem}
  p,li{font-size:.95rem}
  a{color:var(--accent)}
  footer{margin-top:3rem;font-size:.8rem;opacity:.55}
  .note{margin:1.25rem 0 2rem;padding:.85rem 1rem;border-left:3px solid #2D1B4E;background:rgba(0,0,0,.03);font-size:.92rem;line-height:1.55}
</style>
</head>
<body>
<main>
  <h1>My best friend's 30th birthday dinner</h1>
  <p class="sub">2026-09-19 &middot; Lagos &middot; all times local (Africa/Lagos)</p>

  <!--
    UP FRONT, not buried in the FAQ.
    The guide used to lay out a venue with coordinates and a map pin like settled fact, and
    only admit twelve inches lower that nothing was actually booked. A reader who stops
    before the FAQ walks away believing there is a reservation. Occestra never claims a
    booking it did not make — so the page says so before it says anything else.
  -->
  <p class="note"><strong>Nothing here is booked.</strong> These are real, researched
  candidates — not reservations. The host confirms the venue; until then, treat every
  place and time on this page as a proposal.</p>

  <table>
      <tr>
        <td class="t">18:00–18:45</td>
        <td><div class="what">Guest arrival and mingling</div><div class="where">SILK LAGOS &middot; <a href="https://www.openstreetmap.org/?mlat=6.4442171&mlon=3.423949#map=18/6.4442171/3.423949">map</a></div></td>
      </tr>
      <tr>
        <td class="t">18:50–20:40</td>
        <td><div class="what">Dinner and toasts</div><div class="where">SILK LAGOS &middot; <a href="https://www.openstreetmap.org/?mlat=6.4442171&mlon=3.423949#map=18/6.4442171/3.423949">map</a></div></td>
      </tr>
  </table>

  <h2>Weather</h2>
  <p>light drizzle, 25–28°C, 100% chance of rain</p>

  <h2>What to wear</h2>
  <p>warm, rooftop at dusk, a lot of laughing, small chops. Dress for the room, not for the photo.</p>

  

  <h2>Questions</h2>
  <ul>
    <li><strong>Am I late?</strong> Arrive at the first time above. The schedule has slack, but not much.</li>
    <li><strong>Is it booked?</strong> The host is confirming venues — nothing on this page is a reservation.</li>
  </ul>

  <footer>Made by Occestra. Times and travel are estimates, not routed journeys.</footer>
</main>
</body>
</html>

The Tribunal's report

Every artifact above was graded against the published Occestra Quality Standard — the full report ships with the pack, pass or fail. Read the standard.

planpassfull report
source coveragedate validityuncertainty disclosure
  • CONTRAST_LOWA plan has no text surface; contrast does not apply.
  • DATE_INVALIDPlan date is real and matches the brief.
  • DIM_ASPECT_MISMATCHNot an image.
  • FILE_TOO_LARGENot an image.
  • PALETTE_DRIFTNot an image.
  • POLICY_VIOLATIONFinal copy is clean.
  • SCHEMA_INVALIDArtifact and payload satisfy their schemas.
  • SOURCE_MISSINGEvery grounded claim carries its source and retrieval time.
schedulefailfull report
schedule feasibilitydate validitysource coverageuncertainty disclosure
  • CONTRAST_LOWA schedule has no text surface; contrast does not apply.
  • DIM_ASPECT_MISMATCHNot an image.
  • FILE_TOO_LARGENot an image.
  • PALETTE_DRIFTNot an image.
  • POLICY_VIOLATIONFinal copy is clean.
  • SCHEDULE_CONSTRAINTThe brief stated no timing bound to hold the running order to.
  • SCHEMA_INVALIDArtifact and payload satisfy their schemas.
  • SOURCE_MISSINGEvery venue the schedule names is backed by a retrieved source.

The critic's notes

  • · The schedule has overlapping events: 'Guest arrival and mingling' ends at 17:45, while 'Dinner and toasts' starts at 17:50, which does not allow for any transition time.
budgetpassfull report
budget consistencyuncertainty disclosure
  • BUDGET_SUM_MISMATCHLine items sum to the stated total (650.00).
  • CONTRAST_LOWA budget has no text surface; contrast does not apply.
  • DIM_ASPECT_MISMATCHNot an image.
  • FILE_TOO_LARGENot an image.
  • PALETTE_DRIFTNot an image.
  • POLICY_VIOLATIONFinal copy is clean.
  • SCHEMA_INVALIDArtifact and payload satisfy their schemas.
contingencypassfull report
contingencyuncertainty disclosure
  • CONTRAST_LOWA contingency has no text surface; contrast does not apply.
  • DIM_ASPECT_MISMATCHNot an image.
  • FILE_TOO_LARGENot an image.
  • PALETTE_DRIFTNot an image.
  • POLICY_VIOLATIONFinal copy is clean.
  • SCHEMA_INVALIDArtifact and payload satisfy their schemas.
guest_guidepassfull report
source coveragedate validityuncertainty disclosure
  • TEXT_OVERFLOW_RISKCopy is long enough to overflow its layout slot.
  • CONTRAST_LOWAll body text clears 4.5:1.
  • DIM_ASPECT_MISMATCHNot an image.
  • FILE_TOO_LARGENot an image.
  • PALETTE_DRIFTNot an image.
  • POLICY_VIOLATIONFinal copy is clean.
  • SCHEMA_INVALIDArtifact and payload satisfy their schemas.

The critic's notes

  • · TEXT_OVERFLOW_RISK: Copy is long enough to overflow its layout slot.
Pack-level gaps disclosed
  • MARKET_DATA_UNAVAILABLEOn-chain market data could not be verified, so no price or supply is claimed anywhere in this pack.
  • MODEL_ROUTERA preferred model was unavailable, so another was used. The work was still graded.
  • SEALING_UNAVAILABLENo signing key was configured, so this pack is delivered unsigned and unanchored.
  • places:rooftop-terrace-failedA venue search did not answer, so fewer real candidates were considered than we would have liked.

Made by Occestra — every moment, made monumental. Anything here can be independently verified.