classroom-data-field-guide/ledger.html

131 lines
7.7 KiB
HTML
Raw Permalink Normal View History

2026-08-22 08:33:33 +02:00
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>The Attendance Ledger — Classroom Data Field Guide</title>
<meta name="description" content="The daily attendance ledger: reconciliation, the half-day counts, and the pattern-tracking that catches kids before they fall through."/>
<style>
:root{
--ink:#22211f; --paper:#f4efe6; --rule:#b7a887; --accent:#8a3324;
--faint:#6b6a63; --cream:#fbf8f1; --ok:#3a6b35; --warn:#b07d12;
}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);
font-family:Georgia,"Times New Roman",serif;line-height:1.55;}
.wrap{max-width:880px;margin:0 auto;padding:0 24px 80px;}
header.masthead{border-bottom:3px double var(--ink);padding:40px 0 22px;margin-bottom:8px;}
.kicker{font-family:"Courier New",monospace;font-size:12px;letter-spacing:.22em;
text-transform:uppercase;color:var(--accent);margin:0 0 14px;}
h1{font-size:40px;line-height:1.05;margin:0 0 10px;}
.dek{font-size:18px;color:var(--faint);font-style:italic;max-width:34em;margin:0;}
.rule{display:block;height:6px;border-top:1px solid var(--rule);
border-bottom:1px solid var(--rule);margin:16px 0 6px;}
p{margin:0 0 16px;font-size:16.5px;}
h2{font-size:26px;margin:40px 0 10px;}
.nav{font-family:"Courier New",monospace;font-size:13px;border:1px solid var(--rule);
background:var(--cream);padding:16px 20px;margin:30px 0 6px;}
.nav a{color:var(--accent);text-decoration:none;margin-right:18px;}
.nav a:hover{text-decoration:underline;}
table{width:100%;border-collapse:collapse;margin:20px 0;font-size:14.5px;
font-family:"Courier New",monospace;}
th,td{border:1px solid var(--rule);padding:8px 10px;text-align:left;vertical-align:top;}
th{background:var(--cream);text-transform:uppercase;font-size:12px;letter-spacing:.06em;}
.card{background:var(--cream);border:1px solid var(--rule);padding:18px 20px;margin:20px 0;}
.card h3{margin:0 0 12px;font-size:19px;color:var(--accent);}
label{font-family:"Courier New",monospace;font-size:13px;display:block;margin:10px 0 4px;}
input,select{font-family:"Courier New",monospace;font-size:14px;padding:6px 8px;
border:1px solid var(--rule);background:#fff;color:var(--ink);width:100%;}
button{font-family:"Courier New",monospace;font-size:13px;letter-spacing:.05em;
background:var(--accent);color:#fbf8f1;border:none;padding:10px 18px;
margin-top:14px;cursor:pointer;}
button:hover{filter:brightness(1.1);}
#outbox{margin-top:16px;font-family:"Courier New",monospace;font-size:14px;
border-top:2px dashed var(--rule);padding-top:12px;min-height:40px;}
.good{color:var(--ok)} .ok{color:var(--warn)} .miss{color:var(--accent)}
ol,ul{margin:0 0 16px;padding-left:22px;}
li{margin:0 0 7px;font-size:15.5px;}
blockquote{margin:22px 0;padding:4px 20px;border-left:4px solid var(--accent);
color:var(--faint);font-style:italic;font-size:17px;}
footer{margin-top:54px;padding-top:18px;border-top:3px double var(--ink);
font-family:"Courier New",monospace;font-size:12px;color:var(--faint);}
a{color:var(--accent);}
</style>
</head>
<body>
<div class="wrap">
<header class="masthead">
<p class="kicker">Field Guide · Chapter One</p>
<h1>The Attendance Ledger</h1>
<p class="dek">The first habit I seed every August. Attendance isn't a checkbox — it's the earliest, most honest signal a school has about a child.</p>
<span class="rule"></span>
</header>
<div class="nav">
<a href="index.html">Home</a>
<a href="ledger.html">Attendance Ledger</a>
<a href="iep.html">IEP Tracking</a>
<a href="calendar.html">Annual Calendar</a>
</div>
<h2>Why I treat attendance like a gardener treats sunlight</h2>
<p>You can't measure a child's growth if you don't know how many days of light they actually got. Attendance data is the baseline every other measure leans on — and it's the thing that slips first because it feels routine. Routine is exactly when the arithmetic stops being checked.</p>
<h2>Reconciliation is the whole job</h2>
<p>Every morning I run the same three-way check, and I never trust one source alone:</p>
<ol>
<li><strong>The homeroom roster</strong> — who the school says should be here.</li>
<li><strong>The morning sign-in</strong> — who actually walked through the door.</li>
<li><strong>The master attendance system</strong> — the official record.</li>
</ol>
<p>A mismatch between any two is not an annoyance; it's a child whose day got lost in transit. I resolve every single one before lunch.</p>
<table>
<tr><th>Discrepancy</th><th>Most likely cause</th><th>My first move</th></tr>
<tr><td>Roster has a name, sign-in doesn't</td><td>Unexcused absence</td><td>Call home before 10:00</td></tr>
<tr><td>Sign-in has a name, roster doesn't</td><td>Late add / new enrollee</td><td>Verify with the office, flag to teacher</td></tr>
<tr><td>Sign-in says present, system says absent</td><td>Data entry lag</td><td>Confirm with the office, log the correction</td></tr>
<tr><td>Half-day counts disagree</td><td>Multiple dismissal points</td><td>Check each dismissal code individually</td></tr>
</table>
<h2>Patterns are the real harvest</h2>
<p>Once the daily count is correct, the weekly view does the actual good. A child late every Tuesday isn't a Tuesday problem — it's a transportation problem, or a morning-routine problem, that only shows up as a pattern. This is why I flag, not just record.</p>
<div class="card">
<h3>Try it: the flag calculator</h3>
<p>Enter a student's late arrivals for a four-week stretch (MonThu). If the pattern crosses my two red lines — three or more in a single week, or six in the month — the record earns a flag and a conversation.</p>
<label>Week 1 lates (05)</label>
<input type="number" id="w1" min="0" max="5" value="0"/>
<label>Week 2 lates (05)</label>
<input type="number" id="w2" min="0" max="5" value="0"/>
<label>Week 3 lates (05)</label>
<input type="number" id="w3" min="0" max="5" value="0"/>
<label>Week 4 lates (05)</label>
<input type="number" id="w4" min="0" max="5" value="0"/>
<button onclick="checkFlags()">Run the flag check</button>
<div id="outbox">Awaiting that week's numbers…</div>
</div>
<blockquote>"The record isn't meant to blame a family. It's meant to wake the school up early — while there's still time to help."</blockquote>
<footer>
<p>Barbara Asbell · Teaching Assistant · Troy, Michigan<br/>
Field guide pages: <a href="index.html">Home</a> · <a href="ledger.html">Attendance Ledger</a> · <a href="iep.html">IEP Tracking</a> · <a href="calendar.html">Annual Calendar</a></p>
</footer>
</div>
<script>
function checkFlags(){
var a=+document.getElementById('w1').value||0,
b=+document.getElementById('w2').value||0,
c=+document.getElementById('w3').value||0,
d=+document.getElementById('w4').value||0;
var weeks=[a,b,c,d], weekFlag=weeks.filter(function(w){return w>=3;}).length,
total=a+b+c+d, out=document.getElementById('outbox');
if(total>=6){ out.innerHTML='<span style="color:var(--accent)">🚩 FLAG — '+total+' lates this month.</span> This crosses the six-in-a-month line. Raise it with the teacher and arrange a friendly call home. The pattern is almost never laziness; it\'s a signal worth listening to.'; }
else if(weekFlag>0){ out.innerHTML='<span style="color:var(--warn)">⚠ WATCH — '+weekFlag+' week(s) hit three or more lates.</span> Not yet a flag, but worth posting on the teacher\'s radar for next week.'; }
else{ out.innerHTML='<span style="color:var(--ok)">✓ CLEAR — '+total+' lates this month, none crossing a red line.</span> Keep the daily discipline; this is the quiet win.'; }
}
</script>
</body>
</html>