{"id":47854,"date":"2024-09-04T03:00:05","date_gmt":"2024-09-04T09:00:05","guid":{"rendered":"https:\/\/timesandseasons.org\/?p=47854"},"modified":"2025-05-28T21:04:29","modified_gmt":"2025-05-29T03:04:29","slug":"data-visualization-of-new-testament-books-by-size-time-since-christ-and-authenticity","status":"publish","type":"post","link":"https:\/\/timesandseasons.org\/index.php\/2024\/09\/data-visualization-of-new-testament-books-by-size-time-since-christ-and-authenticity\/","title":{"rendered":"Data Visualization of New Testament Books by Size, Time Since Christ, and Authenticity"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-47864 aligncenter\" src=\"https:\/\/timesandseasons.org\/wp-content\/uploads\/2024\/09\/TS-X-800x541.png\" alt=\"\" width=\"356\" height=\"244\" \/><\/p>\n<p style=\"text-align: center;\"><em>A part of the graph, the link below has the whole thing.\u00a0<\/em><\/p>\n<p>Of the big AI players, Anthropic&#8217;s Claude is quite good at making diagrams, so I used it to generate an infographic I&#8217;ve always wanted to see, something that conveys in one visual how far away from Christ a book in the NT was written, the size of the work, and whether it&#8217;s considered &#8220;authentic&#8221; by scholars, either in the sense that it was written by whoever it claims to be written by (the undisputed Pauline epistles), or whether it has authentic first-hand reports from the time of Christ not found elsewhere (The Synoptic Gospels and Acts). In other words, I want to see which sources are closest to the &#8220;historical Jesus.&#8221; On one hand I think most historical Jesus research and thought processes get a little carried away about their narrow false negative confidence intervals, but at the same time the premise that the manuscripts closer to Christ could tell us more about Him is valid for most purposes.<\/p>\n<p>In order to show the data in year-by-year and to scale the size of the block proportional to the size of the book I created a graph that could not fit onto one page (and I don&#8217;t know how to embed it into WordPress), but you can see the a version that you can scroll through <a href=\"https:\/\/claude.site\/artifacts\/35986843-999c-465e-93fb-3a32d6a06d5d\">here.<\/a> (Claude now has an &#8220;artifacts&#8221; feature where you can share the results of your code with others through a simple link).<\/p>\n<p>A few notes.<\/p>\n<p>After seeing it laid out like this, the particular importance of Galatians and Thessalonians (and the unimportance of Revelations) for understanding early Christianity sticks out, since those are the earliest extant Christian documents. However, as I recognize the superiority of modern revelation in determining theology, I don&#8217;t see an emphasis on these early works as some insight into a more authentic Christianity than that which we get on Sunday, so there is a limit to which this kind of critical approach has any real-life bearing on my personal faith or religious behavior.<\/p>\n<p>Obviously when something like this comes up there is the question of whether the &#8220;inauthentic&#8221; canonized NT books are not &#8220;legitimate.&#8221; With this I take my cue from Joseph Smith, who on one hand explicitly stated that the Song of Solomon was not inspired, but then quoted from it at the Kirtland Temple dedication. I am fine with a kind of &#8220;death of the author&#8221; attitude towards things in the Bible that might not have been written by who they claim to have been, and I think you can have that while not slipping all the way down the slope of it&#8217;s-all-allegory. Also, I&#8217;m open to the idea that copies-of-copies-of-copies could have started with authentic documents, and then morphed through time into what we have now. Similarly, I think what God said in D&amp;C 91 regards to the apocrypha is basically relevant to all of scripture. If you are in the right mindset it is helpful regardless of its provenance, if you&#8217;re not it&#8217;s not (I&#8217;ve known too many scriptural know-it-alls that really don&#8217;t get the point to see it otherwise).<\/p>\n<p>Finally, I realize that I am oversimplifying things and undoubtedly glossing over wide confidence intervals and intense academic debates for some of these (I took the earliest date in Wikipedia as the baseline). If somebody wants to figure out how to take this and get a way to visualize the confidence intervals without cluttering up the image, then by all means (Claude makes it easy to make derivatives off of somebody else&#8217;s work).<\/p>\n<p>Below is the code for record keeping purposes. It uses React, which I don&#8217;t know, it&#8217;s all Greek to me, but this is what Claude generated for the image. And yes, I know that the number of words varies depending on translation, but for our comparative purpose the chart put together by <a href=\"https:\/\/deanebarker.net\/other\/bible\/\">this guy<\/a> is probably close enough. The dates and judgement calls for authenticity are based on the <a href=\"https:\/\/en.wikipedia.org\/wiki\/Dating_the_Bible#Table_IV:_New_Testament\">Wikipedia article<\/a>. And yes, I know it&#8217;s Wikipedia, but with this kind of stuff Wikipedia is actually much more accurate than people give it credit for.<\/p>\n<hr \/>\n<p>import React from &#8216;react&#8217;;<\/p>\n<p>const books = [<br \/>\n{ name: &#8220;Death of Christ&#8221;, year: 33, type: &#8220;event&#8221;, words: 5000 },<br \/>\n{ name: &#8220;Galatians&#8221;, year: 48, authentic: 2, words: 2230, type: &#8220;book&#8221; },<br \/>\n{ name: &#8220;2 Thessalonians&#8221;, year: 51, authentic: 1, words: 823, type: &#8220;book&#8221; },<br \/>\n{ name: &#8220;1 Thessalonians&#8221;, year: 51, authentic: 2, words: 1481, type: &#8220;book&#8221; },<br \/>\n{ name: &#8220;1 Corinthians&#8221;, year: 53, authentic: 2, words: 6830, type: &#8220;book&#8221; },<br \/>\n{ name: &#8220;Philemon&#8221;, year: 54, authentic: 2, words: 335, type: &#8220;book&#8221; },<br \/>\n{ name: &#8220;Philippians&#8221;, year: 54, authentic: 2, words: 1629, type: &#8220;book&#8221; },<br \/>\n{ name: &#8220;2 Corinthians&#8221;, year: 55, authentic: 2, words: 4477, type: &#8220;book&#8221; },<br \/>\n{ name: &#8220;Romans&#8221;, year: 57, authentic: 2, words: 7111, type: &#8220;book&#8221; },<br \/>\n{ name: &#8220;Colossians&#8221;, year: 62, authentic: 1, words: 1582, type: &#8220;book&#8221; },<br \/>\n{ name: &#8220;Gospel of Mark&#8221;, year: 65, authentic: 2, words: 11304, type: &#8220;book&#8221; },<br \/>\n{ name: &#8220;James&#8221;, year: 65, authentic: 0, words: 1742, type: &#8220;book&#8221; },<br \/>\n{ name: &#8220;First Peter&#8221;, year: 75, authentic: 0, words: 1684, type: &#8220;book&#8221; },<br \/>\n{ name: &#8220;Acts&#8221;, year: 80, authentic: 2, words: 18450, type: &#8220;book&#8221; },<br \/>\n{ name: &#8220;Gospel of Luke&#8221;, year: 80, authentic: 2, words: 19482, type: &#8220;book&#8221; },<br \/>\n{ name: &#8220;Hebrews&#8221;, year: 80, authentic: 0, words: 4953, type: &#8220;book&#8221; },<br \/>\n{ name: &#8220;Ephesians&#8221;, year: 80, authentic: 0, words: 2422, type: &#8220;book&#8221; },<br \/>\n{ name: &#8220;Gospel of Matthew&#8221;, year: 80, authentic: 2, words: 18346, type: &#8220;book&#8221; },<br \/>\n{ name: &#8220;Gospel of John&#8221;, year: 90, authentic: 0, words: 15635, type: &#8220;book&#8221; },<br \/>\n{ name: &#8220;1 John&#8221;, year: 90, authentic: 0, words: 2141, type: &#8220;book&#8221; },<br \/>\n{ name: &#8220;2 John&#8221;, year: 90, authentic: 0, words: 245, type: &#8220;book&#8221; },<br \/>\n{ name: &#8220;3 John&#8221;, year: 90, authentic: 0, words: 219, type: &#8220;book&#8221; },<br \/>\n{ name: &#8220;Revelation&#8221;, year: 95, authentic: 0, words: 9851, type: &#8220;book&#8221; },<br \/>\n{ name: &#8220;1 Timothy&#8221;, year: 100, authentic: 0, words: 1591, type: &#8220;book&#8221; },<br \/>\n{ name: &#8220;2 Timothy&#8221;, year: 100, authentic: 0, words: 1238, type: &#8220;book&#8221; },<br \/>\n{ name: &#8220;Titus&#8221;, year: 100, authentic: 0, words: 659, type: &#8220;book&#8221; },<br \/>\n{ name: &#8220;Second Peter&#8221;, year: 110, authentic: 0, words: 1099, type: &#8220;book&#8221; }<br \/>\n];<\/p>\n<p>const getColor = (item) =&gt; {<br \/>\nif (item.type === &#8220;event&#8221;) return &#8216;bg-blue-500&#8217;;<br \/>\nswitch(item.authentic) {<br \/>\ncase 2: return &#8216;bg-green-500&#8217;;<br \/>\ncase 1: return &#8216;bg-yellow-500&#8217;;<br \/>\ncase 0: return &#8216;bg-red-500&#8217;;<br \/>\ndefault: return &#8216;bg-gray-500&#8217;;<br \/>\n}<br \/>\n};<\/p>\n<p>const Timeline = () =&gt; {<br \/>\nconst minYear = Math.min(&#8230;books.map(book =&gt; book.year));<br \/>\nconst maxYear = Math.max(&#8230;books.map(book =&gt; book.year));<br \/>\nconst years = Array.from({length: maxYear &#8211; minYear + 1}, (_, i) =&gt; minYear + i);<br \/>\nconst maxWords = Math.max(&#8230;books.map(book =&gt; book.words));<\/p>\n<p>const itemsByYear = books.reduce((acc, item) =&gt; {<br \/>\nif (!acc[item.year]) acc[item.year] = [];<br \/>\nacc[item.year].push(item);<br \/>\nreturn acc;<br \/>\n}, {});<\/p>\n<p>return (<br \/>\n&lt;div className=&#8221;p-4&#8243;&gt;<br \/>\n&lt;h1 className=&#8221;text-2xl font-bold mb-4&#8243;&gt;New Testament Timeline&lt;\/h1&gt;<\/p>\n<p>{\/* Legend moved to the top *\/}<br \/>\n&lt;div className=&#8221;mb-4 p-2 border rounded bg-gray-100&#8243;&gt;<br \/>\n&lt;div className=&#8221;font-bold mb-2&#8243;&gt;Color Legend:&lt;\/div&gt;<br \/>\n&lt;div className=&#8221;flex flex-wrap&#8221;&gt;<br \/>\n&lt;div className=&#8221;flex items-center mr-4 mb-2&#8243;&gt;<br \/>\n&lt;div className=&#8221;w-4 h-4 bg-blue-500 mr-2&#8243;&gt;&lt;\/div&gt;<br \/>\n&lt;span&gt;Historical Event&lt;\/span&gt;<br \/>\n&lt;\/div&gt;<br \/>\n&lt;div className=&#8221;flex items-center mr-4 mb-2&#8243;&gt;<br \/>\n&lt;div className=&#8221;w-4 h-4 bg-green-500 mr-2&#8243;&gt;&lt;\/div&gt;<br \/>\n&lt;span&gt;Authentic (2)&lt;\/span&gt;<br \/>\n&lt;\/div&gt;<br \/>\n&lt;div className=&#8221;flex items-center mr-4 mb-2&#8243;&gt;<br \/>\n&lt;div className=&#8221;w-4 h-4 bg-yellow-500 mr-2&#8243;&gt;&lt;\/div&gt;<br \/>\n&lt;span&gt;Potentially Authentic (1)&lt;\/span&gt;<br \/>\n&lt;\/div&gt;<br \/>\n&lt;div className=&#8221;flex items-center mr-4 mb-2&#8243;&gt;<br \/>\n&lt;div className=&#8221;w-4 h-4 bg-red-500 mr-2&#8243;&gt;&lt;\/div&gt;<br \/>\n&lt;span&gt;Not Authentic (0)&lt;\/span&gt;<br \/>\n&lt;\/div&gt;<br \/>\n&lt;\/div&gt;<br \/>\n&lt;\/div&gt;<\/p>\n<p>&lt;div className=&#8221;flex&#8221;&gt;<br \/>\n&lt;div className=&#8221;w-16 mr-4&#8243;&gt;<br \/>\n{years.map(year =&gt; (<br \/>\n&lt;div key={year} className=&#8221;h-32 flex items-start justify-end pr-2 border-r-2 border-gray-300 pt-2&#8243;&gt;<br \/>\n{year}<br \/>\n&lt;\/div&gt;<br \/>\n))}<br \/>\n&lt;\/div&gt;<br \/>\n&lt;div className=&#8221;flex-1 relative&#8221;&gt;<br \/>\n{years.map(year =&gt; {<br \/>\nconst yearItems = itemsByYear[year] || [];<br \/>\nreturn (<br \/>\n&lt;div<br \/>\nkey={year}<br \/>\nclassName=&#8221;absolute left-0 right-0 flex flex-col items-start&#8221;<br \/>\nstyle={{ top: <code>${(year - minYear) * 128}px<\/code>, minHeight: &#8216;128px&#8217; }}<br \/>\n><br \/>\n{yearItems.map((item, index) =&gt; {<br \/>\nconst width = Math.max((item.words \/ maxWords) * 100, 5);<br \/>\nreturn (<br \/>\n&lt;div key={<a href=\"http:\/\/item.name\/\" target=\"_blank\" rel=\"noopener\" data-saferedirecturl=\"https:\/\/www.google.com\/url?q=http:\/\/item.name&amp;source=gmail&amp;ust=1725286997874000&amp;usg=AOvVaw0wDsFGSwyeLIz73AMBaokL\">item.name<\/a>} className=&#8221;flex items-center mb-2 w-full&#8221;&gt;<br \/>\n&lt;div<br \/>\nclassName={<code>p-1 border rounded ${getColor(item)} flex items-center justify-center overflow-hidden mr-2<\/code>}<br \/>\nstyle={{ width: <code>${width}%<\/code>, height: &#8217;24px&#8217; }}<br \/>\n><br \/>\n{item.type === &#8220;event&#8221; &amp;&amp; <a href=\"http:\/\/item.name\/\" target=\"_blank\" rel=\"noopener\" data-saferedirecturl=\"https:\/\/www.google.com\/url?q=http:\/\/item.name&amp;source=gmail&amp;ust=1725286997874000&amp;usg=AOvVaw0wDsFGSwyeLIz73AMBaokL\">item.name<\/a>}<br \/>\n&lt;\/div&gt;<br \/>\n{item.type === &#8220;book&#8221; &amp;&amp; &lt;div className=&#8221;text-xs whitespace-nowrap&#8221;&gt;{<a href=\"http:\/\/item.name\/\" target=\"_blank\" rel=\"noopener\" data-saferedirecturl=\"https:\/\/www.google.com\/url?q=http:\/\/item.name&amp;source=gmail&amp;ust=1725286997874000&amp;usg=AOvVaw0wDsFGSwyeLIz73AMBaokL\">item.name<\/a>}<wbr \/>&lt;\/div&gt;}<br \/>\n&lt;\/div&gt;<br \/>\n);<br \/>\n})}<br \/>\n&lt;\/div&gt;<br \/>\n);<br \/>\n})}<br \/>\n&lt;\/div&gt;<br \/>\n&lt;\/div&gt;<br \/>\n&lt;\/div&gt;<br \/>\n);<br \/>\n};<\/p>\n<p>export default Timeline;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A part of the graph, the link below has the whole thing.\u00a0 Of the big AI players, Anthropic&#8217;s Claude is quite good at making diagrams, so I used it to generate an infographic I&#8217;ve always wanted to see, something that conveys in one visual how far away from Christ a book in the NT was written, the size of the work, and whether it&#8217;s considered &#8220;authentic&#8221; by scholars, either in the sense that it was written by whoever it claims to be written by (the undisputed Pauline epistles), or whether it has authentic first-hand reports from the time of Christ not found elsewhere (The Synoptic Gospels and Acts). In other words, I want to see which sources are closest to the &#8220;historical Jesus.&#8221; On one hand I think most historical Jesus research and thought processes get a little carried away about their narrow false negative confidence intervals, but at the same time the premise that the manuscripts closer to Christ could tell us more about Him is valid for most purposes. In order to show the data in year-by-year and to scale the size of the block proportional to the size of the book I created a graph that could [&hellip;]<\/p>\n","protected":false},"author":10403,"featured_media":47864,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[2907],"tags":[],"class_list":["post-47854","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-new-testament"],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/timesandseasons.org\/wp-content\/uploads\/2024\/09\/TS-X.png","_links":{"self":[{"href":"https:\/\/timesandseasons.org\/index.php\/wp-json\/wp\/v2\/posts\/47854","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/timesandseasons.org\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/timesandseasons.org\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/timesandseasons.org\/index.php\/wp-json\/wp\/v2\/users\/10403"}],"replies":[{"embeddable":true,"href":"https:\/\/timesandseasons.org\/index.php\/wp-json\/wp\/v2\/comments?post=47854"}],"version-history":[{"count":10,"href":"https:\/\/timesandseasons.org\/index.php\/wp-json\/wp\/v2\/posts\/47854\/revisions"}],"predecessor-version":[{"id":50275,"href":"https:\/\/timesandseasons.org\/index.php\/wp-json\/wp\/v2\/posts\/47854\/revisions\/50275"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/timesandseasons.org\/index.php\/wp-json\/wp\/v2\/media\/47864"}],"wp:attachment":[{"href":"https:\/\/timesandseasons.org\/index.php\/wp-json\/wp\/v2\/media?parent=47854"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/timesandseasons.org\/index.php\/wp-json\/wp\/v2\/categories?post=47854"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/timesandseasons.org\/index.php\/wp-json\/wp\/v2\/tags?post=47854"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}