{
  "artifact_kind": "records",
  "schema_version": "civic_records_v1",
  "extraction_version": "records_v3",
  "status": "complete",
  "source_transcript": "./data/us_il_freeport_township/normalized/vw7ddx0rigi.2026-3-2_freeport_township_meeting.txt",
  "source_sha256": "43e51145a61feb56056e4f81ad6b0f852cb44b56805db9ac7843980f03598fcd",
  "meeting_type": "township_board",
  "job_profile": "civic",
  "prompt_id": "township_board_records",
  "response_format": "json_schema",
  "classifier_file": "./data/us_il_freeport_township/prompts/civic/classifier.toml",
  "prompt_file": "./data/us_il_freeport_township/prompts/civic/records_prompt.toml",
  "schema_file": "./prompts/civic/records_schema.json",
  "provider": "ollama",
  "model": "gemma4:e4b",
  "num_ctx": 16384,
  "records_max_tokens": 1500,
  "chunk_style": "density",
  "chunk_max_tokens": 1500,
  "chunk_count": 1,
  "successful_chunk_count": 1,
  "partial_chunk_count": 0,
  "failed_chunk_count": 0,
  "validation_issue_count": 0,
  "validation_warning_count": 0,
  "normalized_record_count": 0,
  "rejected_record_count": 0,
  "rejected_line_count": 0,
  "record_count": 19,
  "records": [
    {
      "record_type": "procedural_action",
      "subject": "Quorum confirmation",
      "summary": "The board confirmed a quorum was present.",
      "evidence": "We have a quorum.",
      "source_chunks": [
        1
      ],
      "timestamp": 26.62,
      "video_id": "vw7DDx0rigI"
    },
    {
      "record_type": "motion",
      "subject": "Approval of minutes for the February 17th, 2026 meeting",
      "summary": "Motion to approve the minutes for the February 17th, 2026 meeting.",
      "evidence": "We have a call on the first order of business, the approval of minutes for the February 17th, 226th meeting. Any motion and a second please? So moved.",
      "source_chunks": [
        1
      ],
      "timestamp": 26.62,
      "video_id": "vw7DDx0rigI"
    },
    {
      "record_type": "motion",
      "subject": "Approval of minutes for the February 17th, 2026 meeting",
      "summary": "Seconding the motion to approve the minutes for the February 17th, 2026 meeting.",
      "evidence": "Second.",
      "source_chunks": [
        1
      ]
    },
    {
      "record_type": "vote",
      "subject": "Approval of minutes for the February 17th, 2026 meeting",
      "summary": "The motion to approve the minutes for the February 17th, 2026 meeting carried.",
      "evidence": "Seeing that there are none, all in favor? Aye. Any opposed? Motion carries.",
      "source_chunks": [
        1
      ],
      "timestamp": 41.13,
      "video_id": "vw7DDx0rigI"
    },
    {
      "record_type": "motion",
      "subject": "Approval of bills paid",
      "summary": "Motion to approve the bills paid.",
      "evidence": "The next order of business is the approval of bills paid, any motion and a second please? So moved.",
      "source_chunks": [
        1
      ],
      "timestamp": 61.53,
      "video_id": "vw7DDx0rigI"
    },
    {
      "record_type": "motion",
      "subject": "Approval of bills paid",
      "summary": "Seconding the motion to approve the bills paid.",
      "evidence": "McIlwain? Second.",
      "source_chunks": [
        1
      ],
      "timestamp": 19.62,
      "video_id": "vw7DDx0rigI"
    },
    {
      "record_type": "discussion",
      "subject": "Approval of bills paid",
      "summary": "Discussion regarding two bills for a car, which included four new tires and a tire sensor. The expense was recommended because the remaining funds on that line item were short of over $100, and taking the rest out of travel was necessary to use the car in Bloomington by the end of March without waiting until April or May.",
      "evidence": "Do we have an explanation for why there are two bills for the car? So we had to get four new tires and a tire sensor. It was recommended because I was just short of over $100 on that line item to take the rest out of travel because we're going to need to take the car to Bloomington the end of March, and I didn't want to wait and risk that until April or until May, until the next fiscal year.",
      "source_chunks": [
        1
      ],
      "timestamp": 68.53,
      "video_id": "vw7DDx0rigI"
    },
    {
      "record_type": "motion",
      "subject": "Approval of bills paid",
      "summary": "Motion to approve claims and demands.",
      "evidence": "Any further questions on claims and demands, trustees? No, I don't have any. Madam Clerk, please call the roll. Altensey? Aye. Wilken? Aye. Odendahl, McIlwain, Sellers, aye. Motion passes.",
      "source_chunks": [
        1
      ],
      "timestamp": 118.89,
      "video_id": "vw7DDx0rigI"
    },
    {
      "record_type": "motion",
      "subject": "Approval of agenda for the annual township meeting on April 14th, 2026",
      "summary": "Motion to approve the agenda for the annual township meeting on April 14th, 2026.",
      "evidence": "The next will be the approval of agenda for the annual township meeting on April 14th, 2026. Motion second right? Yep. Motion and second please.",
      "source_chunks": [
        1
      ],
      "timestamp": 152.039,
      "video_id": "vw7DDx0rigI"
    },
    {
      "record_type": "motion",
      "subject": "Approval of agenda for the annual township meeting on April 14th, 2026",
      "summary": "Seconding the motion to approve the agenda for the annual township meeting on April 14th, 2026.",
      "evidence": "Second.",
      "source_chunks": [
        1
      ],
      "timestamp": 152.039,
      "video_id": "vw7DDx0rigI"
    },
    {
      "record_type": "discussion",
      "subject": "Approval of agenda for the annual township meeting on April 14th, 2026",
      "summary": "Discussion regarding the annual meeting name change from town hall to township and confirmation that Shane Orlow was asked to be the moderator because Rick Hauser was unavailable.",
      "evidence": "The only thing that was really changed on is Mike changed it from town hall to township. I can never remember what the name is. We always called it town hall. It's not a town hall. It's a township. It's an annual township meeting. ... I was not able to get Rick Hauser this year, so I've asked Shane Orlow to be our moderator and he's accepted.",
      "source_chunks": [
        1
      ],
      "timestamp": 171.12,
      "video_id": "vw7DDx0rigI"
    },
    {
      "record_type": "vote",
      "subject": "Approval of agenda for the annual township meeting on April 14th, 2026",
      "summary": "The motion to approve the agenda for the annual township meeting on April 14th, 2026 carried.",
      "evidence": "Next time I see Jerry Are there any questions on the agenda for the annual township meeting? Nope. Okay. All in favor? Aye. Any opposed?",
      "source_chunks": [
        1
      ],
      "timestamp": 207.569,
      "video_id": "vw7DDx0rigI"
    },
    {
      "record_type": "presentation",
      "subject": "Reports and Public Comments",
      "summary": "The Supervisor's Report was presented, noting there was nothing to report.",
      "evidence": "The next order of business is the Supervisor's Report, and lo and behold, I have nothing this time.",
      "source_chunks": [
        1
      ],
      "timestamp": 243.289,
      "video_id": "vw7DDx0rigI"
    },
    {
      "record_type": "presentation",
      "subject": "Reports and Public Comments",
      "summary": "The Assessor's Report was presented.",
      "evidence": "Okay, next order of business is the Assessor's Report. Wow.",
      "source_chunks": [
        1
      ],
      "timestamp": 264.29,
      "video_id": "vw7DDx0rigI"
    },
    {
      "record_type": "presentation",
      "subject": "Reports and Public Comments",
      "summary": "The trustees' report was presented, noting there was nothing to report for this meeting.",
      "evidence": "The next order of business is the trustees' report, trustees. Should we say, I have nothing? Anything, trustees. No, not this. Not this meeting.",
      "source_chunks": [
        1
      ],
      "timestamp": 268.29,
      "video_id": "vw7DDx0rigI"
    },
    {
      "record_type": "discussion",
      "subject": "Reports and Public Comments",
      "summary": "No public comments were received.",
      "evidence": "The next order of business is public comments. Any public comments?",
      "source_chunks": [
        1
      ],
      "timestamp": 281.29,
      "video_id": "vw7DDx0rigI"
    },
    {
      "record_type": "motion",
      "subject": "Adjournment",
      "summary": "Motion to adjourn until Monday, March 16th, 2026, at 4:30 PM.",
      "evidence": "Is there any other business coming forward to town in Freeport? Seeing that there is none, I intend to motion to adjourn until Monday, March 16th, 2026, at 4:30 PM So moved.",
      "source_chunks": [
        1
      ],
      "timestamp": 290.829,
      "video_id": "vw7DDx0rigI"
    },
    {
      "record_type": "motion",
      "subject": "Adjournment",
      "summary": "Seconding the motion to adjourn.",
      "evidence": "Second.",
      "source_chunks": [
        1
      ],
      "timestamp": 61.53,
      "video_id": "vw7DDx0rigI"
    },
    {
      "record_type": "vote",
      "subject": "Adjournment",
      "summary": "The motion to adjourn was approved.",
      "evidence": "All in favor? Aye. Any opposed? Meeting is adjourned.",
      "source_chunks": [
        1
      ],
      "timestamp": 305.379,
      "video_id": "vw7DDx0rigI"
    }
  ],
  "timestamp_alignment": {
    "version": "record_timestamp_v2",
    "alignment_fingerprint": "36b878ae6c61c9d587c8254e552087680c1d3828f9da49b8cda06169020137ab",
    "records_sha256": "caa70594c343c18f0c4422182ca59e94373571e299be02fd3828d6ee6965ea09",
    "segments_sha256": "1d2d935a09060d1a469130a202be485b6ea24ce3aff4568da045ff060b7c1e32",
    "settings_sha256": "2db6c198d62e5d984c77a22585bfc49f5dedad782ab5c494f8a7c6ab9fe99c53",
    "backend": "hybrid",
    "embedding_model": "BAAI/bge-small-en-v1.5",
    "device": "cuda",
    "candidate_strategy": "stored_segment_embedding_top_k",
    "evaluated_window_count": 1048,
    "reused_segment_embedding_count": 20,
    "derived_window_embedding_count": 57,
    "segment_count": 20,
    "record_count": 19,
    "matched_record_count": 18,
    "ambiguous_record_count": 1,
    "unmatched_record_count": 0,
    "match_rate": 0.9474
  }
}
