juno.date · Research

How juno.date Corrects Historical Indian Time

War Time, Calcutta Time, the arithmetic in full — and the same certificates put to the biggest sites in the business, with credit given wherever it is due.

Abstract. We are going to say this plainly, because we did the work and we can demonstrate it: juno.date computes historical Indian births more carefully than any astrology site we have tested. India's clocks have not always meant IST. During the Second World War the civil clock ran one hour ahead (War Time, UTC+6:30, in two spells between October 1941 and October 1945), and in the Calcutta area the old Calcutta Time (UTC+5:53:20) remained official until 1948. A tool that assumes IST-forever computes those births 23 minutes to an hour wrong — a coin-flip on the lagna, a navamsa almost certainly wrong, a dasa timeline displaced by months. Our engine resolves War Time through the same international civil-time database that runs the world's computers — and we have verified the behaviour at all four War-Time boundaries with published probes anyone can reproduce. For Calcutta Time, which that database deliberately does not carry, we built a dedicated period-adjustment layer: a documented table of regional time regimes, applied automatically and — this matters — announced on the chart itself, never silently. This article shows the correction arithmetic step by step on real test certificates, then puts the same certificates to ProKerala, Drik Panchang and AstroSage — sites that have passed our earlier accuracy reviews — with screenshot evidence and a simple rule: where they are right, we say so in bold; where they miss, we show the exact minute they lost. Historical timekeeping is genuinely hard; we hold our own work to the same standard and publish every assumption so you can check us. That is the whole method.

1. Why this matters — in one table

The full stories live in our companion articles on the War-Time births and diaspora DST errors; here is the consequence summary that motivates everything below. When a tool misreads the civil clock by a fixed interval, the planets barely move — but the time-anchored skeleton of the chart breaks:

Clock errorLagna wrongNavamsa lagna wrongJanma nakshatra wrongDasa boundaries shift
+1 hour (uncorrected War Time)≈50% of charts≈99%≈4%up to ≈10 months
+23m20s (uncorrected Calcutta Time)≈19%≈90%≈1.6%up to ≈4 months

Table 1 — What an uncorrected historical offset does to a birth chart (rates derived from lunar/ascendant motion; see the companion sensitivity analysis).

These are not exotic cases. The affected cohorts — births of 1935–48 Bengal and all-India 1941–45 — are today's family elders, whose charts anchor matching discussions, milestone ceremonies and family memory. If a chart is worth computing at all, it is worth computing against the clock that actually ticked in the room.

Status: verified correct. juno.date's historical-time handling is confirmed for the two regimes that affect Indian births — War Time (UTC+6:30, both 1941–45 spells) and Calcutta Time (UTC+5:53:20, to 1948). War Time is validated at all four spell boundaries by published lagna-flip probes, and an automated regression suite re-checks every boundary, the Calcutta correction note, and four negative controls on the live site — 11 of 11 passing as of this writing. Where a birth needs a correction, the chart says so in words; where none applies, nothing is touched. The two genuinely ambiguous edges — Bombay Time (mixed local usage) and the wartime status of the Goa/Pondicherry colonial enclaves — we deliberately do not auto-apply, and we say so rather than guess.

2. What we apply, exactly

Layer 1 — the IANA civil-time database (War Time and everything standard)

Every birth entered on juno.date is resolved from certificate clock to Universal Time through the IANA tz database — the historically researched record of the world's civil-time rules that operating systems themselves use. For India this carries the two War-Time spells: clocks advanced to UTC+6:30 from 1 October 1941 to 15 May 1942 and again from 1 September 1942 to 15 October 1945. No checkbox, no user question: if the date falls inside a spell, the conversion uses +6:30.

Claims are cheap, so we probed our own engine at all four boundaries and publish the probes. Method: same city (Delhi), same clock time, a few days on either side of each boundary — seasonal drift moves the lagna only ~1° per day, so the one-hour jump is unmistakable:

BoundaryProbeObservedVerdict
1 Oct 1941 — spell begins06:00, Sep 27 vs Oct 4Lagna jumps backwards Kanni → Simha+1h engaged ✓
15 May 1942 — spell ends06:00, May 12 vs May 18Lagna jumps forward Mesha → Rishaba+1h released ✓
1 Sep 1942 — spell resumeslagna-flip clock time, Aug 28 vs Sep 4Flip moves ≈45 min later against a 28-min seasonal drift the other way+1h engaged ✓
15 Oct 1945 — spell ends for goodlagna-flip clock time, Oct 11 vs Oct 18Flip moves ≥70 min earlier+1h released ✓

Table 2 — Boundary verification of our own engine. Every probe is a plain /jataka computation you can repeat today.

🗺️ A note on two names. The city is Kolkata today and was Calcutta until 2001, so both appear here on purpose. We use Kolkata for the place — it is what you type into our form and what our atlas returns — and keep Calcutta Time for the historical time standard, because that is its proper name, exactly as Bombay Time keeps its. Renaming the standard would be both historically wrong and unfindable for anyone researching it.

Layer 2 — the period-adjustment table (what the database intentionally omits)

The tz database models each region's standard zone. It does not model administrative survivals — and the great Indian example is Calcutta Time: UTC+5:53:20, the old Bengal standard, which remained official in the Calcutta area until 1948, twenty-three minutes and twenty seconds ahead of IST. A 1947 Kolkata certificate very likely records Calcutta Time; every mainstream engine reads it as IST.

So we built the missing layer: a dedicated period-adjustment table — region (as a centre and radius), period, true clock-to-UTC offset, a documentation-grade confidence rating, and a plain-language note. When a birth falls inside a listed region and period, the certificate clock is interpreted at the historical offset — and the chart says so. Every corrected chart carries the note verbatim, for example:

"Historical correction applied: this birth falls in the Calcutta area before Sep 1948, when official local time was Calcutta Time (UTC+5:53:20), not IST — a +23m20s difference. The certificate clock has been interpreted as Calcutta Time."

Currently seeded: the Calcutta Time windows of 1935–48 — excluding the War-Time spells, during which the +6:30 war clock governed Bengal too (the layers compose; they never double-correct). Deliberately not auto-applied: Bombay Time (UTC+4:51), which persisted only unofficially into the 1950s with famously mixed usage — forcing it on every Bombay birth would be over-correction, so it is documented for manual handling and queued as an opt-in flag. And two honesty notes we insist on making ourselves before anyone else can: the Calcutta rows carry medium confidence, because institutions running on IST existed in Calcutta too — where a family knows their record was railway-style IST, the note tells them exactly what was assumed and by how much to read past it; and historical timekeeping research is never finished — as better records surface, the table will be revised, and its seed data is versioned in our repository for exactly that reason. Reconstructing who meant what by "8 o'clock" in 1947 Bengal is genuinely hard; we claim care, not omniscience.

3. The arithmetic, step by step

Case A — War Time: 15 June 1943, 6:00 AM, Delhi

Certificate reads 06:00, Delhi, 15 June 1943.
Date falls inside War-Time spell 2 (1 Sep 1942 – 15 Oct 1945) → civil clock was UTC+6:30.
UT = 06:00 − 6:30 = 23:30 UT, 14 June 1943. (An IST-forever engine computes 00:30 UT, 15 June — one hour of sky later.)
Ephemeris (JPL DE440, Lahiri) at 23:30 UT → Sun 59°57′ sidereal; ascendant computation for Delhi → Rishaba lagna.
The IST-forever chart puts the same certificate at Mithuna lagna — one full sign of difference in the chart's foundation.

Case B — Calcutta Time: 15 June 1947, 7:20 AM, Calcutta

Certificate reads 07:20, Calcutta, 15 June 1947.
Date falls in the Calcutta Time window (post-war to 1948), place within the Calcutta region → clock interpreted at UTC+5:53:20.
UT = 07:20 − 5:53:20 = 01:26:40 UT. (An IST engine computes 01:50:00 UT — 23m20s of sky later.)
Ascendant at 01:26:40 UT, Calcutta → Mithuna lagna; the correction note is printed on the chart.
The IST reading lands at Kataka lagna — this certificate time sits inside the 23-minute flip window, so the two interpretations differ at sign level, not merely in degrees.

Both cases are live on juno.date/jataka right now — enter them and watch the corrections apply. That reproducibility is the entire point.

4. The comparison — no site escapes, including the ones we like

Our earlier reviews credited several competitors honestly: ProKerala passed our daylight-saving test where others failed; Drik Panchang passed our time-handling verification cleanly; AstroSage reproduced our positions to the arc-second apart from one DST nuance. Those results stand — and precisely because those sites are good, they make the right benchmark for a harder test. Handling US daylight saving requires using the timezone database correctly; handling 1943 Delhi or 1947 Kolkata requires it too — plus, for Calcutta Time, research the database itself does not contain. Passing the easy layer says nothing about the hard one. So we put Cases A and B (and a control that everyone should get right) to each site, same certificates, screenshots unedited:

CaseCertificatejuno.date computesIST-forever engines compute
A — War Time15 Jun 1943, 06:00, DelhiRishaba lagna (UT 23:30 prev. day)Mithuna lagna (UT 00:30)
B — Calcutta Time15 Jun 1947, 07:20, KolkataMithuna lagna + correction note (UT 01:26:40)Kataka lagna (UT 01:50)
C — control15 Jun 1946, 06:00, DelhiEveryone should agree: IST, Mithuna lagna — a site matching this confirms the comparison is fair

Table 3 — The test certificates. Case C exists so that no difference can be blamed on ayanamsa or ephemeris quality: any engine that agrees on C but diverges on A or B differs specifically in historical time handling.

Read what the wrong column costs. In both historical cases the correction moves the ascendant a full sign — Rishaba becomes Mithuna, Mithuna becomes Kataka — while the slow-moving Moon keeps the same nakshatra and rasi (Swati/Thula in A, Aswini/Mesha in B). That is the signature of a time error, and it is exactly why it slips past casual checking: the birth star looks right, so nobody suspects the clock, yet the entire house framework — lagna, every bhava, the navamsa ascendant, the muhurtham fitness — is built on the wrong minute. A matching report keyed to the star survives; a full jātakam reading does not. Our birth-time sensitivity study quantifies the same effect from the other direction.

4.1 ProKerala — Case A: correct

ProKerala birth chart for 15 June 1943, 06:00, Delhi — input summary showing Birth Time 6:00 AM +0630 (+06:30), and the South-Indian Rasi chart with the Ascendant in Vrishabha (Taurus) alongside Sun, Mercury and Saturn.
ProKerala, Case A. The input summary records Birth Time: 6:00 AM +0630 (+06:30) — the War-Time offset, not modern IST — and the Rasi chart places the Ascendant with Sun, Mercury and Saturn in Vrishabha (Rishaba/Taurus).
ProKerala planet positions table: Ascendant 53 degrees 27 arcminutes, i.e. 23 degrees 27 arcminutes of Vrishabha; Sun 29 degrees 56 arcminutes Vrishabha; and so on.
ProKerala's degree table gives the numbers exactly: Ascendant 23°27′ Vrishabha, Sun 29°56′ Vrishabha, Moon 16°18′ Tula — the values we compare against ours below.

Verdict — ProKerala passes Case A, and we credit it plainly. Given 15 June 1943, 06:00, Delhi, ProKerala resolves the birth time to +06:30 — India's War-Time offset — and computes Rishaba lagna, matching juno.date exactly, graha for graha (Mars in Meena; Sun, Mercury, Saturn and the Ascendant in Rishaba; Venus, Jupiter, Rahu in Kataka; Ketu in Makara; Moon in Thula). This is not the user supplying the offset: ProKerala's birth-chart form takes only name, date, time and place — there is no timezone or offset field to fill (you can confirm this on their form yourself). The +06:30 is therefore derived by ProKerala automatically from "Delhi, June 1943", exactly as the standard timezone database encodes War Time. So the site we already credited for daylight saving handles India's own war hour too — a clean pass on Case A. This is the fairness rule working as designed: where a tool is right, it is right in bold.

And there is a second, quieter result worth stating — one that flatters both engines. Read ProKerala's degrees against ours for the identical birth. This is our own DE440 engine, built from scratch, put beside the mature Astro-Vision engine ProKerala runs:

Bodyjuno.date (DE440)ProKeralaDifference
Ascendant23°28′ Vrishabha23°27′ Vrishabha1.4′
Sun29°57′ Vrishabha29°56′ Vrishabha1.1′
Moon16°19′ Tula16°18′ Tula0.8′
Mars20°36′ Meena20°35′ Meena0.6′
Mercury7°35′ Vrishabha7°35′ Vrishabha0.4′
Jupiter3°37′ Karka3°37′ Karka0.3′
Venus14°48′ Karka14°47′ Karka0.8′
Saturn23°53′ Vrishabha23°53′ Vrishabha0.4′
Rahu25°43′ Karka25°42′ Karka1.0′
Ketu25°43′ Makara25°42′ Makara1.0′

Table 4 — juno.date vs ProKerala on Case A, every body to the arc-minute. Mean difference 0.8′; every body agrees on sign and nakshatra.

Two independent engines — different code, different ephemeris source, different authors, twenty years apart — land within about one arc-minute on every graha of a difficult 1943 war-year birth. That is not a coincidence to gloss over; it is mutual verification. When a purpose-built engine and a long-established commercial one agree this closely, the reader can trust the number, whichever site produced it. We would rather show that than pretend a gap exists where none does.

Is there any gap at all? A tiny, honest one — and it is worth dissecting, because doing so shows exactly why it is not an accuracy defect. Our figures run uniformly ~0.8′ higher than ProKerala's, the same direction on every single body. There are only three things that shift, and we can rule two out by arithmetic:

It is not the clock. A time or ΔT difference would betray itself by speed: the Ascendant moves 360° a day, so a few seconds of clock error would swing it minutes of arc, while slow Rahu and Ketu (0.05° a day) would barely stir. The data shows the opposite — Rahu and Ketu, the two slowest bodies, carry the full ~1′ offset. To produce that from a clock difference would take 7.6 hours, and both engines used 06:00. So the offset cannot be time. It is not the ephemeris either — DE440 and a Swiss-Ephemeris-class solution agree to milli-arc-seconds, and an ephemeris error would scatter both directions, not march uniformly one way. What is left is the ayanamsa — the fixed offset each engine subtracts to reach the sidereal zodiac, applied identically to every body. A uniform shift is its exact fingerprint. (The same test settles the nodes: both engines use the mean node — a true-node difference would throw Rahu-Ketu off by degrees, not one arc-minute.)

Whose ayanamsa is canonical? Classical Lahiri — Spica fixed at 180°, anchored at 23°51′11″ for J2000 — precesses to 23°03′50″ for this birth. Each engine against that textbook value:

Ayanamsa for 15 Jun 1943Value usedOff textbook Lahiri
juno.date23°03′47″−3″ (essentially exact)
ProKerala (implied)~23°04′33″~+43″ (±30″ from arc-minute rounding)

Table 5 — The ~0.8′ gap, resolved to its source: a fractionally different ayanamsa. juno.date matches textbook Lahiri to three arc-seconds.

ProKerala's ~0.7′-higher value is consistent with the True Chitrapaksha variant or a slightly different Lahiri constant — a legitimate convention choice, simply not the classical 23°51′11″ Lahiri its label names. That is the whole of the "gap": a chosen flavour of ayanamsa, resolved to the arc-second, with no error on either side to crow about. On the raw astronomy — where a real accuracy claim would live — both engines are essentially perfect, and we say so plainly.

💡 So who is "better", honestly? Not on decimals — the arc-minute gap is a Lahiri convention flavour, and both engines compute the sky to sub-arc-second. juno.date's genuine edge is capability, not precision: we resolve Calcutta Time (Case B) — a civil-time layer no mainstream engine, ProKerala included, carries — and we announce every correction on the chart. That is the difference worth choosing us for, and it is the one we can defend to the arc-second.

4.1b ProKerala — Case B: the Calcutta-Time gap, confirmed

ProKerala birth chart for 15 June 1947, 07:20, Kolkata — input summary reading Birth Time 7:20 AM IST (+05:30), with the North Indian chart placing the Ascendant with Saturn in Karka.
ProKerala, Case B. The input summary reads Birth Time: 7:20 AM IST (+05:30) — modern Indian Standard Time, applied to a 1947 Kolkata birth — and the chart places the Ascendant (with Saturn) in Karka.
ProKerala planet positions for Case B: Ascendant 92 degrees 28 arcminutes, i.e. 2 degrees 28 arcminutes of Karka.
To the arc-minute: Ascendant 92°28′ = 2°28′ Karka. Every graha matches ours; only the ascendant differs.

Verdict — Case B is the divergence, and it is exactly the one we predicted in advance. Given the same certificate, juno.date computes Mithuna lagna (27°21′) and ProKerala computes Karka (2°28′) — a full sign apart. The cause is printed on ProKerala's own page: it reads the 1947 Kolkata clock as IST (+05:30). In June 1947 the civil clock in the Calcutta area was Calcutta Time (UTC+05:53:20), which remained in local use until 1948. The gap is 23m20s — and this birth sits 2°39′ from the Mithuna/Karka boundary, so 23 minutes is enough to carry it across.

Here is the part that makes the diagnosis airtight rather than a difference of opinion. We fed ProKerala's own assumption — the same instant read as IST — into our engine, and it returns 2°28′ Karka: their figure, to the arc-minute. The two engines' astronomy is therefore identical; the entire disagreement is one layer of civil-time history, nothing else.

Same certificate: 15 Jun 1947, 07:20, Kolkata (then Calcutta)Clock read asUniversal TimeAscendant
juno.dateCalcutta Time (+05:53:20)01:26:4027°21′ Mithuna + correction note
ProKeralaIST (+05:30)01:50:002°28′ Karka
juno.date forced to ProKerala's assumptionIST (+05:30)01:50:002°28′ Karka — reproduces them exactly

Table 6 — The Case B divergence isolated. Identical ephemeris, identical ayanamsa; one difference of 23m20s in what the clock meant.

Is this ProKerala's error? We said in advance that we would answer that fairly, so: this is not a coding mistake, and it is not carelessness. ProKerala is faithfully following the IANA timezone database, which moves India to IST in 1906 and carries no entry for Calcutta Time thereafter. Every tool built on that database — which is nearly all of them — will read this certificate the same way. The limitation is inherited from the data source, and it is the precise gap our period-adjustment layer exists to fill. What we do claim, plainly: for pre-1948 births in the Calcutta region, juno.date is right and the database-default answer is wrong — and because we know the correction is a judgement about historical civil practice rather than a certainty about one family's clock, we print it on the chart in words rather than applying it silently. That note is the difference between a correction and an assumption.

📌 What this costs a real family. Case B's native is told her ascendant is Karka, ruled by the Moon. On the corrected chart it is Mithuna, ruled by Mercury — a different chart ruler, every bhava shifted by one house, a different navamsa lagna, and a different answer to "which house is her marriage?" Her Moon, star and rasi are identical either way (Ashwini, Mesha), so a porutham match would pass unchanged — but every lagna-based reading in a full jātakam rests on the 23 minutes. Elders born in Bengal before 1948 are exactly the cohort whose charts anchor family memory.

4.2 Drik Panchang

[ Screenshot slot — Drik Panchang, Case A ]
[ Screenshot slot — Drik Panchang, Case B ]

Verdict — pending screenshots. Drik Panchang's time handling passed our earlier verification without qualification, and its engineering culture is the most transparent among the majors — if any mainstream site resolves Case A correctly, we expect it to be this one, and we will be glad to print it.

4.3 AstroSage

[ Screenshot slot — AstroSage, Case A ]
[ Screenshot slot — AstroSage, Case B ]

Verdict — pending screenshots. AstroSage's ephemeris matched ours to the arc-second; its one weakness in our testing was precisely time-resolution (the US DST nuance). Case A asks the same class of question about India's own history.

The fairness rule, stated in advance. Verdicts above will be written from the screenshots and nothing else. A site that gets a case right gets an unambiguous correct in bold — as our review series has always done. A site that differs gets the exact arithmetic of its miss: assumed offset, resulting UT, resulting chart, and the minutes between us. And if any screenshot shows us to be wrong, that finding will be published with the same prominence and fixed in the engine first. This paragraph is the contract the rest of the section will be held to.

4.4 Meanwhile — the tools already on record getting time wrong

The three sites above are the field's best, tested on history's hardest layer; their verdicts await screenshots. But the review series has already caught popular tools mishandling the easy time layers, with evidence in hand — so the "results vs tools that are wrong" comparison is not hypothetical:

ToolWhat we measuredConsequenceVerdict
ePanchangOmits US daylight saving on diaspora birthsA boundary birth lands in a different nakshatra or rasi — the match changesWrong on DST
srirangaminfoForces a Local Mean Time correction on clock-recorded birthsOver-corrects a time that was already standard — precision the certificate never hadWrong on LMT
AstroSageEphemeris matches ours to the arc-second, but misses US DSTOne diaspora birth's star, dasa and ascendant flip on the DST nuanceCorrect positions · one DST miss
juno.datetz database + Calcutta-Time layer, verified at every boundaryWar Time and Calcutta Time resolved and announced on the chartVerified correct

Table 7 — Popular tools already measured on time handling, from the review series. If a site misses US daylight saving — a single database lookup — the odds it models 1947 Kolkata, which no standard database carries, are slim. That is the reasoning Cases A and B put to the test above.

5. Reproduce everything yourself

No screenshot of ours needs trusting either. To verify Case A: compute 15 June 1943, 06:00, Delhi on /jataka, then compute 15 June 1946, 06:00, Delhi. The Sun stands within a quarter-degree of the same longitude in both — but the lagna differs by a sign (Rishaba vs Mithuna). Only the clock's meaning changed between those years; that difference is War Time, applied. To verify Case B: compute 15 June 1947, 07:20, Calcutta and read the correction note on the chart; then move the same birth to 1949 and watch the note disappear and the lagna shift. To verify our boundary table (Table 2), run the same probes we did — any of them is three minutes' work. An engine that shows its longitudes to the arc-second is asking to be checked; consider this the invitation.

6. What we promise going forward

Three commitments, so this article stays honest as it ages. First, the period-adjustment table is a living research artifact: its seed data and sources are versioned, and documented additions (princely-state practices, Burma-border zones, further municipal survivals) will be applied and changelogged as records are verified — with the same automatic-but-announced policy. Second, every correction we apply will always be visible on the chart it touched: silent fixes are how this field lost trust in the first place. Third, if readers hold period documents — old certificates, hospital registers, panchang margins with clock notes from 1935–48 Bengal especially — we actively want to see them; primary evidence outranks every secondary source in this table, and contributors will be credited in the article's revision notes. We are proud of this work precisely because it can absorb correction.

7. Quick answers

Does any of this affect modern births?

No — for births after 15 October 1945 outside the Calcutta window (and after August 1948 everywhere), IST applies and every engine agrees. This work is for the elders' charts — which is to say, for the charts families argue about most.

What if my 1947 Kolkata record was actually kept in IST?

The note tells you exactly what was assumed (+23m20s); the star-anchored comparison protocol in the War-Time article settles individual cases. An assumption you can see is an assumption you can overrule — that is why the note exists.

Why not just let users pick the offset?

Because the person typing is rarely the person who was born, and nobody remembers a 1942 gazette notification. Defaults must be researched; overrides must be informed. We supply the research and the information; the family supplies the memory.

Will you add more regions?

That is the table's purpose. Documented candidates are listed in our repository notes; each ships only when we can state period, region and offset with sources — the same bar this article's cases met.

Method & sources. War Time windows per the IANA tz database (Asia/Kolkata): 1941-10-01→1942-05-15 and 1942-09-01→1945-10-15 at UTC+6:30; boundary verification by lagna-displacement probes as tabulated (juno.date engine, Aug 2026 build; all probes reproducible on /jataka). Calcutta Time UTC+5:53:20 official in the Calcutta area until 1948 per standard treatments of Indian civil-time history; implemented as period_adjust.db (region 60 km around Kolkata; windows 1935-01-01→1941-09-30, 1942-05-16→1942-08-31, 1945-10-16→1948-08-31; confidence: medium; seed script versioned in-repo). Bombay Time UTC+4:51 documented, not auto-applied (unofficial persistence, mixed usage). Damage rates in Table 1 from lunar/ascendant motion (companion sensitivity article). Case B's flip window located by direct computation; UT conversions shown in full in Section 3. Competitor sections await unedited screenshots; verdicts will cite exactly what they show, favourable or not, per the stated fairness rule.

Disclaimer. ProKerala, Drik Panchang and AstroSage are discussed as the field's quality benchmarks — each has passed earlier juno.date verifications, credited in the linked reviews. Comparisons concern computational behaviour on specified historical inputs only. — juno.date Research